<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nkatha Gatobu</title>
    <description>The latest articles on DEV Community by Nkatha Gatobu (@nkatha_gatobu_6c815ff9a95).</description>
    <link>https://dev.to/nkatha_gatobu_6c815ff9a95</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3709640%2F61e7c925-b5d1-40fc-a84c-9d6b0ca657de.png</url>
      <title>DEV Community: Nkatha Gatobu</title>
      <link>https://dev.to/nkatha_gatobu_6c815ff9a95</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nkatha_gatobu_6c815ff9a95"/>
    <language>en</language>
    <item>
      <title>Messy data to actionable insights: HOW ANALYST USE POWER BI, DAX, AND DASHBOARDS.</title>
      <dc:creator>Nkatha Gatobu</dc:creator>
      <pubDate>Fri, 06 Feb 2026 19:10:07 +0000</pubDate>
      <link>https://dev.to/nkatha_gatobu_6c815ff9a95/messy-data-to-actionable-insights-how-analyst-use-power-bi-dax-and-dashboards-2lh9</link>
      <guid>https://dev.to/nkatha_gatobu_6c815ff9a95/messy-data-to-actionable-insights-how-analyst-use-power-bi-dax-and-dashboards-2lh9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;“This can’t be real data… right?” 😅&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Welcome to real-world of analytics.&lt;/p&gt;

&lt;p&gt;In this , we’ll walk through how data analysts actually work with &lt;strong&gt;Power BI&lt;/strong&gt; — from messy data, to cleaning, to writing &lt;strong&gt;DAX&lt;/strong&gt;, to building &lt;strong&gt;dashboards&lt;/strong&gt; that are clear and understandable.&lt;/p&gt;

&lt;p&gt;By the end, you’ll understand the full workflow and be able to build your own simple Power BI report with confidence.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Analytics Workflow (Big Picture)
&lt;/h2&gt;

&lt;p&gt;Most Power BI projects follow this flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Raw Data → Cleaning (Power Query) → Data Model → DAX Measures → Dashboards → Decisions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📊 Visual Flow Diagram (Conceptual)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ Excel / CSV / SQL / APIs ]
            |
            v
       [ Power Query ]
            |
            v
       [ Data Model ]
            |
            v
            [ DAX ]
            |
            v
       [ Dashboards ]
            |
            v
     [ Business Actions ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 1: Load Messy Data into Power BI
&lt;/h2&gt;

&lt;p&gt;In the real world, data usually comes with problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ Duplicate rows&lt;/li&gt;
&lt;li&gt;❌ Blank values&lt;/li&gt;
&lt;li&gt;❌ Wrong data types (numbers stored as text)&lt;/li&gt;
&lt;li&gt;❌ Inconsistent column names&lt;/li&gt;
&lt;li&gt;❌ Multiple date formats&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Load Data
&lt;/h3&gt;

&lt;p&gt;In Power BI Desktop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Home → Get Data&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Excel / CSV / SQL Server&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Transform Data&lt;/strong&gt; (don’t click Load yet)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This opens &lt;strong&gt;Power Query&lt;/strong&gt;, where cleaning happens.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Clean and Prepare Data (Power Query)
&lt;/h2&gt;

&lt;p&gt;Power Query is your &lt;strong&gt;staging area&lt;/strong&gt;.&lt;br&gt;
Anything you fix here becomes repeatable and automatic.&lt;/p&gt;
&lt;h3&gt;
  
  
  Common Cleaning Tasks
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Power Query Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Duplicates&lt;/td&gt;
&lt;td&gt;Remove Rows → Remove Duplicates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text with spaces&lt;/td&gt;
&lt;td&gt;Transform → Format → Trim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong data type&lt;/td&gt;
&lt;td&gt;Change column type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Messy column names&lt;/td&gt;
&lt;td&gt;Rename columns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Null values&lt;/td&gt;
&lt;td&gt;Replace values / Filter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer   | Sales     | Order Date
 John Doe  | "1,000"   | 02/01/24
 John Doe  | "1000 "   | 2024-01-02
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer  | Sales | Order Date
John Doe  | 1000  | 2024-01-02
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3: Create a Proper Data Model
&lt;/h2&gt;

&lt;p&gt;A good data model = better performance + easier DAX.&lt;/p&gt;

&lt;h3&gt;
  
  
  Typical Tables
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Sales&lt;/code&gt; (fact table)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Customers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Products&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Date&lt;/code&gt; (calendar table)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Star Schema (Recommended)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customers ──┐
            ├── Sales ── Date
Products ───┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Modeling Best Practices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ One fact table, multiple dimension tables&lt;/li&gt;
&lt;li&gt;✅ One-direction relationships&lt;/li&gt;
&lt;li&gt;✅ Always use a Date table&lt;/li&gt;
&lt;li&gt;❌ Avoid many-to-many unless necessary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your DAX calculations depend on relationships to filter data correctly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Write DAX Measures (Beginner → Technical)
&lt;/h2&gt;

&lt;p&gt;DAX = Data Analysis Expressions&lt;br&gt;
This is how Power BI calculates metrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start Simple
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Sales =
SUM(Sales[Amount])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Orders =
COUNTROWS(Sales)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Customers =
DISTINCTCOUNT(Customers[CustomerID])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Slightly More Technical: Time Intelligence
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sales MTD =
CALCULATE(
    [Total Sales],
    DATESMTD('Date'[Date])
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sales Last Month =
CALCULATE(
    [Total Sales],
    DATEADD('Date'[Date], -1, MONTH)
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MoM Growth % =
DIVIDE(
    [Sales MTD] - [Sales Last Month],
    [Sales Last Month]
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DAX hack Tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;measures&lt;/strong&gt;, not calculated columns&lt;/li&gt;
&lt;li&gt;Always create a &lt;strong&gt;Date table&lt;/strong&gt; for time intelligence&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;DIVIDE()&lt;/code&gt; instead of &lt;code&gt;/&lt;/code&gt; to avoid errors&lt;/li&gt;
&lt;li&gt;Build and test one measure at a time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 5: Build Dashboards That Answer Questions
&lt;/h2&gt;

&lt;p&gt;A good dashboard answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is happening?&lt;/li&gt;
&lt;li&gt;How is it trending?&lt;/li&gt;
&lt;li&gt;Where should we act?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Layout
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+----------------------------------+
| KPI Cards: Sales, Orders, Growth |
+----------------------------------+
| Sales Trend (Line Chart)         |
+----------------------------------+
| Sales by Product | Sales by City |
+----------------------------------+
| Filters (Date, Region)           |
+----------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Visual Best Practices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;KPI Cards → summary metrics&lt;/li&gt;
&lt;li&gt;Line charts → trends&lt;/li&gt;
&lt;li&gt;Bar charts → comparisons&lt;/li&gt;
&lt;li&gt;Slicers → user interaction&lt;/li&gt;
&lt;li&gt;Keep colors simple and consiste&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;If your dashboard needs explaining, it’s probably too complex.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 6: Turn Insights into Action
&lt;/h2&gt;

&lt;p&gt;Dashboards are only useful when they change behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;📉 Sales drop in Nairobi&lt;br&gt;
➡️ Filter by product&lt;br&gt;
➡️ Identify stock-outs&lt;br&gt;
➡️ Fix supply chain&lt;br&gt;
➡️ Sales recover&lt;/p&gt;

&lt;p&gt;This is where data becomes impact.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hands-On Practice
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Exercise 1: Data Cleaning
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Remove duplicates&lt;/li&gt;
&lt;li&gt;Fix data types&lt;/li&gt;
&lt;li&gt;Rename columns&lt;/li&gt;
&lt;li&gt;Remove null rows&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exercise 2: DAX Measures
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Sales = SUM(Sales[Amount])
Total Orders = COUNTROWS(Sales)
Average Order Value = DIVIDE([Total Sales], [Total Orders])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exercise 3: Dashboard
&lt;/h3&gt;

&lt;p&gt;Build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 KPI card&lt;/li&gt;
&lt;li&gt;1 trend chart&lt;/li&gt;
&lt;li&gt;1 bar chart&lt;/li&gt;
&lt;li&gt;1 slicer&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Power BI + DAX Cheat Sheet
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Power Query
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Remove duplicates&lt;/td&gt;
&lt;td&gt;Home → Remove Rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Change data type&lt;/td&gt;
&lt;td&gt;Column header&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trim spaces&lt;/td&gt;
&lt;td&gt;Transform → Format → Trim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Split column&lt;/td&gt;
&lt;td&gt;Transform → Split Column&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  DAX
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Goal&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sum values&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SUM()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Count rows&lt;/td&gt;
&lt;td&gt;&lt;code&gt;COUNTROWS()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distinct count&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DISTINCTCOUNT()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apply filters&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CALCULATE()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time intelligence&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;DATESMTD()&lt;/code&gt;, &lt;code&gt;DATEADD()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safe division&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DIVIDE()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Modeling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use a &lt;strong&gt;Date table&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Prefer &lt;strong&gt;star schema&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Avoid bi-directional filters unless needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  lessons learnt so far.
&lt;/h2&gt;

&lt;p&gt;Power BI is not about making pretty charts.&lt;br&gt;
It’s about building &lt;strong&gt;reliable data pipelines&lt;/strong&gt; that lead to &lt;strong&gt;better decisions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The real skill is not just DAX or visuals —&lt;br&gt;
it’s knowing &lt;strong&gt;what question the business is trying to answer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you’re new to Power BI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start messy&lt;/li&gt;
&lt;li&gt;Build small&lt;/li&gt;
&lt;li&gt;Improve one step at a time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’re doing real analytics when your data isn’t perfect &lt;/p&gt;




</description>
      <category>powerfuldevs</category>
      <category>analytics</category>
      <category>database</category>
      <category>datascience</category>
    </item>
    <item>
      <title>power bi; for beginners on schema and snowflake.</title>
      <dc:creator>Nkatha Gatobu</dc:creator>
      <pubDate>Mon, 02 Feb 2026 15:29:00 +0000</pubDate>
      <link>https://dev.to/nkatha_gatobu_6c815ff9a95/power-bi-for-beginners-on-schema-and-snowflake-2phn</link>
      <guid>https://dev.to/nkatha_gatobu_6c815ff9a95/power-bi-for-beginners-on-schema-and-snowflake-2phn</guid>
      <description>&lt;p&gt;&lt;strong&gt;Power BI: Star Schema vs Snowflake Schema&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Star Schema&lt;/em&gt;&lt;br&gt;
A star schema is defined as the simplest data warehouse schema where one or more fact tables reference any number of dimension tables in a star-like structure.&lt;br&gt;
&lt;em&gt;Structure&lt;/em&gt;&lt;br&gt;
• Fact Table: Central table containing business metrics and foreign keys&lt;br&gt;
• Dimension Tables: Surrounding tables connected directly to the fact table&lt;br&gt;
• Denormalized: Dimension tables contain all related data&lt;br&gt;
*&lt;em&gt;Example of star schema&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu8hiyvb8nd661g0olzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu8hiyvb8nd661g0olzx.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Advantages&lt;/em&gt;&lt;br&gt;
• Simpler Queries: Fewer JOINs required&lt;br&gt;
• Better Performance: Faster query execution&lt;br&gt;
• Easy to Understand: Intuitive structure for business users&lt;br&gt;
• Optimized for Reporting: Ideal for Power BI and analytics&lt;br&gt;
• Reduced Complexity: Minimal table relationships&lt;br&gt;
&lt;em&gt;Disadvantages&lt;/em&gt;&lt;br&gt;
• Data Redundancy: Repeated data in dimension tables&lt;br&gt;
• Storage Inefficiency: Larger storage requirements&lt;br&gt;
• Update Anomalies: Potential data inconsistency&lt;br&gt;
• Less Flexible: Harder to accommodate changes&lt;br&gt;
&lt;em&gt;Snowflake Schema&lt;/em&gt;&lt;br&gt;
A snowflake schema is defined as a normalized version of the star schema where dimension tables are broken down into multiple related tables.&lt;br&gt;
Structure&lt;br&gt;
• Fact Table: Central table with foreign keys&lt;br&gt;
• Normalized Dimensions: Hierarchical dimension tables&lt;br&gt;
• Multiple Levels: Dimensions split into sub-dimensions&lt;/p&gt;

&lt;h2&gt;
  
  
  Example of a snowflake schema
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl342s11y944z6zxt3ky7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl342s11y944z6zxt3ky7.jpeg" alt=" " width="787" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Advantages&lt;br&gt;
• Reduced Data Redundancy: Normalized structure&lt;br&gt;
• Storage Efficiency: Smaller storage footprint&lt;br&gt;
• Data Integrity: Better consistency&lt;br&gt;
• Flexibility: Easier to accommodate changes&lt;br&gt;
• Better for OLTP: Closer to operational databases&lt;br&gt;
Disadvantages&lt;br&gt;
• Complex Queries: More JOINs required&lt;br&gt;
• Slower Performance: Reduced query speed&lt;br&gt;
• Harder to Understand: More complex for business users&lt;br&gt;
• Maintenance Overhead: More tables to manage&lt;br&gt;
When to Use Each Schema&lt;br&gt;
Use Star Schema When:&lt;br&gt;
• Primary Use Case: Business intelligence and reporting&lt;br&gt;
• Performance Critical: Fast query response needed&lt;br&gt;
• Business User Focus: End users need simplicity&lt;br&gt;
• Power BI/Tableau: Optimized for visualization tools&lt;br&gt;
• Read-Intensive: Heavy reporting workload&lt;br&gt;
• Data Marts: Department-specific analytics&lt;br&gt;
Use Snowflake Schema When:&lt;br&gt;
• Primary Use Case: Complex data relationships&lt;br&gt;
• Storage Constraints: Limited storage capacity&lt;br&gt;
• Data Integrity: High consistency requirements&lt;br&gt;
• Source System: Mirroring normalized source data&lt;br&gt;
• ETL Processes: Easier incremental loading&lt;br&gt;
• Regulatory Compliance: Strict data governance&lt;br&gt;
Power BI Considerations&lt;br&gt;
Star Schema is Recommended Because:&lt;/p&gt;

&lt;p&gt;DAX Optimization: Better performance with measures&lt;br&gt;
Relationship Simplicity: Cleaner model relationships&lt;br&gt;
User-Friendly: Easier for report consumers&lt;br&gt;
Query Performance: Faster refresh and calculation&lt;br&gt;
Best Practice: Microsoft's recommended approach&lt;br&gt;
Reference Table showing the differences&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrxcvxzouddypfrur5ph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrxcvxzouddypfrur5ph.png" alt=" " width="787" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Takeaways from power bi schema and snowflake:&lt;br&gt;
• Star Schema = Performance + Simplicity&lt;br&gt;
• Snowflake Schema = Storage Efficiency + Data Integrity&lt;br&gt;
• Power BI prefers Star Schema for better performance&lt;br&gt;
• Choose based on your specific use case and constraints&lt;/p&gt;

</description>
      <category>powerbi</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>MICROSOFT EXCEL FOR BEGINNERS.</title>
      <dc:creator>Nkatha Gatobu</dc:creator>
      <pubDate>Sun, 25 Jan 2026 06:21:35 +0000</pubDate>
      <link>https://dev.to/nkatha_gatobu_6c815ff9a95/microsoft-excel-for-beginners-3kk2</link>
      <guid>https://dev.to/nkatha_gatobu_6c815ff9a95/microsoft-excel-for-beginners-3kk2</guid>
      <description>&lt;p&gt;Microsoft Excel (Ms Excel) happens to be a key toolset in any data analyst's skillset. It helps any data to be understood with ease. People are able to draw conclusions and make interpretations when it is presented in terms of sums, averages, making comparisons from period to period and through presentations in the form of charts and responsive dashboards.&lt;br&gt;
Ms Excel is represented in rows (vertical), columns (horizontal) and cells where formulas of data manipulation are input.&lt;/p&gt;

&lt;p&gt;Data on View Mode on Ms Excel&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkv02e4dadkipybf78sa.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkv02e4dadkipybf78sa.jpeg" alt=" " width="800" height="576"&gt;&lt;/a&gt;&lt;br&gt;
Ms Excel View on Opening a Dataset&lt;br&gt;
The above image is a representation of Ms Excel - the rows, columns, cells and sheets of a dataset to be analysed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjd4kj4ahntwk41qgbc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjd4kj4ahntwk41qgbc9.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Freezing of First Column&lt;br&gt;
This helps the analyst not to lose track of the data that they are analysing. This allows easy manipulation of a large dataset without losing track of the data titles.&lt;br&gt;
The process used to achieve this is as follows:&lt;/p&gt;

&lt;p&gt;On the ribbon/ toolbar, click on View&lt;br&gt;
Choose the item called Freeze Panes&lt;br&gt;
For ease of data access, with a set of data titles, select freeze the first column.&lt;br&gt;
Cursor on Ms Excel highlighting Frozen area&lt;br&gt;
Spilling Over Columns&lt;br&gt;
For data titles in the columns spilling over to other cells, rendering some data hidden in view could lead to the data not being well understood. It is good to auto-adjust the entire dataset for easier reading of titles for proper analysis and interpretation.&lt;br&gt;
This can be done through:&lt;/p&gt;

&lt;p&gt;Click on Home on the toolbar&lt;br&gt;
Choose Format&lt;br&gt;
Autofit Column Width; or&lt;/p&gt;

&lt;p&gt;Click on the row and column intersection&lt;/p&gt;

&lt;p&gt;Hover your cursor on the column until a cross with arrows on the left and right appears&lt;/p&gt;

&lt;p&gt;Double-click on the area that this cross appears&lt;/p&gt;

&lt;p&gt;The column splits are removed all across the dataset.&lt;/p&gt;

&lt;p&gt;Removing Duplicates from the Raw Data&lt;br&gt;
This is an important aspect that every person who intends to manipulate data for it to be easily understood needs to work on.&lt;br&gt;
This will ensure that the raw data does not have any repetitions that could make the analysis poor.&lt;br&gt;
The procedure used to achieve this is as follows:&lt;/p&gt;

&lt;p&gt;Select the entire document; Ctrl + A&lt;br&gt;
Select Data on the toolbar&lt;br&gt;
Under data tools, select remove duplicates&lt;br&gt;
Using Operator Functions in Ms Excel&lt;/p&gt;

&lt;p&gt;These operators are used to help users analyze raw data for easier interpretation.&lt;br&gt;
They include:&lt;/p&gt;

&lt;p&gt;Addition (+)&lt;br&gt;
Subtraction (-)&lt;br&gt;
Division (/)&lt;br&gt;
Multiplication (*)&lt;br&gt;
Exponent (^)&lt;br&gt;
The above operators are used to get averages/ mean, MAX and MIN values, counts/ sum and predictions from raw data with ease.&lt;/p&gt;

&lt;p&gt;ADDITION OPERATOR&lt;/p&gt;

&lt;p&gt;This helps to find the sum of a set of data.&lt;br&gt;
This can be done using COUNTS, COUNTIF, SUM and SUMIFS.&lt;br&gt;
=SUMIF(E2:E877,"&amp;gt;100000") - For salaries equal to or above  $100000&lt;br&gt;
OR&lt;/p&gt;

&lt;p&gt;=COUNTIF(G2:G877,"50") - For ages equal to or above 50 years&lt;br&gt;
MAX AND MIN VALUES&lt;/p&gt;

&lt;p&gt;This is one of the ways to analyse data.&lt;br&gt;
We end up arriving at the maximum/ highest or minimum/ lowest values of raw data.&lt;br&gt;
=MAX(D2:D22) - the highest value - e.g., age, salary, fares&lt;br&gt;
OR&lt;/p&gt;

&lt;p&gt;=MIN(F2:F22) - the lowest value - e.g., age, salary, fares&lt;br&gt;
Using Lookup Functions in Ms Excel&lt;br&gt;
These are divided into three:&lt;/p&gt;

&lt;p&gt;VLOOKUP Function&lt;br&gt;
This searches for data of relevance on the vertical items.&lt;/p&gt;

&lt;p&gt;HLOOKUP Function&lt;br&gt;
This searches for data of relevance on the horizontal items.&lt;/p&gt;

&lt;p&gt;XLOOKUP or Index and Match Function&lt;br&gt;
This indexes the column with the information that you want to know.&lt;/p&gt;

&lt;p&gt;VLOOKUP in Use&lt;/p&gt;

&lt;p&gt;Illustration One&lt;br&gt;
How much is employee ID 10520s bonus?&lt;/p&gt;

&lt;p&gt;=VLOOKUP(10520,A1:P877,15,FALSE)&lt;/p&gt;

&lt;p&gt;The answer is $630.98&lt;br&gt;
HLOOKUP in Use&lt;/p&gt;

&lt;p&gt;Illustration Two&lt;br&gt;
What is the marital status of ID 10102?&lt;/p&gt;

&lt;p&gt;=HLOOKUP(10102,A1:AGS26,16,FALSE)&lt;/p&gt;

&lt;p&gt;The answer to this is MARRIED.&lt;br&gt;
XLOOKUP in Use&lt;/p&gt;

&lt;p&gt;Illustration Three&lt;br&gt;
What is the name/ID of employee earning $77498?&lt;/p&gt;

&lt;p&gt;=XLOOKUP(77498,E2:E877,B2:B877,"NOT FOUND")&lt;/p&gt;

&lt;p&gt;The answer to this is John.&lt;br&gt;
PIVOTTABLES&lt;br&gt;
Used to develop tables that interpret raw data to set conditions.&lt;/p&gt;

&lt;p&gt;To create a suitable pivot table, this is the procedure:&lt;/p&gt;

&lt;p&gt;Click Insert on the toolbar and select Pivot Table&lt;br&gt;
How to Insert a PivotTable&lt;/p&gt;

&lt;p&gt;Click OK to proceed.&lt;br&gt;
PivotTable continued&lt;/p&gt;

&lt;p&gt;On the right side under PivotTable Fields, drag and drop data title items into rows, column or filter sections to meet your analysis needs.&lt;br&gt;
PivotTable Fields to the right of the screenshot&lt;/p&gt;

&lt;p&gt;Developing Charts on Ms Excel for ease of Interpretation of Raw Data&lt;/p&gt;

&lt;p&gt;This is used to interpret the analysed data.&lt;br&gt;
Charts come in various forms and shapes - bars, pie chart and line charts.&lt;br&gt;
The procedure used to get charts is as follows:&lt;br&gt;
Click on the developed PivotTable&lt;br&gt;
Pivot chart analyze&lt;br&gt;
Pivot chart&lt;br&gt;
Select the appropriate chart type from your available options&lt;/p&gt;

&lt;p&gt;The developed PivotTable for analysis&lt;/p&gt;

&lt;p&gt;PivotTable with Column, Row and Sum &lt;/p&gt;

&lt;p&gt;Click on PivotChart on the Toolbar&lt;br&gt;
Under PivotChart Insert the Appropriate Chart Type&lt;/p&gt;

&lt;p&gt;Select the Chart Type to be displayed&lt;br&gt;
Column Chart Displayed&lt;/p&gt;

&lt;p&gt;For simple data analytics, Microsoft Excel is a helpful tool. It facilitates data organization, basic analysis, and straightforward result presentation. Ms Excel is a good starting place for novices learning advanced data analysis.&lt;/p&gt;

</description>
      <category>excelsheets</category>
      <category>pivot</category>
      <category>googlesheets</category>
      <category>datascience</category>
    </item>
    <item>
      <title>GIT FOR BEGINNERS;</title>
      <dc:creator>Nkatha Gatobu</dc:creator>
      <pubDate>Fri, 16 Jan 2026 01:40:39 +0000</pubDate>
      <link>https://dev.to/nkatha_gatobu_6c815ff9a95/git-for-beginners-2lio</link>
      <guid>https://dev.to/nkatha_gatobu_6c815ff9a95/git-for-beginners-2lio</guid>
      <description>&lt;p&gt;*&lt;em&gt;**&lt;u&gt;LEARN TO TRACK, PUSH, PULL LIKE A PRO FOR BEGINNERS.&lt;br&gt;
&lt;/u&gt;&lt;/em&gt;*&lt;br&gt;
Are you stating on your journey on learning about git and github, below is a simple and detailed step by ste on how to get stared on you coding experience alone or with friends and collegues.&lt;/p&gt;

&lt;p&gt;Have you ever worked on a document and wished you could go back to an earlier version? &lt;br&gt;
Collaborated with others and ended up with conflicting changes? Version control solves these problems.&lt;br&gt;
Git is the most popular tool for it. This beginner-friendly guide will help you understand the basics!&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Version Control?
&lt;/h2&gt;

&lt;p&gt;Think of version control as a super-powered "undo" button for your entire project. It's a system that:&lt;/p&gt;

&lt;p&gt;· Tracks every change you make to your code&lt;br&gt;
· Saves snapshots of your project at different points&lt;br&gt;
· Helps teams collaborate without overwriting each other's work&lt;br&gt;
· Lets you experiment safely (you can always go back!)&lt;/p&gt;
&lt;h2&gt;
  
  
  Understanding Git's Three Areas
&lt;/h2&gt;

&lt;p&gt;Imagine Git has three workspaces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Working Directory - Where you actually edit files&lt;/li&gt;
&lt;li&gt;Staging Area - A "preview" area where you prepare changes&lt;/li&gt;
&lt;li&gt;Repository - The permanent storage where Git saves your snapshots&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;**&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started with Git
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 1: Install and Set Up
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download Git from git-scm.com&lt;/li&gt;
&lt;li&gt;Open your terminal/command prompt&lt;/li&gt;
&lt;li&gt;Set up your identity:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"your.email@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Step 2: Create Your First Repository
&lt;/h2&gt;

&lt;p&gt;A repository (or "repo") is where Git stores your project's history.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Navigate to your project folder&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project

&lt;span class="c"&gt;# Initialize a new Git repository&lt;/span&gt;
git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations! You now have a Git repository tracking your project.&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  The Essential Git Workflow
&lt;/h2&gt;

&lt;p&gt;Tracking Changes: The Basic Cycle&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's your daily routine with Git:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Check what you've changed&lt;/span&gt;
git status

&lt;span class="c"&gt;# 2. Add specific files to staging&lt;/span&gt;
git add filename.txt
&lt;span class="c"&gt;# Or add all changes&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# 3. Save a snapshot (called a "commit")&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Description of what you changed"&lt;/span&gt;


&lt;span class="k"&gt;**&lt;/span&gt;

&lt;span class="c"&gt;## Understanding Branches: Parallel Universes for Your Code&lt;/span&gt;

&lt;span class="k"&gt;**&lt;/span&gt;

&lt;span class="c"&gt;## Think of branches as parallel timelines for your project:&lt;/span&gt;

· Main branch: Your stable, working code
· Feature branches: Where you develop new features without breaking the main code

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new branch&lt;/li&gt;
&lt;li&gt;git branch feature-login&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;Switch to that branch&lt;/li&gt;
&lt;li&gt;git checkout feature-login&lt;/li&gt;
&lt;li&gt;use the shortcut:&lt;/li&gt;
&lt;li&gt;git checkout -b feature-login
8.

```&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with Remote Repositories (GitHub/GitLab)
&lt;/h2&gt;

&lt;p&gt;**&lt;br&gt;
Remote repositories are copies of your project stored online (like on GitHub). This enables collaboration and backup.&lt;/p&gt;

&lt;p&gt;Setting Up a Remote Connection&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# Link your local repo to a remote one
git remote add origin https://github.com/yourname/your-repo.git


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Pushing: Sending Your Code to the Cloud&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# First push to a new remote repository
git push -u origin main

# Subsequent pushes (after the first)
git push


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Pulling: Getting Updates from Others&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# Get the latest changes from the remote repository
git pull


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;git pull is downloading what others have shared.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Workflow: Making Changes with a Team
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# 1. Always start with the latest code
git pull

# 2. Create a branch for your work
git checkout -b my-new-feature

# 3. Make changes, add, and commit
git add .
git commit -m "Add new feature"

# 4. Push your branch to share it
git push -u origin my-new-feature


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Dealing with Common Situations&lt;/p&gt;

&lt;p&gt;"I made a mistake in my commit message"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
git commit --amend -m "New corrected message"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;"I want to see my project's history"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
git log --oneline  # Compact view
git log --graph --oneline --all  # Visual history


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;"I accidentally added a file I don't want to track"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# Remove from staging (but keep the file)
git reset filename.txt

# Stop tracking a file completely
git rm --cached filename.txt


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;_&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Beginners
&lt;/h2&gt;

&lt;p&gt;_&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Commit often - Small, frequent commits are better than huge ones&lt;/li&gt;
&lt;li&gt;Pull before you start - Always begin with the latest code&lt;/li&gt;
&lt;li&gt;Write helpful messages - Explain "why" not just "what"&lt;/li&gt;
&lt;li&gt;Use branches - Keep your main branch stable&lt;/li&gt;
&lt;li&gt;Don't panic - Git keeps your work safe. You can almost always recover!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;**_Remember: Every expert was once a beginner. The more you use Git, the more natural it becomes. Happy coding! &lt;/p&gt;

&lt;p&gt;_**&lt;/p&gt;

</description>
      <category>git</category>
      <category>techtalks</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
