<?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: Ibrahim Abdulrasaq</title>
    <description>The latest articles on DEV Community by Ibrahim Abdulrasaq (@ibrahimabdulrasaq).</description>
    <link>https://dev.to/ibrahimabdulrasaq</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3680432%2F6a892976-341d-402f-a7f0-51cf31abeb97.png</url>
      <title>DEV Community: Ibrahim Abdulrasaq</title>
      <link>https://dev.to/ibrahimabdulrasaq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ibrahimabdulrasaq"/>
    <language>en</language>
    <item>
      <title>Configure a Semantic Model in Power BI: A Beginner-Friendly Step-by-Step Guide</title>
      <dc:creator>Ibrahim Abdulrasaq</dc:creator>
      <pubDate>Fri, 02 Oct 2026 06:29:36 +0000</pubDate>
      <link>https://dev.to/ibrahimabdulrasaq/configure-a-semantic-model-in-power-bi-a-beginner-friendly-step-by-step-guide-4c24</link>
      <guid>https://dev.to/ibrahimabdulrasaq/configure-a-semantic-model-in-power-bi-a-beginner-friendly-step-by-step-guide-4c24</guid>
      <description>&lt;p&gt;A good Power BI report starts with a good data model.&lt;/p&gt;

&lt;p&gt;You can create beautiful charts and dashboards, but if the tables in your model are not properly connected or your fields are poorly configured, your report can produce misleading results.&lt;/p&gt;

&lt;p&gt;This is where a semantic model comes in.&lt;/p&gt;

&lt;p&gt;A semantic model in Power BI defines how your data is organized and how different tables interact with one another. It includes tables, columns, relationships, hierarchies, measures, and other properties that make your data easier to understand and use when building reports.&lt;/p&gt;

&lt;p&gt;In this guide, we will walk through how to configure a semantic model in Power BI Desktop using a practical sales dataset.&lt;/p&gt;

&lt;p&gt;By the end of the tutorial, you will know how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create relationships between tables&lt;/li&gt;
&lt;li&gt;Understand cardinality and filter direction&lt;/li&gt;
&lt;li&gt;Create and configure hierarchies&lt;/li&gt;
&lt;li&gt;Organize fields using display folders&lt;/li&gt;
&lt;li&gt;Configure data categories&lt;/li&gt;
&lt;li&gt;Add descriptions and formatting to columns&lt;/li&gt;
&lt;li&gt;Hide technical columns&lt;/li&gt;
&lt;li&gt;Configure default summarization&lt;/li&gt;
&lt;li&gt;Turn off automatic date/time hierarchies&lt;/li&gt;
&lt;li&gt;Create quick measures&lt;/li&gt;
&lt;li&gt;Configure a many-to-many relationship&lt;/li&gt;
&lt;li&gt;Use a bridging table&lt;/li&gt;
&lt;li&gt;Connect a targets table to your model&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Is a Semantic Model in Power BI?
&lt;/h2&gt;

&lt;p&gt;Before we start building, let's understand what we are configuring.&lt;/p&gt;

&lt;p&gt;A semantic model is the structure that tells Power BI &lt;strong&gt;how your data should be understood and used&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, imagine you have these tables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Product&lt;/strong&gt;: contains product information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sales&lt;/strong&gt;: contains sales transactions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reseller&lt;/strong&gt;: contains reseller information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt;: contains sales territory information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Salesperson&lt;/strong&gt;: contains salesperson information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Targets&lt;/strong&gt;: contains sales targets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tables contain related information, but Power BI needs to know &lt;strong&gt;how they are connected&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One product can appear in many sales transactions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This means the &lt;code&gt;Product&lt;/code&gt; table and &lt;code&gt;Sales&lt;/code&gt; table can have a &lt;strong&gt;one-to-many relationship&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Once relationships are correctly configured, selecting a product category can automatically filter the corresponding sales records.&lt;/p&gt;

&lt;p&gt;That is the foundation of a useful Power BI semantic model.&lt;/p&gt;




&lt;h1&gt;
  
  
  Getting Started
&lt;/h1&gt;

&lt;p&gt;For this tutorial, we will use the Microsoft Power BI learning dataset.&lt;/p&gt;

&lt;p&gt;Download the starter ZIP file and extract it to your computer.&lt;/p&gt;

&lt;p&gt;Inside the extracted folder, open:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;03-Starter-Sales Analysis.pbix&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When Power BI Desktop opens the file, you may see a sign-in window. If you do, select &lt;strong&gt;Cancel&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If Power BI displays other informational messages, close them. If prompted to apply changes later, select &lt;strong&gt;Apply Later&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Once the file opens, you are ready to begin.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1: Inspect the Existing Data
&lt;/h1&gt;

&lt;p&gt;Before creating relationships, it is useful to understand the tables available in the model.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;Data&lt;/strong&gt; pane.&lt;/li&gt;
&lt;li&gt;Right-click an empty area inside the pane.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Expand All&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This allows you to see the columns available in each table.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9ap35o5fpg4bxxas9b4z.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9ap35o5fpg4bxxas9b4z.png" alt="Image 1" width="800" height="400"&gt;&lt;/a&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkm5kfr8ys7jd0238wagt.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkm5kfr8ys7jd0238wagt.png" alt="Image 2" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the important tables in this model include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product&lt;/li&gt;
&lt;li&gt;Sales&lt;/li&gt;
&lt;li&gt;Reseller&lt;/li&gt;
&lt;li&gt;Region&lt;/li&gt;
&lt;li&gt;Salesperson&lt;/li&gt;
&lt;li&gt;SalespersonRegion&lt;/li&gt;
&lt;li&gt;Targets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;Sales&lt;/code&gt; table contains transaction-level information, while the other tables provide additional information that can be used to analyze those transactions.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 2: See What Happens Without a Relationship
&lt;/h1&gt;

&lt;p&gt;Let's first see why relationships are important.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Report view&lt;/strong&gt;, create a table visual.&lt;/p&gt;

&lt;p&gt;From the &lt;code&gt;Product&lt;/code&gt; table, select:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Product | Category&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then add:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Sales&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You should see the product categories, but the sales value may be repeated for each category.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because Power BI currently doesn't have a relationship connecting the &lt;code&gt;Product&lt;/code&gt; table to the &lt;code&gt;Sales&lt;/code&gt; table.&lt;/p&gt;

&lt;p&gt;The category comes from one table, while sales comes from another. Without a relationship, the filter from &lt;code&gt;Product&lt;/code&gt; cannot properly propagate to &lt;code&gt;Sales&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is one of the most important concepts to understand when working with Power BI data models.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3: Create the Product-to-Sales Relationship
&lt;/h1&gt;

&lt;p&gt;Now let's fix the problem.&lt;/p&gt;

&lt;p&gt;Switch to &lt;strong&gt;Model view&lt;/strong&gt; by selecting the Model icon on the left side of Power BI Desktop.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1u803k715svtup6imjlk.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1u803k715svtup6imjlk.png" alt="Image 3" width="145" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the &lt;strong&gt;Home&lt;/strong&gt; ribbon, select:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manage relationships&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbb2x7nswitc2fhm1u3ge.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbb2x7nswitc2fhm1u3ge.png" alt=" " width="796" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If there are no relationships, select:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;+ New relationship&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Configure the relationship as follows:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;From table&lt;/td&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;From column&lt;/td&gt;
&lt;td&gt;ProductKey&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;To table&lt;/td&gt;
&lt;td&gt;Sales&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;To column&lt;/td&gt;
&lt;td&gt;ProductKey&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cardinality&lt;/td&gt;
&lt;td&gt;One to many (1:*)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross filter direction&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Active&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Power BI may automatically detect the matching &lt;code&gt;ProductKey&lt;/code&gt; columns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding the relationship
&lt;/h3&gt;

&lt;p&gt;The relationship is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product (1) → Sales (*)&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgi3xlr335ulvlt5mrt7s.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgi3xlr335ulvlt5mrt7s.png" alt="Image 4" width="735" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This means one product can appear in many sales records.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Single&lt;/strong&gt; cross-filter direction means that filters generally flow from the &lt;code&gt;Product&lt;/code&gt; table to the &lt;code&gt;Sales&lt;/code&gt; table.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Product Category → Product → Sales&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If a user selects the "Bikes" category, Power BI can now filter the corresponding sales records.&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Save&lt;/strong&gt;, then &lt;strong&gt;Close&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Return to &lt;strong&gt;Report view&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The table should now show different sales values for the different product categories.&lt;/p&gt;

&lt;p&gt;That's the relationship doing its job.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4: Understand Relationship Symbols
&lt;/h1&gt;

&lt;p&gt;When you look at the model diagram, Power BI displays useful information on the relationship line.&lt;/p&gt;

&lt;p&gt;You may see:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt; and &lt;strong&gt;Many&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Felzzh2yzo7l9pshracm8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Felzzh2yzo7l9pshracm8.png" alt="Image 5" width="688" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These represent cardinality.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;1&lt;/code&gt; = one&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;*&lt;/code&gt; = many&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;1 → *&lt;/em&gt;* means one-to-many.&lt;/p&gt;

&lt;p&gt;You may also see an arrow showing the filter direction.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ub6wgau7wqzrqpbv82f.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ub6wgau7wqzrqpbv82f.png" alt="Image 6" width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The relationship line itself can also be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solid&lt;/strong&gt; = active relationship&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dotted&lt;/strong&gt; = inactive relationship&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These visual indicators make it easier to understand the model without opening every relationship.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5: Create Additional Relationships Using Drag and Drop
&lt;/h1&gt;

&lt;p&gt;Power BI provides another easy way to create relationships.&lt;/p&gt;

&lt;p&gt;Instead of using &lt;strong&gt;Manage relationships&lt;/strong&gt;, you can drag a column from one table onto its matching column in another table.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Model view&lt;/strong&gt;, drag:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Reseller | ResellerKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;onto:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | ResellerKey&lt;/code&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxoodtmr0sjd36k4cbx71.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxoodtmr0sjd36k4cbx71.png" alt="Image 7" width="574" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review the relationship and select &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Then create these additional relationships:&lt;/p&gt;

&lt;h3&gt;
  
  
  Region → Sales
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Region | SalesTerritoryKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | SalesTerritoryKey&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Salesperson → Sales
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Salesperson | EmployeeKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | EmployeeKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After creating the relationships, arrange the model so that the &lt;code&gt;Sales&lt;/code&gt; table is positioned near the center, with related tables around it.&lt;/p&gt;

&lt;p&gt;This makes the model easier to understand visually.&lt;/p&gt;

&lt;p&gt;Save the Power BI file.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 6: Create a Product Hierarchy
&lt;/h1&gt;

&lt;p&gt;Hierarchies make it easier for report users to navigate data from a higher level to a more detailed level.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Category → Subcategory → Product&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's create one.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Model view&lt;/strong&gt;, expand the &lt;code&gt;Product&lt;/code&gt; table.&lt;/p&gt;

&lt;p&gt;Right-click:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Category&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Select:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create hierarchy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI will create a new hierarchy.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1469vq45r61o9z2yorww.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1469vq45r61o9z2yorww.png" alt="Image 8" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, rename the hierarchy:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Products&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhh9hmhdsxu980hevli8s.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhh9hmhdsxu980hevli8s.png" alt="Image 9" width="282" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now add two more levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subcategory&lt;/li&gt;
&lt;li&gt;Product&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Select &lt;strong&gt;Apply Level Changes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You should now have:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Products&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Category&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subcategory&lt;/li&gt;
&lt;li&gt;Product&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2dvnuthm1qvs9g28zrbh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2dvnuthm1qvs9g28zrbh.png" alt="Image 10" width="399" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This hierarchy can later be used for drill-down in report visuals.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 7: Organize Columns Using a Display Folder
&lt;/h1&gt;

&lt;p&gt;As your model becomes larger, the Data pane can become difficult to navigate.&lt;/p&gt;

&lt;p&gt;Display folders help organize related fields.&lt;/p&gt;

&lt;p&gt;In the &lt;code&gt;Product&lt;/code&gt; table, select:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Background Color Format&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Hold &lt;strong&gt;Ctrl&lt;/strong&gt; and select:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Font Color Format&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, enter:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formatting&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6iwcd8vo0o1bcfq9zzup.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6iwcd8vo0o1bcfq9zzup.png" alt="Image 11" width="400" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;in the &lt;strong&gt;Display Folder&lt;/strong&gt; property.&lt;/p&gt;

&lt;p&gt;The two columns will now appear inside a &lt;code&gt;Formatting&lt;/code&gt; folder.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F646cbaoq3an75xhvm50v.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F646cbaoq3an75xhvm50v.png" alt="Image 12" width="226" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Display folders do not change the data itself. They are simply a way of organizing fields and making the model easier for report authors to use.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 8: Configure the Region Table
&lt;/h1&gt;

&lt;p&gt;Now let's configure the &lt;code&gt;Region&lt;/code&gt; table.&lt;/p&gt;

&lt;p&gt;Create a hierarchy called:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add these three levels:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Group&lt;/li&gt;
&lt;li&gt;Country&lt;/li&gt;
&lt;li&gt;Region&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next, select the actual &lt;code&gt;Country&lt;/code&gt; column, not the hierarchy level.&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Expand &lt;strong&gt;Advanced&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Find &lt;strong&gt;Data Category&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Country/Region&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ra6vwl8k64imftdmb6r.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ra6vwl8k64imftdmb6r.png" alt="Image 13" width="272" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why does this matter?&lt;/p&gt;

&lt;p&gt;Data categories provide additional information to Power BI about what a field represents.&lt;/p&gt;

&lt;p&gt;For example, categorizing a field as &lt;strong&gt;Country/Region&lt;/strong&gt; helps Power BI interpret the field correctly when working with map visuals.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 9: Configure the Reseller Table
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;Reseller&lt;/code&gt; table also needs some useful hierarchies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create the Resellers hierarchy
&lt;/h2&gt;

&lt;p&gt;Create a hierarchy called:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resellers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business Type&lt;/li&gt;
&lt;li&gt;Reseller&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Create the Geography hierarchy
&lt;/h2&gt;

&lt;p&gt;Create another hierarchy called:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geography&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Country-Region&lt;/li&gt;
&lt;li&gt;State-Province&lt;/li&gt;
&lt;li&gt;City&lt;/li&gt;
&lt;li&gt;Reseller&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now configure the geographic columns.&lt;/p&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Country-Region&lt;/code&gt; → &lt;strong&gt;Country/Region&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;State-Province&lt;/code&gt; → &lt;strong&gt;State or Province&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;City&lt;/code&gt; → &lt;strong&gt;City&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Remember to select the actual columns when configuring their data categories, rather than the hierarchy levels.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 10: Improve the Sales Table
&lt;/h1&gt;

&lt;p&gt;A well-configured semantic model should be easy for other people to understand.&lt;/p&gt;

&lt;p&gt;Let's improve the &lt;code&gt;Sales&lt;/code&gt; table.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add a description to Cost
&lt;/h2&gt;

&lt;p&gt;Select:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Cost&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, find &lt;strong&gt;Description&lt;/strong&gt; and enter:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Based on standard cost&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Descriptions are useful because report authors can see additional information when they hover over the field.&lt;/p&gt;




&lt;h2&gt;
  
  
  Format Quantity
&lt;/h2&gt;

&lt;p&gt;Select:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Quantity&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Formatting&lt;/strong&gt;, set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thousands Separator → Yes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This makes large values easier to read.&lt;/p&gt;




&lt;h2&gt;
  
  
  Format Unit Price
&lt;/h2&gt;

&lt;p&gt;Select:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Unit Price&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decimal Places → 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then, under &lt;strong&gt;Advanced&lt;/strong&gt;, change:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summarize By → Average&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is important.&lt;/p&gt;

&lt;p&gt;Power BI commonly summarizes numeric columns using &lt;strong&gt;Sum&lt;/strong&gt; by default.&lt;/p&gt;

&lt;p&gt;But adding unit prices together usually doesn't make business sense.&lt;/p&gt;

&lt;p&gt;For example, if three products have unit prices of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$10&lt;/li&gt;
&lt;li&gt;$20&lt;/li&gt;
&lt;li&gt;$30&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A total of $60 isn't a meaningful "unit price."&lt;/p&gt;

&lt;p&gt;An average of $20 is more useful.&lt;/p&gt;

&lt;p&gt;This is why choosing the appropriate default summarization matters.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 11: Hide Technical Columns
&lt;/h1&gt;

&lt;p&gt;Not every column needs to be visible to report users.&lt;/p&gt;

&lt;p&gt;Some columns exist mainly to support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relationships&lt;/li&gt;
&lt;li&gt;Calculations&lt;/li&gt;
&lt;li&gt;Row-level security&lt;/li&gt;
&lt;li&gt;Internal model logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Select the following columns and set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Hidden → Yes&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Product
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Product | ProductKey&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Region
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Region | SalesTerritoryKey&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reseller
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Reseller | ResellerKey&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Sales
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sales | EmployeeKey&lt;/li&gt;
&lt;li&gt;Sales | ProductKey&lt;/li&gt;
&lt;li&gt;Sales | ResellerKey&lt;/li&gt;
&lt;li&gt;Sales | SalesOrderNumber&lt;/li&gt;
&lt;li&gt;Sales | SalesTerritoryKey&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Salesperson
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Salesperson | EmployeeID&lt;/li&gt;
&lt;li&gt;Salesperson | EmployeeKey&lt;/li&gt;
&lt;li&gt;Salesperson | UPN&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SalespersonRegion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SalespersonRegion | EmployeeKey&lt;/li&gt;
&lt;li&gt;SalespersonRegion | SalesTerritoryKey&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Targets
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Targets | EmployeeID&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Hiding these fields doesn't delete them.&lt;/p&gt;

&lt;p&gt;They remain available to Power BI for model operations, but they are no longer visible to report authors in the normal Data pane.&lt;/p&gt;

&lt;p&gt;This makes the model cleaner and easier to use.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 12: Format Financial Columns
&lt;/h1&gt;

&lt;p&gt;Select these three columns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Product | Standard Cost&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sales | Cost&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sales | Sales&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decimal Places → 0&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This removes unnecessary decimal places and makes the values easier to read.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 13: Turn Off Auto Date/Time
&lt;/h1&gt;

&lt;p&gt;Power BI can automatically create date hierarchies for date columns.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;OrderDate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;may automatically provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Year&lt;/li&gt;
&lt;li&gt;Quarter&lt;/li&gt;
&lt;li&gt;Month&lt;/li&gt;
&lt;li&gt;Day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This can be convenient, but automatic date/time isn't always appropriate for a well-designed model.&lt;/p&gt;

&lt;p&gt;For this Adventure Works model, the financial year begins on &lt;strong&gt;July 1&lt;/strong&gt;, while the automatic date hierarchy follows a calendar year beginning on January 1.&lt;/p&gt;

&lt;p&gt;A proper date table gives you much more control over this type of business logic.&lt;/p&gt;

&lt;p&gt;To turn off Auto Date/Time:&lt;/p&gt;

&lt;p&gt;Go to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File → Options and settings → Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Current File&lt;/strong&gt;, go to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Load → Time Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uncheck:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto Date/Time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;OK&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The automatically generated date hierarchies will disappear.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 14: Create a Quick Measure for Profit
&lt;/h1&gt;

&lt;p&gt;Power BI's &lt;strong&gt;Quick Measures&lt;/strong&gt; feature can create common calculations without requiring you to manually write the DAX formula.&lt;/p&gt;

&lt;p&gt;Right-click the &lt;code&gt;Sales&lt;/code&gt; table and select:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Quick Measure&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F06y3bc33emfmfudqrw9c.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F06y3bc33emfmfudqrw9c.png" alt="Image 14" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Quick Measure pane, choose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mathematical Operations → Subtraction&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6sidos7036j96u4qywob.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6sidos7036j96u4qywob.png" alt="Image 15" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base Value:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Sales&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Value to Subtract:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Cost&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Add&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Power BI creates a measure.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff1oecqjgsapr5vkyo8e9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff1oecqjgsapr5vkyo8e9.png" alt="Image 16" width="619" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rename it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The calculation is essentially:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profit = Sales - Cost&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The calculator icon beside the field indicates that it is a measure.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 15: Create a Profit Margin Measure
&lt;/h1&gt;

&lt;p&gt;Create another Quick Measure.&lt;/p&gt;

&lt;p&gt;This time select:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mathematical Operations → Division&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Numerator:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Profit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Denominator:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Sales&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Add&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Rename the new measure:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profit Margin&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The calculation is essentially:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profit Margin = Profit ÷ Sales&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select the &lt;code&gt;Profit Margin&lt;/code&gt; measure.&lt;/p&gt;

&lt;p&gt;On the &lt;strong&gt;Measure Tools&lt;/strong&gt; ribbon, format it as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Percentage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decimal Places → 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, a result of &lt;code&gt;0.25&lt;/code&gt; will be displayed as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;25.00%&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 16: Test the Measures
&lt;/h1&gt;

&lt;p&gt;Return to the report page.&lt;/p&gt;

&lt;p&gt;Select the existing table visual.&lt;/p&gt;

&lt;p&gt;Add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Profit&lt;/li&gt;
&lt;li&gt;Profit Margin&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5cvgk9mq7494201zpnhd.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5cvgk9mq7494201zpnhd.png" alt="Image 17" width="191" height="197"&gt;&lt;/a&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx5vmhw5nwc6f8clc58ym.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx5vmhw5nwc6f8clc58ym.png" alt="Image 18" width="421" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resize the visual if necessary so all the columns are visible.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgwl7k1wa6pdvfq8vfhg0.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgwl7k1wa6pdvfq8vfhg0.png" alt="Image 19" width="385" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check that the values are reasonable and that the profit margin is displayed as a percentage.&lt;/p&gt;

&lt;p&gt;This is a good example of why measures are useful.&lt;/p&gt;

&lt;p&gt;Instead of storing another column for every calculation, a measure calculates the result based on the current filter context of the report.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 17: Understand the Many-to-Many Challenge
&lt;/h1&gt;

&lt;p&gt;Now we get to a more advanced part of the model.&lt;/p&gt;

&lt;p&gt;Create a table visual containing:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Salesperson | Salesperson&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales | Sales&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The visual shows sales generated by each salesperson.&lt;/p&gt;

&lt;p&gt;However, there is another business relationship to consider.&lt;/p&gt;

&lt;p&gt;A salesperson can belong to multiple sales regions.&lt;/p&gt;

&lt;p&gt;At the same time, a sales region can have multiple salespeople.&lt;/p&gt;

&lt;p&gt;This creates a &lt;strong&gt;many-to-many&lt;/strong&gt; scenario.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One salesperson → multiple regions&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One region → multiple salespeople&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Trying to connect these tables directly can create ambiguity in the model.&lt;/p&gt;

&lt;p&gt;This is where a &lt;strong&gt;bridge table&lt;/strong&gt; becomes useful.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 18: Use SalespersonRegion as a Bridge Table
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;SalespersonRegion&lt;/code&gt; table can act as a bridge between &lt;code&gt;Salesperson&lt;/code&gt; and &lt;code&gt;Region&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In Model view, position it between the two tables.&lt;/p&gt;

&lt;p&gt;Create these relationships:&lt;/p&gt;

&lt;h3&gt;
  
  
  Salesperson → SalespersonRegion
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Salesperson | EmployeeKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SalespersonRegion | EmployeeKey&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Region → SalespersonRegion
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Region | SalesTerritoryKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SalespersonRegion | SalesTerritoryKey&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The resulting structure is conceptually:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Salesperson → SalespersonRegion ← Region&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The bridge table helps represent the many-to-many assignment between salespeople and regions.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 19: Configure Filter Direction
&lt;/h1&gt;

&lt;p&gt;At this point, the report may still not produce the expected sales result.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Look at the arrows on the relationships.&lt;/p&gt;

&lt;p&gt;The filter may travel from &lt;code&gt;Salesperson&lt;/code&gt; to &lt;code&gt;SalespersonRegion&lt;/code&gt;, but not continue through to &lt;code&gt;Region&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To allow the required filter propagation, edit the relationship between:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Region&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SalespersonRegion&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Double-click the relationship.&lt;/p&gt;

&lt;p&gt;Set:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross Filter Direction → Both&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then check:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apply Security Filter in Both Directions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Save&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4dnfpegxnrjb46e0plyu.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4dnfpegxnrjb46e0plyu.png" alt="Image 20" width="688" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The relationship will now display double arrowheads.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 20: Avoid Ambiguous Filter Paths
&lt;/h1&gt;

&lt;p&gt;There is another issue.&lt;/p&gt;

&lt;p&gt;There may now be two possible paths between &lt;code&gt;Salesperson&lt;/code&gt; and &lt;code&gt;Sales&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Salesperson → Sales&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Salesperson → SalespersonRegion → Region → Sales&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When multiple active paths exist between tables, Power BI can encounter ambiguous filter propagation.&lt;/p&gt;

&lt;p&gt;This is generally something you should avoid when designing a production semantic model.&lt;/p&gt;

&lt;p&gt;In this lab, we solve the issue by making the direct &lt;code&gt;Salesperson&lt;/code&gt; to &lt;code&gt;Sales&lt;/code&gt; relationship inactive.&lt;/p&gt;

&lt;p&gt;Double-click the relationship between:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Salesperson&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sales&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Uncheck:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make This Relationship Active&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The relationship will now appear as a dotted line.&lt;/p&gt;

&lt;p&gt;The active filtering path will instead pass through the bridge structure.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 21: Rename the Salesperson Table
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;Salesperson&lt;/code&gt; table is now being used for a specific analytical purpose.&lt;/p&gt;

&lt;p&gt;Select the table in Model view.&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, rename it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Salesperson (Performance)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The new name makes the purpose of the table clearer to anyone working with the model.&lt;/p&gt;

&lt;p&gt;Good naming is a small detail, but it becomes increasingly important as Power BI models become more complex.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 22: Connect the Targets Table
&lt;/h1&gt;

&lt;p&gt;Finally, let's connect salespeople to their targets.&lt;/p&gt;

&lt;p&gt;Create a relationship between:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Salesperson (Performance) | EmployeeID&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Targets | EmployeeID&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then return to Report view.&lt;/p&gt;

&lt;p&gt;Add:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Targets | Target&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to the table visual.&lt;/p&gt;

&lt;p&gt;Resize the visual if necessary.&lt;/p&gt;

&lt;p&gt;You can now compare sales information with target information.&lt;/p&gt;

&lt;p&gt;However, there are two important considerations:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Time period
&lt;/h3&gt;

&lt;p&gt;The targets table may contain future target values if no time filter has been applied.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Targets are not additive
&lt;/h3&gt;

&lt;p&gt;Adding individual target values together may not always produce a meaningful total.&lt;/p&gt;

&lt;p&gt;This is a good example of why understanding the meaning of your data is just as important as understanding Power BI's technical features.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Model Checklist
&lt;/h1&gt;

&lt;p&gt;Before considering your semantic model complete, review the following:&lt;/p&gt;

&lt;h3&gt;
  
  
  Relationships
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Product is connected to Sales.&lt;/li&gt;
&lt;li&gt;Reseller is connected to Sales.&lt;/li&gt;
&lt;li&gt;Region is connected to Sales.&lt;/li&gt;
&lt;li&gt;Salesperson is connected to the model.&lt;/li&gt;
&lt;li&gt;SalespersonRegion is used as a bridge table.&lt;/li&gt;
&lt;li&gt;Targets is connected to the salesperson performance table.&lt;/li&gt;
&lt;li&gt;Relationship cardinality and filter directions are appropriate.&lt;/li&gt;
&lt;li&gt;Unnecessary ambiguous paths are avoided.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hierarchies
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Products hierarchy&lt;/li&gt;
&lt;li&gt;Regions hierarchy&lt;/li&gt;
&lt;li&gt;Resellers hierarchy&lt;/li&gt;
&lt;li&gt;Geography hierarchy&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Data categories
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Country fields categorized as Country/Region&lt;/li&gt;
&lt;li&gt;State fields categorized as State or Province&lt;/li&gt;
&lt;li&gt;City fields categorized as City&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Organization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Formatting fields placed in a display folder.&lt;/li&gt;
&lt;li&gt;Technical columns hidden.&lt;/li&gt;
&lt;li&gt;Tables and fields given meaningful names.&lt;/li&gt;
&lt;li&gt;Descriptions added where useful.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Formatting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Quantity uses a thousands separator.&lt;/li&gt;
&lt;li&gt;Unit Price uses two decimal places.&lt;/li&gt;
&lt;li&gt;Standard Cost, Cost and Sales use zero decimal places.&lt;/li&gt;
&lt;li&gt;Profit Margin is formatted as a percentage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Measures
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Profit measure created.&lt;/li&gt;
&lt;li&gt;Profit Margin measure created.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Date settings
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Auto Date/Time disabled.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Why Semantic Modeling Matters
&lt;/h1&gt;

&lt;p&gt;Configuring a semantic model is not just about connecting tables.&lt;/p&gt;

&lt;p&gt;It is about creating a structure that allows Power BI to interpret your data correctly.&lt;/p&gt;

&lt;p&gt;A well-designed model helps ensure that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filters work as expected.&lt;/li&gt;
&lt;li&gt;Calculations return meaningful results.&lt;/li&gt;
&lt;li&gt;Report users can find the fields they need.&lt;/li&gt;
&lt;li&gt;Technical fields don't clutter the Data pane.&lt;/li&gt;
&lt;li&gt;Hierarchies support intuitive drill-down.&lt;/li&gt;
&lt;li&gt;Geographic fields work correctly with maps.&lt;/li&gt;
&lt;li&gt;Measures are reusable across different visuals.&lt;/li&gt;
&lt;li&gt;Complex relationships can be handled more effectively.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, the semantic model sits behind the report and provides the foundation for reliable analysis.&lt;/p&gt;




&lt;h1&gt;
  
  
  Key Takeaways
&lt;/h1&gt;

&lt;p&gt;If you're just starting with Power BI, focus on these concepts first:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Relationships connect your data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tables need correctly configured relationships so filters can propagate between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Cardinality describes how tables relate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Common relationship types include one-to-many and many-to-many.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Filter direction matters.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It determines how filters move between related tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Hierarchies improve navigation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They allow users to move from broad categories to more detailed information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Data categories provide additional meaning.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They help Power BI understand fields such as countries, states and cities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Hide technical fields.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not every field needs to be exposed to report users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Use measures for calculations.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Measures such as Profit and Profit Margin can respond dynamically to the current filter context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Be careful with many-to-many relationships.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bridge tables can help model many-to-many scenarios, but filter paths must be designed carefully to avoid ambiguity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. A clean model makes reporting easier.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal isn't simply to make the model work. It should also be understandable and easy for others to use.&lt;/p&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;A Power BI report is only as reliable as the model behind it.&lt;/p&gt;

&lt;p&gt;By correctly configuring relationships, hierarchies, data categories, formatting, measures and filter behavior, you create a semantic model that makes your data easier to analyze and your reports easier to build.&lt;/p&gt;

&lt;p&gt;If you're learning Power BI, don't rush straight into creating charts and dashboards. Spend time understanding the model first.&lt;/p&gt;

&lt;p&gt;Once the model is properly configured, building meaningful reports becomes much easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy modeling!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>analytics</category>
      <category>beginners</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Clean, Transform, and Load Data in Power BI: A Beginner-Friendly Guide</title>
      <dc:creator>Ibrahim Abdulrasaq</dc:creator>
      <pubDate>Sun, 25 Jan 2026 10:41:24 +0000</pubDate>
      <link>https://dev.to/ibrahimabdulrasaq/clean-transform-and-load-data-in-power-bi-a-beginner-friendly-guide-41ej</link>
      <guid>https://dev.to/ibrahimabdulrasaq/clean-transform-and-load-data-in-power-bi-a-beginner-friendly-guide-41ej</guid>
      <description>&lt;p&gt;Data is only as powerful as the shape it’s in. Before charts impress and dashboards tell stories, data must be cleaned, structured, and trusted. In Power BI, that transformation happens in Power Query, the engine that turns raw, messy data into meaningful insights.&lt;/p&gt;

&lt;p&gt;If you are new to Power BI, one of the most important skills you need to learn is data preparation. No matter how good your visuals look, poor data quality will always lead to poor insights. This is why cleaning and transforming data is a critical step in any Power BI project.&lt;/p&gt;

&lt;p&gt;Power Query is the engine in Power BI that allows you to clean, transform, and prepare your data before it is loaded into the data model. With Power Query, you can fix inconsistencies, handle missing values, reshape tables, combine data from different sources, and apply user-friendly naming conventions that make your model easy to understand.&lt;/p&gt;

&lt;p&gt;In this beginner-friendly guide, I will walk you step by step through how to clean, transform, and load data in Power BI using a practical, hands-on dataset.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Will Learn
&lt;/h3&gt;

&lt;p&gt;By the end of this guide, you will be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resolve inconsistencies, unexpected values, and data quality issues&lt;/li&gt;
&lt;li&gt;Remove duplicate records&lt;/li&gt;
&lt;li&gt;Remove or replace null values&lt;/li&gt;
&lt;li&gt;Apply user-friendly value replacements&lt;/li&gt;
&lt;li&gt;Profile data to understand column quality&lt;/li&gt;
&lt;li&gt;Evaluate and transform column data types&lt;/li&gt;
&lt;li&gt;Reshape tables using pivot and unpivot operations&lt;/li&gt;
&lt;li&gt;Combine and merge queries&lt;/li&gt;
&lt;li&gt;Apply clear and user-friendly naming conventions&lt;/li&gt;
&lt;li&gt;Edit transformations using the Advanced Editor (M code)&lt;/li&gt;
&lt;li&gt;Load a clean and reliable data model into Power BI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Getting Started: Download the Practice Files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To follow along with this guide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the dataset from the link below:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/MicrosoftLearning/PL-300-Microsoft-Power-BI-Data-Analyst/raw/Main/Allfiles/Labs/02-transform-data-power-bi/02-transform-data.zip" rel="noopener noreferrer"&gt;https://github.com/MicrosoftLearning/PL-300-Microsoft-Power-BI-Data-Analyst/raw/Main/Allfiles/Labs/02-transform-data-power-bi/02-transform-data.zip&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract the zip file to:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C:\Users\Downloads\02-transform-data&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;C:\This PC\Downloads\02-transform-data&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the file 02-Starter-Sales Analysis.pbix&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If a sign-in dialog appears, select Cancel. Close any informational windows and select Apply Later if prompted.&lt;/p&gt;

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

&lt;p&gt;In Power BI Desktop, go to the Home tab and select Transform Data.&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%2Fp0s74yp5bdsbdej84ujt.jpg" 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%2Fp0s74yp5bdsbdej84ujt.jpg" alt="Image 1" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This opens the Power Query Editor, where all data cleaning and transformation tasks are performed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's start with how to configure a table/query
&lt;/h3&gt;

&lt;p&gt;This section will walk you through how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rename query/table &lt;/li&gt;
&lt;li&gt;Locate column &lt;/li&gt;
&lt;li&gt;Filter&lt;/li&gt;
&lt;li&gt;Merge columns&lt;/li&gt;
&lt;li&gt;Delimiter Etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Configuring the Salesperson Query
&lt;/h3&gt;

&lt;p&gt;Select the DimEmployee query and rename it to Salesperson. Query names become table names in the data model. &lt;br&gt;
&lt;strong&gt;Note:&lt;/strong&gt; Always use clear and meaningful names.&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%2Fzoryyvijses91iqhssha.jpg" 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%2Fzoryyvijses91iqhssha.jpg" alt="Image 2" width="800" height="388"&gt;&lt;/a&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%2Fmp3sqzg16z3t7eutjxsn.jpg" 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%2Fmp3sqzg16z3t7eutjxsn.jpg" alt="Image 3" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use Go to Column to locate the SalesPersonFlag column and filter it to TRUE so that only salespeople are included.&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%2F6z44xie4g0f5dpa0jyty.jpg" 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%2F6z44xie4g0f5dpa0jyty.jpg" alt="Image 4" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remove all unnecessary columns and keep only:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EmployeeKey&lt;/li&gt;
&lt;li&gt;EmployeeNationalIDAlternateKey&lt;/li&gt;
&lt;li&gt;FirstName&lt;/li&gt;
&lt;li&gt;LastName&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;EmailAddress&lt;/li&gt;
&lt;/ul&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%2F4y7h8flzhsqvm5amlnso.jpg" 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%2F4y7h8flzhsqvm5amlnso.jpg" alt="Image 5" width="800" height="476"&gt;&lt;/a&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%2F37iri04xgtj4j0sqsbnn.jpg" 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%2F37iri04xgtj4j0sqsbnn.jpg" alt="Image 6" width="350" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Merge the FirstName and LastName columns using a space as the separator and name the new column Salesperson.&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%2Fx6ykd34jkcjo8ysf0msp.jpg" 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%2Fx6ykd34jkcjo8ysf0msp.jpg" alt="Image 7" width="800" height="425"&gt;&lt;/a&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%2Fukec47yx2trvedzpi9mm.jpg" 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%2Fukec47yx2trvedzpi9mm.jpg" alt="Image 8" width="242" height="393"&gt;&lt;/a&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%2Fp2ftz0upgg3axrtppcw8.jpg" 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%2Fp2ftz0upgg3axrtppcw8.jpg" alt="Image 9" width="707" height="284"&gt;&lt;/a&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%2Ftmduqiw04i0nxthkqmw7.jpg" 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%2Ftmduqiw04i0nxthkqmw7.jpg" alt="Image 10" width="702" height="284"&gt;&lt;/a&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%2Fp3k25hpge8ycpuw59v70.jpg" 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%2Fp3k25hpge8ycpuw59v70.jpg" alt="Image 11" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rename EmployeeNationalIDAlternateKey to EmployeeID and EmailAddress to UPN.&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%2Fmb3myq52cbnttam122ox.jpg" 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%2Fmb3myq52cbnttam122ox.jpg" alt="Image 12" width="800" height="428"&gt;&lt;/a&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%2Fkyqyw3qqp5czd3xtyob0.jpg" 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%2Fkyqyw3qqp5czd3xtyob0.jpg" alt="Image 13" width="800" height="424"&gt;&lt;/a&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%2Fj4wkkr8fsj952vl5cuji.jpg" 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%2Fj4wkkr8fsj952vl5cuji.jpg" alt="Image 14" width="800" height="423"&gt;&lt;/a&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%2F90hnpdbbh9ydtvi2cle1.jpg" 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%2F90hnpdbbh9ydtvi2cle1.jpg" alt="Image 15" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring the SalespersonRegion query
&lt;/h3&gt;

&lt;p&gt;Select the DimEmployeeSalesTerritory query and rename it to SalespersonRegion.&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%2Fa3aeedic6s7hadah1z66.jpg" 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%2Fa3aeedic6s7hadah1z66.jpg" alt="Image 16" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remove the DimEmployee and DimSalesTerritory columns.&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%2Fgjrd6v8j6kcgz4ao1niq.jpg" 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%2Fgjrd6v8j6kcgz4ao1niq.jpg" alt="Image 17" width="800" height="434"&gt;&lt;/a&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%2Fhnj6ivlkeefg8v773e7s.jpg" 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%2Fhnj6ivlkeefg8v773e7s.jpg" alt="Image 18" width="245" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring the Product Query
&lt;/h3&gt;

&lt;p&gt;Select the DimProduct query and rename it to Product.&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%2Fb3pt4ogos91hgid2kffi.jpg" 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%2Fb3pt4ogos91hgid2kffi.jpg" alt="Image 19" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Filter the FinishedGoodsFlag column to TRUE so that only finished goods are included.&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%2Fcwtlytrc4rvwhh9po814.jpg" 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%2Fcwtlytrc4rvwhh9po814.jpg" alt="Image 20" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remove all columns except:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ProductKey&lt;/li&gt;
&lt;li&gt;EnglishProductName&lt;/li&gt;
&lt;li&gt;StandardCost&lt;/li&gt;
&lt;li&gt;Color&lt;/li&gt;
&lt;li&gt;DimProductSubcategory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Expand the DimProductSubcategory column and include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EnglishProductSubcategoryName&lt;/li&gt;
&lt;li&gt;DimProductCategory&lt;/li&gt;
&lt;/ul&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%2Fm7vod8jibp6vs1xgp3ya.jpg" 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%2Fm7vod8jibp6vs1xgp3ya.jpg" alt="Image 21" width="800" height="422"&gt;&lt;/a&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%2Flsxu1fn0a5cmv9ve7ctv.jpg" 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%2Flsxu1fn0a5cmv9ve7ctv.jpg" alt="Image 22" width="346" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: Ensure the option to use original column names as prefixes is unchecked.&lt;/p&gt;

&lt;p&gt;Having followed up to this stage. You should now be able to configure the Reseller, Region, Sales, and Targets queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In this context, a query is the same as a table in the data model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now, let's move to other aspects of data cleaning and transformation.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Removing Duplicates in Power Query
&lt;/h3&gt;

&lt;p&gt;To remove duplicate records, select the column or columns that should be unique, right-click, and choose Remove Duplicates. Power Query keeps the first occurrence and removes the rest.&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%2Ff1ido8p9e20e2z46xc3t.jpg" 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%2Ff1ido8p9e20e2z46xc3t.jpg" alt="Image 23" width="799" height="418"&gt;&lt;/a&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%2Fv9ttfria8rlefplt74ba.jpg" 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%2Fv9ttfria8rlefplt74ba.jpg" alt="Image 24" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Removing or Replacing Null Values
&lt;/h3&gt;

&lt;p&gt;To remove null values, open the column filter and uncheck null.&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%2Ftizifadxqs87xkpukuiz.jpg" 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%2Ftizifadxqs87xkpukuiz.jpg" alt="Image 25" width="799" height="474"&gt;&lt;/a&gt;&lt;br&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%2Fsmdoe172bzkopqaasbji.jpg" 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%2Fsmdoe172bzkopqaasbji.jpg" alt="Image 26" width="363" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also replace null values. To do this, right-click the column, select Replace Values, and enter an appropriate value to replace the nulls.&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%2Fijrz85q79sl031fzwyqv.jpg" 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%2Fijrz85q79sl031fzwyqv.jpg" alt="Image 27" width="249" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A few notes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Power Query distinguishes null specifically, so sometimes instead of “Replace Values,” you might also use "Replace Errors or Transform" to Replace Values but for nulls, “Replace Values” works fine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emphasizing “enter an appropriate value to replace the nulls” makes it clearer that nulls are being handled.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Profiling Data to Understand Column Quality
&lt;/h3&gt;

&lt;p&gt;Enable Column Quality, Column Distribution, and Column Profile from the View tab.&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%2Fvunyokae4g56k3wu8vjs.jpg" 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%2Fvunyokae4g56k3wu8vjs.jpg" alt="Image 28" width="800" height="423"&gt;&lt;/a&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%2Fi8na66m1l99mt6fgbpzn.jpg" 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%2Fi8na66m1l99mt6fgbpzn.jpg" alt="Image 29" width="799" height="425"&gt;&lt;/a&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%2Fm0g1ybk1h21oqugynmzn.jpg" 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%2Fm0g1ybk1h21oqugynmzn.jpg" alt="Image 30" width="799" height="419"&gt;&lt;/a&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%2Fpxtqrna1l4nuukraeaqy.jpg" 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%2Fpxtqrna1l4nuukraeaqy.jpg" alt="Image 31" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These tools help identify empty values, duplicates, and value distribution issues before analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reshaping Data with Pivot and Unpivot
&lt;/h3&gt;

&lt;p&gt;Unpivot converts columns into rows and is useful for monthly or repeated values. Pivot converts rows into columns when categories should appear as separate fields.&lt;/p&gt;

&lt;p&gt;This section introduces unpivoting, a crucial transformation.&lt;/p&gt;

&lt;p&gt;Key Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rename ResellerSalesTargets to Targets&lt;/li&gt;
&lt;/ul&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%2Fyir6yn1apigln4otkmk5.jpg" 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%2Fyir6yn1apigln4otkmk5.jpg" alt="Image 32" width="799" height="418"&gt;&lt;/a&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%2Fe6gy59fzyzc45bpgh4lc.jpg" 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%2Fe6gy59fzyzc45bpgh4lc.jpg" alt="Image 33" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unpivot monthly columns (M01–M12).&lt;/li&gt;
&lt;/ul&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%2Fklwpwqzonyqtkc15qklh.jpg" 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%2Fklwpwqzonyqtkc15qklh.jpg" alt="Image 33" width="243" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apply correct data types&lt;/li&gt;
&lt;/ul&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%2Fefku8i7oi3h6acupmtsm.jpg" 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%2Fefku8i7oi3h6acupmtsm.jpg" alt="Image 34" width="195" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Merging Queries and Disabling Load
&lt;/h3&gt;

&lt;p&gt;Use Merge Queries to combine related tables. After merging ColorFormats into Product, disable loading for ColorFormats to keep the data model clean.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select ColorFormats query/table&lt;/li&gt;
&lt;/ul&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%2Fhwsu1u2g1gsnu9hj3mld.jpg" 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%2Fhwsu1u2g1gsnu9hj3mld.jpg" alt="Image 35" width="192" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right-click the top-left corner of your data table (above the first row header, to the left of the first column header). Select "Use First Row as Headers" from the context menu. &lt;/li&gt;
&lt;/ul&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%2F8t6yzwxdilm4ch462p77.jpg" 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%2F8t6yzwxdilm4ch462p77.jpg" alt="Image 37" width="800" height="421"&gt;&lt;/a&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%2Fonfc4ji8cqrt4cc63020.jpg" 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%2Fonfc4ji8cqrt4cc63020.jpg" alt="Image 38" width="239" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This action will automatically rename the existing column headers to the values present in the first row and promote that row's data to be the official headers for your table. &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%2Fgitq1vt4k8fnkhxyrr1n.jpg" 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%2Fgitq1vt4k8fnkhxyrr1n.jpg" alt="Image 39" width="778" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Merge Product with ColorFormats&lt;/li&gt;
&lt;/ul&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%2Flcry96cmjaij511uzqww.jpg" 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%2Flcry96cmjaij511uzqww.jpg" alt="Image 40" width="799" height="420"&gt;&lt;/a&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%2F3obdz4ozcsynkbd3xd55.jpg" 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%2F3obdz4ozcsynkbd3xd55.jpg" alt="Image 41" width="700" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Left Outer Join&lt;/li&gt;
&lt;/ul&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%2F8rweczenmmqky8qz815v.jpg" 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%2F8rweczenmmqky8qz815v.jpg" alt="Image 42" width="701" height="578"&gt;&lt;/a&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%2Fkufinjuxmawefzmwxwlq.jpg" 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%2Fkufinjuxmawefzmwxwlq.jpg" alt="Image 43" width="700" height="570"&gt;&lt;/a&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%2Fik32t7q8hx248etq5h4n.jpg" 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%2Fik32t7q8hx248etq5h4n.jpg" alt="Image 44" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since ColorFormats is only used for merging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Disable &lt;strong&gt;Enable Load&lt;/strong&gt; for the ColorFormats query.&lt;/li&gt;
&lt;/ul&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%2Fw5qrwqr9qlp9wkhe5mlw.jpg" 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%2Fw5qrwqr9qlp9wkhe5mlw.jpg" alt="Image 45" width="799" height="423"&gt;&lt;/a&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%2F99c4vf6kcxbgjzhud1yw.jpg" 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%2F99c4vf6kcxbgjzhud1yw.jpg" alt="Image 46" width="419" height="365"&gt;&lt;/a&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%2Fzm2b9y2qf5vaa85l1j7e.jpg" 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%2Fzm2b9y2qf5vaa85l1j7e.jpg" alt="Image 47" width="413" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This keeps your model clean and optimized.&lt;/p&gt;

&lt;p&gt;You can also follow a similar approach to append queries.&lt;/p&gt;

&lt;p&gt;Here is a quick explanation of the difference between the two:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Merge Query:&lt;/strong&gt; Combines tables horizontally using a common column (adds new columns).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Similar to SQL JOIN&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Append Query:&lt;/strong&gt; Combines tables vertically by stacking rows (adds new rows).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Similar to SQL UNION&lt;/p&gt;

&lt;p&gt;Simple Rule to Remember&lt;br&gt;
Merge = JOIN → add columns&lt;br&gt;
Append = UNION → add rows&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the Advanced Editor
&lt;/h3&gt;

&lt;p&gt;The Advanced Editor allows you to view and edit the M code behind each transformation. While optional for beginners, it provides deeper insight and control over Power Query logic.&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%2Ferorh65omjvgtxt9pj2y.jpg" 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%2Ferorh65omjvgtxt9pj2y.jpg" alt="Image 48" width="799" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Loading the Data and Saving the Report
&lt;/h3&gt;

&lt;p&gt;Select Close and Apply to load all queries. Confirm that seven tables are loaded.&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%2Flpntqdq004rippfvdnnb.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%2Flpntqdq004rippfvdnnb.png" alt="Image 49" width="482" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Save the report using File &amp;gt; Save As, apply pending changes if prompted, and close Power BI Desktop.&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%2F32vdudhfmf516e596rf2.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%2F32vdudhfmf516e596rf2.png" alt="Image 50" width="483" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;p&gt;In this guide, you learned how to clean, transform, and prepare data in Power BI using Power Query, from resolving data quality issues and reshaping tables to merging queries and building a reliable data model ready for analysis. By now, you’re all set to tackle your own datasets and start uncovering meaningful insights!&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thought
&lt;/h3&gt;

&lt;p&gt;Cleaning and transforming data is the foundation of effective Power BI analysis. Power Query provides powerful tools to remove duplicates, handle missing values, profile data, reshape tables, and prepare a reliable data model for reporting. Mastering these skills will make your dashboards more accurate, efficient, and professional.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>data</category>
      <category>tutorial</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Getting Data from Multiple Sources in Power BI: A Complete Beginner-Friendly Guide</title>
      <dc:creator>Ibrahim Abdulrasaq</dc:creator>
      <pubDate>Wed, 31 Dec 2025 09:23:51 +0000</pubDate>
      <link>https://dev.to/ibrahimabdulrasaq/getting-data-from-multiple-sources-in-power-bi-a-complete-beginner-friendly-guide-1a6m</link>
      <guid>https://dev.to/ibrahimabdulrasaq/getting-data-from-multiple-sources-in-power-bi-a-complete-beginner-friendly-guide-1a6m</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The foundation of every successful Power BI report is reliable data ingestion. No matter how visually appealing your dashboards are, if the underlying data is incomplete, inconsistent, or poorly understood, the insights will be misleading.&lt;/p&gt;

&lt;p&gt;In real-world business environments, data rarely comes from a single source. As a Data Analyst, you may need to work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Excel files&lt;/li&gt;
&lt;li&gt;CSV text files&lt;/li&gt;
&lt;li&gt;SQL Server databases&lt;/li&gt;
&lt;li&gt;JSON APIs&lt;/li&gt;
&lt;li&gt;PDF reports&lt;/li&gt;
&lt;li&gt;SharePoint folders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All within the same project.&lt;/p&gt;

&lt;p&gt;Power BI is designed to handle this complexity through its powerful Get Data and Power Query capabilities.&lt;/p&gt;

&lt;p&gt;In this blog, you’ll learn how to connect to multiple data sources in Power BI, preview the data, and assess its quality before building your data model. By the end, you’ll be confident working with diverse data sources and preparing them for meaningful analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;High-Level Overview of Power BI Data Architecture&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this workflow, Power BI operates as the central hub where data from multiple sources is brought together and prepared for analysis.&lt;/p&gt;

&lt;p&gt;Our architecture consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Power BI Desktop → reporting, modeling, and development environment&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multiple data sources, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Excel and Text/CSV files&lt;/li&gt;
&lt;li&gt;SQL Server databases&lt;/li&gt;
&lt;li&gt;JSON and PDF files&lt;/li&gt;
&lt;li&gt;SharePoint folders&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Power Query Editor → for cleaning, transforming, and profiling data&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All data flows into Power BI through Power Query, where it is reviewed and prepared before loading into the data model.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What You’ll Accomplish in This Guide&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this step-by-step walkthrough, you will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open and configure Power BI Desktop&lt;/li&gt;
&lt;li&gt;Connect to data from Excel, CSV, Database, SQL Server, JSON, PDF, and SharePoint&lt;/li&gt;
&lt;li&gt;Preview and understand source data using Power Query&lt;/li&gt;
&lt;li&gt;Use Column Quality, Column Distribution, and Column Profile&lt;/li&gt;
&lt;li&gt;Identify common data quality issues early&lt;/li&gt;
&lt;li&gt;Prepare datasets for modeling and reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Started with Power BI Desktop&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To practice along with this guide, first download the practice files from the link below:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/MicrosoftLearning/PL-300-Microsoft-Power-BI-Data-Analyst/raw/Main/Allfiles/Labs/01-get-data-in-power-bi/01-get-data.zip" rel="noopener noreferrer"&gt;https://github.com/MicrosoftLearning/PL-300-Microsoft-Power-BI-Data-Analyst/raw/Main/Allfiles/Labs/01-get-data-in-power-bi/01-get-data.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After downloading:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extract the folder.&lt;/li&gt;
&lt;li&gt;Open 01-Starter-Sales Analysis.pbix in Power BI Desktop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This starter file disables automatic relationship detection so you can focus specifically on data ingestion and profiling.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Data from SQL Server&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Enterprise-level data is often stored in relational databases. Power BI connects easily to SQL Server.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Steps to connect:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to Home → Get Data → SQL Server&lt;/li&gt;
&lt;/ul&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%2Fh1xzk7f7zdllqsapacq0.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%2Fh1xzk7f7zdllqsapacq0.png" alt="Image 1" width="800" height="422"&gt;&lt;/a&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%2Fxvscqzo0d28e9nwwif55.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%2Fxvscqzo0d28e9nwwif55.png" alt="Image 2" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server: localhost&lt;/li&gt;
&lt;li&gt;Database: leave blank&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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%2F266gs0i6gz0piydw4h72.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%2F266gs0i6gz0piydw4h72.png" alt="Image 3" width="702" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Windows Authentication (select Windows &amp;gt; Use my current credentials, and then Connect).&lt;/li&gt;
&lt;/ul&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%2Fpf04oa5dil8tqosbb2te.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%2Fpf04oa5dil8tqosbb2te.png" alt="Image 4" width="702" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select OK if you receive a warning that an encrypted connection cannot be established.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Navigator pane. Expand the AdventureWorksDW2020 database&lt;/li&gt;
&lt;/ul&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%2Fb4b5wzdf3x4glvyhobi3.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%2Fb4b5wzdf3x4glvyhobi3.png" alt="Image 5" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Select the following tables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DimEmployee&lt;/li&gt;
&lt;li&gt;DimEmployeeSalesTerritory&lt;/li&gt;
&lt;li&gt;DimProduct&lt;/li&gt;
&lt;li&gt;DimReseller&lt;/li&gt;
&lt;li&gt;DimSalesTerritory&lt;/li&gt;
&lt;li&gt;FactResellerSales&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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%2Fxrhkxwatpwk5682ig8r0.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%2Fxrhkxwatpwk5682ig8r0.png" alt="Image 6" width="800" height="439"&gt;&lt;/a&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%2Fkd1m5or594tl3nocnvio.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%2Fkd1m5or594tl3nocnvio.png" alt="Image 7" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click Transform Data&lt;/li&gt;
&lt;/ul&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%2F09212rkau20l716og7hi.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%2F09212rkau20l716og7hi.png" alt="Image 8" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Power Query Editor opens with six queries loaded from SQL Server.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Previewing Data in Power Query Editor&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Power Query allows you to &lt;strong&gt;understand the data before loading it&lt;/strong&gt; into the model.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Queries Pane&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Each table appears as a separate query on the left. Selecting a query displays a preview of its contents.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Dimension Tables (Dim)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DimEmployee:one row per employee&lt;/li&gt;
&lt;/ul&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%2Fe2kxuxkxhc5rw0pial8l.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%2Fe2kxuxkxhc5rw0pial8l.png" alt="Image 9" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DimProduct:one row per product&lt;/li&gt;
&lt;/ul&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%2F4mkj02wi01aqggfhc7ei.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%2F4mkj02wi01aqggfhc7ei.png" alt="Image 10" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DimReseller:one row per reseller&lt;/li&gt;
&lt;/ul&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%2Fmep30oxekm725hfnyezu.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%2Fmep30oxekm725hfnyezu.png" alt="Image 11" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DimSalesTerritory:regions, countries, and groups&lt;/li&gt;
&lt;/ul&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%2Fv92al46j93r4p7bchjhn.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%2Fv92al46j93r4p7bchjhn.png" alt="Image 12" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Fact Tables (Fact)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;FactResellerSales: one row per sales order line&lt;/li&gt;
&lt;/ul&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%2Ft7ljggu5lmr7v011ebtb.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%2Ft7ljggu5lmr7v011ebtb.png" alt="Image 13" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Understanding the difference between fact and dimension tables is essential for proper star-schema data modeling in Power BI.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Using Power Query Data Profiling Features&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Power Query includes built-in tools to help assess data quality before modeling.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Column Quality&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Enable:&lt;/p&gt;

&lt;p&gt;View → Column Quality&lt;/p&gt;

&lt;p&gt;This reveals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Percentage of valid values&lt;/li&gt;
&lt;li&gt;Empty (null) values&lt;/li&gt;
&lt;li&gt;Errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example insight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Position column in DimEmployee contains 94% empty values, signaling a potential data quality issue.&lt;/li&gt;
&lt;/ul&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%2Fcqq3uduc8v0md4w4nel5.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%2Fcqq3uduc8v0md4w4nel5.png" alt="Image 14" width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Column Distribution&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Enable:&lt;/p&gt;

&lt;p&gt;View → Column Distribution&lt;/p&gt;

&lt;p&gt;You can now see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Number of distinct values&lt;/li&gt;
&lt;li&gt;Number of unique values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EmployeeKey shows the same distinct and unique count
→ meaning every row is unique (useful when creating keys and relationships).&lt;/li&gt;
&lt;/ul&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%2F21sok2bcj2uaf8nfh4sc.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%2F21sok2bcj2uaf8nfh4sc.png" alt="Image 15" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Column Profile&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Enable:&lt;/p&gt;

&lt;p&gt;View → Column Profile&lt;/p&gt;

&lt;p&gt;Then select a column, such as BusinessType in DimReseller.&lt;/p&gt;

&lt;p&gt;You may notice inconsistent labels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Warehouse”&lt;/li&gt;
&lt;li&gt;“Ware House” (misspelled)&lt;/li&gt;
&lt;/ul&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%2Ft96taln6rfl7xsa9aogd.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%2Ft96taln6rfl7xsa9aogd.png" alt="Image 16" width="799" height="501"&gt;&lt;/a&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%2F1lq5drw07qb7v11yi6ce.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%2F1lq5drw07qb7v11yi6ce.png" alt="Image 17" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This inconsistency must be corrected before analysis to prevent inaccurate grouping or reporting errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Data from Text/CSV Files&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Flat files are extremely common in reporting workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Importing a CSV file&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Step 1: Home → Get data → Text/CSV&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%2Fwfln7nbvnux8xkyl90h2.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%2Fwfln7nbvnux8xkyl90h2.png" alt="Image 18" width="800" height="422"&gt;&lt;/a&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%2Fh1tmvaf4ljducspegr07.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%2Fh1tmvaf4ljducspegr07.png" alt="Image 19" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Select ResellerSalesTargets.csv&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%2F0yhwl0nn6kuqdll4bvza.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%2F0yhwl0nn6kuqdll4bvza.png" alt="Image 20" width="669" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This file contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One row per salesperson per year&lt;/li&gt;
&lt;li&gt;Monthly sales targets&lt;/li&gt;
&lt;li&gt;Hyphens instead of null values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repeat the process to import "ColorFormats.csv", which contains color formatting values.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Data from Excel Files&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Excel remains one of the most widely used business data tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;To import Excel data:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Step 1: Home → Get Data → 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%2F5jcs4smxlkdnpx9rmw0p.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%2F5jcs4smxlkdnpx9rmw0p.png" alt="Image 21" width="800" height="422"&gt;&lt;/a&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%2Fuqd32c8xy0me79b39jup.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%2Fuqd32c8xy0me79b39jup.png" alt="Image 22" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Select the Excel file&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%2F1lag3tqt4yx1x7gbvghm.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%2F1lag3tqt4yx1x7gbvghm.png" alt="Image 23" width="669" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Then click Transform Data&lt;br&gt;
Excel files are ideal for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Budgeting and finance sheets&lt;/li&gt;
&lt;li&gt;Manual business inputs&lt;/li&gt;
&lt;li&gt;Operational logs and trackers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Data from JSON Files&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;JSON files are commonly generated by APIs and web-based applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Steps:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Step 1: Home → Get Data → JSON&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%2F4lriff1bglikbgwk3wvq.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%2F4lriff1bglikbgwk3wvq.png" alt="Image 24" width="800" height="422"&gt;&lt;/a&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%2Fi8v9wmt8kjasf99mi39n.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%2Fi8v9wmt8kjasf99mi39n.png" alt="Image 25" width="682" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Select the JSON file or API export&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%2Fd4g33n6eua0zh0le03it.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%2Fd4g33n6eua0zh0le03it.png" alt="Image 26" width="669" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Power Query expands nested structures&lt;br&gt;
Step 4: Flatten and transform fields as needed&lt;/p&gt;

&lt;p&gt;JSON often requires extra transformation because of its hierarchical format.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Data from PDF Files&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Power BI can extract structured tables from PDF documents.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Steps:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Step 1: Home → Get Data → PDF&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%2Fegtn3rdmd4j7oqfk4jgs.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%2Fegtn3rdmd4j7oqfk4jgs.png" alt="Image 27" width="800" height="422"&gt;&lt;/a&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%2Fvl2xl9db8unekhr4y2o2.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%2Fvl2xl9db8unekhr4y2o2.png" alt="Image 28" width="682" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Select the PDF file&lt;br&gt;
Step 3: Choose detected tables&lt;br&gt;
Step 4: Transform in Power Query&lt;/p&gt;

&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Financial statements&lt;/li&gt;
&lt;li&gt;Bank reports&lt;/li&gt;
&lt;li&gt;Compliance or regulatory documents&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Data from SharePoint Folders&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SharePoint is widely used for collaborative file storage across organizations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Steps:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Step 1: Home → Get Data → SharePoint Folder&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%2Fhl001wxjh1p9vh39293v.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%2Fhl001wxjh1p9vh39293v.png" alt="Image 29" width="800" height="422"&gt;&lt;/a&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%2Fidu7bhz3ka38rgeeks0r.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%2Fidu7bhz3ka38rgeeks0r.png" alt="Image 30" width="682" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Enter the SharePoint site URL and authenticate&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%2Fxrnqoyjfvvz10zgnlzpq.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%2Fxrnqoyjfvvz10zgnlzpq.png" alt="Image 31" width="702" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Filter and combine files as needed&lt;/p&gt;

&lt;p&gt;This approach is ideal when working with "multiple files stored in a shared location".&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Data Profiling Matters&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before building dashboards, you must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify missing values&lt;/li&gt;
&lt;li&gt;Detect inconsistent labels&lt;/li&gt;
&lt;li&gt;Validate key columns for relationships&lt;/li&gt;
&lt;li&gt;Understand value distributions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Skipping this step can lead to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Broken relationships&lt;/li&gt;
&lt;li&gt;Incorrect KPIs&lt;/li&gt;
&lt;li&gt;Misleading insights&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power Query ensures your data is 'accurate, reliable, and business-ready before visualization.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Getting data from multiple sources is a core skill for every Power BI data analyst. Power BI makes this process seamless by supporting a wide range of data connectors and providing powerful tools to preview and profile data before modeling.&lt;/p&gt;

&lt;p&gt;By combining SQL Server, Excel, CSV, JSON, PDF, and SharePoint data in Power BI, you can build comprehensive, enterprise-ready reports with confidence.&lt;/p&gt;

&lt;p&gt;Mastering this step ensures your dashboards are not only visually appealing but also accurate, trustworthy, and truly impactful.&lt;/p&gt;

</description>
      <category>data</category>
      <category>analyst</category>
      <category>powerquery</category>
      <category>database</category>
    </item>
    <item>
      <title>SQL for Data Analytics: A Must Read for Beginner Data Analysts Before Diving Into SQL</title>
      <dc:creator>Ibrahim Abdulrasaq</dc:creator>
      <pubDate>Tue, 30 Dec 2025 11:09:37 +0000</pubDate>
      <link>https://dev.to/ibrahimabdulrasaq/sql-for-data-analytics-a-must-read-for-beginner-data-analysts-before-diving-into-sql-5g2h</link>
      <guid>https://dev.to/ibrahimabdulrasaq/sql-for-data-analytics-a-must-read-for-beginner-data-analysts-before-diving-into-sql-5g2h</guid>
      <description>&lt;p&gt;SQL (Structured Query Language) is one of the most important tools for every data analyst. It allows you to retrieve, filter, combine, and analyze data stored in databases. But before jumping straight into writing SQL queries, it is essential to first build a strong foundation in core data concepts, analytical thinking, and basic statistics. These skills give meaning to the results you obtain with SQL and help you solve real world problems more effectively.&lt;/p&gt;

&lt;p&gt;Before diving into SQL, every beginner data analyst should understand key data concepts, basic statistics, and develop a strong analytical mindset. These foundations provide context and enable effective problem solving once you start working with data using SQL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fundamental Concepts to Understand Before Learning SQL
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;(1) Relational Databases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL is used to communicate with relational databases, systems that store data in an organized, structured format using tables. In most organizations, data is spread across multiple related tables rather than one large file, and SQL helps analysts retrieve and connect this information efficiently.&lt;/p&gt;

&lt;p&gt;Understanding how relational databases work is essential because SQL is not just about writing queries, it is about understanding the data structure you are working with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(2) Database Structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before writing SQL queries, a beginner analyst should understand the key components of a database:&lt;/p&gt;

&lt;p&gt;-Tables store data in rows and columns, similar to an Excel sheet&lt;/p&gt;

&lt;p&gt;-Rows or Records represent a single entry such as one customer or one transaction&lt;/p&gt;

&lt;p&gt;-Columns or Fields represent attributes such as name, price, date, or product&lt;/p&gt;

&lt;p&gt;-Primary Keys are unique identifiers for each row such as Customer ID or Transaction ID&lt;/p&gt;

&lt;p&gt;-Foreign Keys link one table to another, creating relationships between datasets&lt;/p&gt;

&lt;p&gt;These concepts make it easier to understand how JOINs work in SQL and how different tables connect in real world databases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(3) Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every column in a database has a specific data type, which determines the kind of values it can store. Common examples include:&lt;/p&gt;

&lt;p&gt;-VARCHAR for text values&lt;br&gt;
-INT for whole numbers&lt;br&gt;
-FLOAT for decimal numbers&lt;br&gt;
-DATE for date values&lt;/p&gt;

&lt;p&gt;Data types affect calculations, storage, filtering, and data integrity. Using the wrong data type can lead to errors or inaccurate results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(4) NULL Values&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NULL does not mean zero or empty. It represents missing or unknown data. In SQL, NULL behaves differently and must be handled carefully.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;You cannot filter NULL values using the equals operator.&lt;br&gt;
Instead, you must use IS NULL or IS NOT NULL&lt;/p&gt;

&lt;p&gt;A good analyst understands what NULL means and how it affects averages, aggregations, and analysis outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Essential Skills Beyond SQL
&lt;/h3&gt;

&lt;p&gt;Learning SQL alone is not enough to become a strong data analyst. The following complementary skills make your SQL knowledge more meaningful and practical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(1) Analytical Mindset and Problem Solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data analysis is not just about running queries. It is about asking the right questions and interpreting results meaningfully.&lt;/p&gt;

&lt;p&gt;A good analyst:&lt;/p&gt;

&lt;p&gt;-Looks for trends, patterns, and anomalies&lt;/p&gt;

&lt;p&gt;-Understands what the data is really saying&lt;/p&gt;

&lt;p&gt;-Translates numbers into insights and decisions&lt;/p&gt;

&lt;p&gt;SQL retrieves data. Your analytical mindset gives it meaning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(2) Basic Statistics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before analyzing data using SQL, beginners should understand key statistical concepts such as:&lt;/p&gt;

&lt;p&gt;-Mean, median, and mode&lt;br&gt;
-Variance and standard deviation&lt;br&gt;
-Correlation and distribution patterns&lt;/p&gt;

&lt;p&gt;Statistics help you:&lt;/p&gt;

&lt;p&gt;-Interpret query results&lt;br&gt;
-Avoid misleading conclusions&lt;br&gt;
-Support insights with evidence&lt;/p&gt;

&lt;p&gt;Without statistics, SQL results are just numbers, not insights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(3) Excel Proficiency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Excel is one of the best starting tools for beginner analysts. Many data manipulation concepts in Excel translate naturally to SQL.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;-Sorting and filtering work like SQL ORDER BY and WHERE&lt;/p&gt;

&lt;p&gt;-Pivot tables are similar to SQL aggregations&lt;/p&gt;

&lt;p&gt;-VLOOKUP works in a similar way to SQL JOIN operations&lt;/p&gt;

&lt;p&gt;A strong Excel foundation makes learning SQL faster and more intuitive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(4) Data Cleaning Concepts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the real world, data is rarely clean. Before analysis, an analyst must know how to:&lt;/p&gt;

&lt;p&gt;-Identify missing values&lt;br&gt;
-Remove duplicates&lt;br&gt;
-Fix inconsistent formats&lt;br&gt;
-Standardize data&lt;/p&gt;

&lt;p&gt;SQL is often used for data cleaning tasks, so understanding these concepts helps you write more meaningful and organized queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(5)Business Understanding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beyond technical skills, a great data analyst understands the business context behind the data.&lt;/p&gt;

&lt;p&gt;This helps you:&lt;/p&gt;

&lt;p&gt;-Ask relevant questions&lt;br&gt;
-Focus on metrics that matter&lt;br&gt;
-Provide insights that support decision making&lt;/p&gt;

&lt;p&gt;Without business understanding, analysis becomes just reporting, not problem solving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding SQL Through a Simple Analogy: Imagine SQL as a Detective Solving a Case 🕵️‍♂️🔎
&lt;/h3&gt;

&lt;p&gt;Imagine SQL as a brilliant detective, not chasing criminals, but uncovering insights hidden inside data.&lt;/p&gt;

&lt;p&gt;Every dataset is a crime scene.&lt;br&gt;
Every table is a file of evidence.&lt;br&gt;
Every query is a step toward solving the mystery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is a simple illustration of how SQL works like a detective, using basic SQL commands:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SELECT:&lt;/strong&gt; Gathering Clues&lt;br&gt;
A detective focuses only on useful evidence. SELECT helps us pick the exact columns we need.&lt;/p&gt;

&lt;p&gt;↪️ Command illustration:&lt;/p&gt;

&lt;p&gt;SELECT name, salary&lt;br&gt;
FROM employees;&lt;/p&gt;

&lt;p&gt;We extract only the clues that matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WHERE:&lt;/strong&gt; Filtering Suspects&lt;br&gt;
A detective narrows down suspects based on facts. WHERE does the same.&lt;/p&gt;

&lt;p&gt;↪️ Command illustration:&lt;/p&gt;

&lt;p&gt;SELECT *&lt;br&gt;
FROM employees&lt;br&gt;
WHERE department = 'Finance';&lt;/p&gt;

&lt;p&gt;From many records, we zoom in on the relevant ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ORDER BY:&lt;/strong&gt; Arranging the Evidence&lt;/p&gt;

&lt;p&gt;↪️ Command illustration:&lt;/p&gt;

&lt;p&gt;SELECT name, score&lt;br&gt;
FROM students&lt;br&gt;
ORDER BY score DESC;&lt;/p&gt;

&lt;p&gt;The most important evidence appears first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GROUP BY:&lt;/strong&gt; Finding Patterns&lt;/p&gt;

&lt;p&gt;↪️ Command illustration:&lt;/p&gt;

&lt;p&gt;SELECT department, COUNT(*)&lt;br&gt;
FROM employees&lt;br&gt;
GROUP BY department;&lt;/p&gt;

&lt;p&gt;Hidden trends and relationships become clearer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JOIN:&lt;/strong&gt; Connecting the Dots&lt;/p&gt;

&lt;p&gt;SELECT orders.order_id, customers.name&lt;br&gt;
FROM orders&lt;br&gt;
JOIN customers&lt;br&gt;
ON orders.customer_id = customers.customer_id;&lt;/p&gt;

&lt;p&gt;Separate clues come together to form one complete story.&lt;/p&gt;

&lt;p&gt;SQL is not just a query language. It is a mindset. It teaches us to investigate, question, connect, and discover meaning from data. And just like a great detective, the more cases you solve, the sharper your thinking becomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL is a powerful and indispensable tool for every data analyst. However, its real strength comes from the foundation you build before using it. Understanding relational databases, statistics, analytical thinking, and core data concepts ensures that you do not just write queries. You interpret results correctly and provide meaningful insights.&lt;/p&gt;

&lt;p&gt;Once these fundamentals are clear, learning SQL becomes more intuitive, practical, and valuable in your data analytics journey.&lt;/p&gt;

</description>
      <category>sql</category>
      <category>data</category>
      <category>analytics</category>
      <category>analyst</category>
    </item>
  </channel>
</rss>
