<?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: Timothy Atinuke</title>
    <description>The latest articles on DEV Community by Timothy Atinuke (@atinuke77).</description>
    <link>https://dev.to/atinuke77</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3861694%2Fcd12b09c-e781-4286-a6fc-1ad37a92af0a.png</url>
      <title>DEV Community: Timothy Atinuke</title>
      <link>https://dev.to/atinuke77</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atinuke77"/>
    <language>en</language>
    <item>
      <title>CONFIGURING SEMANTIC MODEL IN POWER BI</title>
      <dc:creator>Timothy Atinuke</dc:creator>
      <pubDate>Sun, 31 May 2026 03:01:03 +0000</pubDate>
      <link>https://dev.to/atinuke77/configuring-semantic-model-in-power-bi-1kca</link>
      <guid>https://dev.to/atinuke77/configuring-semantic-model-in-power-bi-1kca</guid>
      <description>&lt;h2&gt;
  
  
  INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;Configuring a Power BI semantic model involves refining data structures, creating relationships, and setting up calculations. Semantic model is the last stop in the data pipeline before reports and dashboards are built. It is the end product of the raw data that has been extracted, transformed, loaded, modeled, built relationship, and written calculation. The Semantic model consist of &lt;strong&gt;Data connections&lt;/strong&gt; to one or more data sources,&lt;strong&gt;Transformations&lt;/strong&gt; that clean and prepare the data for reporting, &lt;strong&gt;Defined calculations and metrics&lt;/strong&gt; based on business rules to ensure consistent reports and &lt;strong&gt;Defined relationships&lt;/strong&gt; between tables. &lt;/p&gt;

&lt;h2&gt;
  
  
  Key words to note in Semantic Modelling are;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Fact table and Dimension table:&lt;/strong&gt; &lt;br&gt;
&lt;strong&gt;The Fact table&lt;/strong&gt; records the quantitative and numerical data. It is where every single details are recorded. &lt;strong&gt;The Dimension table&lt;/strong&gt; act as the descriptive companion to the fact table, containing the attributes or characteristics that provide context to the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Primary and Foreign Key:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Primary Keys&lt;/strong&gt; are unique identifier assigned to a specific record with a database table ensuring that no two rows are identical or repeated. foreign Keys are columns or group of columns in one table that provides a link between data in two tables by referencing the primary key of another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Star Schema&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Star Schema&lt;/strong&gt; is a data modeling technique where a central fact table is surrounded by several dimension tables that provide descriptive content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Cardinality&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Cardinality&lt;/strong&gt; defines the kind of relationship between two tables. They are;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One to Many (1.*)&lt;/li&gt;
&lt;li&gt;Many to one (*.1)&lt;/li&gt;
&lt;li&gt;One to One (1.1)&lt;/li&gt;
&lt;li&gt;Many to Many (&lt;em&gt;.&lt;/em&gt;)
&lt;em&gt;The cardinality of a relationship is described by the "one" (1) or "many" (*) icons located at the ends of the relationship line.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Cross Filter Direction&lt;/strong&gt;&lt;br&gt;
The direction determine how filters propagate. Possible cross filter options are dependent on the relationship cardinality type.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One to Many - Single or Both sides&lt;/li&gt;
&lt;li&gt;One to One - Both sides&lt;/li&gt;
&lt;li&gt;Many to Many - Single to either table or both
&lt;em&gt;The cross filter direction of a relationship is described by the arrows located in the middle of the relationship line.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Active and Inactive Relationship&lt;/strong&gt;&lt;br&gt;
An Active relationship is the primary relationship that is used by Power BI to calculate and filter data automatically.&lt;br&gt;
An inactive relationship is a secondary relationship activated with the Power BI DAX function temporarily whenever there is a need to perform a specific calculation.&lt;br&gt;
&lt;em&gt;An active relationship is a solid line; an inactive relationship is a dotted line.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Disconnected Table&lt;/strong&gt;&lt;br&gt;
Disconnected Table is a table that doesn't need a relationship to another model table and are useful in what-if scenario or field parameters.&lt;/p&gt;

&lt;h2&gt;
  
  
  ARCHITECTURE OVERVIEW
&lt;/h2&gt;

&lt;p&gt;In this blog, you learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Create model relationships.&lt;/li&gt;
&lt;li&gt;  Configure table and column properties.&lt;/li&gt;
&lt;li&gt;  Create 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;/ul&gt;

&lt;p&gt;&lt;strong&gt;A. Create Model Relationships&lt;/strong&gt;&lt;br&gt;
    Data modeling is the process of organizing data into tables and creating relationships. The data model is a visual and structural blueprint that defines how data is stored, organized and related within a database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Power BI Desktop, to view all table fields, in the Data pane, right-click an empty area, and then select Expand All.
&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%2Fi4up6gp6a7yw1ozu4o7m.PNG" alt="Image 1" width="800" height="504"&gt;
&lt;/li&gt;
&lt;li&gt;To create a table visual, in the Data pane, from inside the Product table, check the Category field.
&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%2Fl5tqlafyr80lca7akkv3.PNG" alt="Image 2" width="188" height="420"&gt;
&lt;/li&gt;
&lt;li&gt;To add another column to the table, in the Data pane, check the Sales | Sales field.
&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%2Fjsczjucw4evejq71ur1o.PNG" alt="Image 3" width="183" height="384"&gt;
&lt;/li&gt;
&lt;li&gt;Notice that the table visual lists four product categories, and that the sales value is the same for each, and the same for the total. This is because there isn't a model relationship between these tables.
&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%2Fmw7kex26x9slth3z8ohb.PNG" alt="Image 4" width="291" height="191"&gt;
&lt;/li&gt;
&lt;li&gt;To switch to the model designer, at the left select the &lt;strong&gt;Model view&lt;/strong&gt; icon. 
&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%2Folvdmvkh33hbb92k7cmd.PNG" alt="Image 5" width="222" height="246"&gt;
&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Home&lt;/strong&gt; ribbon, select &lt;strong&gt;Manage Relationships.&lt;/strong&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%2Fmue79g6ambdv2gjav4st.PNG" alt="Image 6" width="800" height="481"&gt;
&lt;/li&gt;
&lt;li&gt;In the Manage Relationships window, notice that no relationships are yet defined.
&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%2Fcux2lhzlaa20q8eska4k.PNG" alt="Image 7" width="800" height="547"&gt;
&lt;/li&gt;
&lt;li&gt;To create a relationship, select &lt;strong&gt;+ New relationship.&lt;/strong&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%2Fwu61miac7dtadue3ypsl.PNG" alt="Image 8" width="688" height="598"&gt;
&lt;/li&gt;
&lt;li&gt;To configure a relationship &lt;strong&gt;from&lt;/strong&gt; Product table to Sales table, in the From table dropdown list, select the Product table, and in the &lt;strong&gt;To&lt;/strong&gt; table dropdown list, select the Sales table.
&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%2Feq3bgm4pkd86sk66gehq.PNG" alt="Image 9" width="680" height="585"&gt;
&lt;/li&gt;
&lt;li&gt;The following properties were automatically configured:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;ProductKey columns in each table are selected.&lt;/li&gt;
&lt;li&gt;Cardinality type is One To Many (1:*), which was automatically detected. &lt;/li&gt;
&lt;li&gt;Cross Filter Direction type is Single. &lt;/li&gt;
&lt;li&gt;Make This Relationship Active is checked.
&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%2Fs6vnq0uq4ad9a0rjixg0.PNG" alt="Image 10" width="686" height="581"&gt;
11.Select &lt;strong&gt;Save,&lt;/strong&gt; notice in the Manage Relationships window that the new relationship is listed, and then select Close.
&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%2Fq86onaw2een6kt16xoa8.PNG" alt="Image 11" width="800" height="559"&gt;
12.In the model diagram, there's now a connector between the two tables (between the Product and Sales table which is connected by the ProductKey column).
&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%2Faf0bvqw91jb4symrypjb.PNG" alt="Image 12" width="472" height="367"&gt;
13.Switch to Report view, and then notice that the table visual updated to display different values for each product category.
&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%2Fyim7svfube15fqchsk5o.PNG" alt="Image 13" width="238" height="181"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;B. Create additional relationships&lt;/strong&gt;&lt;br&gt;
New relationships in Power BI are also created through the &lt;strong&gt;drag and drop columns.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Firstly, switch to Model view.&lt;/li&gt;
&lt;li&gt;From the Reseller table, drag the ResellerKey column onto the ResellerKey column of the Sales table.
&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%2F4ykzydq02n5rjm7tt9vt.PNG" alt="Image 2" width="640" height="334"&gt;
&lt;/li&gt;
&lt;li&gt;In the New relationship window, review the configuration, and then select Save.
&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%2Fmzaeymhyyr4f5z5wzrw8.PNG" alt="Image 3" width="690" height="583"&gt;
&lt;/li&gt;
&lt;li&gt;Additional model relationships are created using the following;
Region table to Sales table using &lt;strong&gt;SalesTerritoryKey&lt;/strong&gt; columns as the common column for both tables. Salesperson table to Sales table, using the &lt;strong&gt;EmployeeKey&lt;/strong&gt; columns as common key for both tables.&lt;/li&gt;
&lt;li&gt;In the model view diagram, tables are arranged so that the Sales table is positioned in the center of the diagram, and the related tables are arranged about it. (Disconnected tables are positioned to the side).
&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%2Fyt86fqovkyjyq4680o0r.PNG" alt="Image 5" width="799" height="324"&gt;
&lt;/li&gt;
&lt;li&gt;Save the Power BI Desktop file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;C. Configure the Product table&lt;/strong&gt;&lt;br&gt;
In this task, you'll configure the Product table with a hierarchy and display folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Switch to Model view.&lt;/li&gt;
&lt;li&gt;In the Data pane, if necessary, expand the Product table to reveal all fields.
&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%2Fvh1aidpnjhd9cyl0hcv6.PNG" alt="Image 2" width="180" height="126"&gt;
&lt;/li&gt;
&lt;li&gt;In the Product table, right-click the &lt;strong&gt;Category&lt;/strong&gt; column, and the select &lt;strong&gt;Create hierarchy&lt;/strong&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%2F9k5lzrlpfd7wlm6xd8nc.PNG" alt="Image 3" width="346" height="302"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, in the &lt;strong&gt;Name&lt;/strong&gt; box, replace the value with &lt;em&gt;Products&lt;/em&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%2Fqc5g6sy2bsai31uwehrb.PNG" alt="Image 4" width="293" height="403"&gt;
&lt;/li&gt;
&lt;li&gt;To add levels to the hierarchy, in the Hierarchy dropdown list, select Subcategory and then select Product, and then select Apply Level Changes.
&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%2Fc3e6qimm7z4pd0ga2xbe.PNG" alt="Image 5" width="288" height="285"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Data&lt;/strong&gt; pane, notice the Products hierarchy. To reveal the hierarchy levels, expand it.
&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%2Fulpwwpqu5sff8l4lsee4.PNG" alt="Image 6" width="268" height="303"&gt;
&lt;/li&gt;
&lt;li&gt;To organize columns into a display folder, in the &lt;strong&gt;Data pane&lt;/strong&gt;, first select the Background Color Format column.
&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%2Fbdi6sey7ozhc0qjj2abm.PNG" alt="Image 7" width="289" height="367"&gt;
&lt;/li&gt;
&lt;li&gt;While pressing the Ctrl key, select the Font Color Format column.
&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%2Futdh9jyzkarxzfcrzkqb.PNG" alt="Image 8" width="279" height="396"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties pane&lt;/strong&gt;, in the &lt;strong&gt;Display Folder&lt;/strong&gt; box, enter Formatting.
&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%2Fxva7yvmhbgh4x4znarnx.PNG" alt="Image 9" width="272" height="78"&gt;
10.In the Data pane, notice that the two columns are now inside a folder.
&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%2Fm3hr00oywwtazt8pa389.PNG" alt="Image 10" width="282" height="306"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;D. Configure the Region table&lt;/strong&gt;&lt;br&gt;
This task configures the Region table with a hierarchy and updated categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the Region table, create a hierarchy named Regions, with the  three levels: &lt;strong&gt;Group&lt;/strong&gt;, &lt;strong&gt;Country&lt;/strong&gt; and &lt;strong&gt;Region.&lt;/strong&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%2Fmm2zgm2gqyqp67t5mfp4.PNG" alt="Image 1" width="274" height="250"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Country&lt;/strong&gt; column (not the Country hierarchy level).
&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%2Fhsmu3jaiqr6qvmwmt6l3.PNG" alt="Image 2" width="261" height="277"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, expand the Advanced section (located at the bottom of the pane), and then in the &lt;strong&gt;Data Category&lt;/strong&gt; dropdown list, select &lt;strong&gt;Country/Region&lt;/strong&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%2Fhjea4yaz1qvynlf3e1yn.PNG" alt="Image 3" width="283" height="381"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;E. Configure the Reseller table&lt;/strong&gt;&lt;br&gt;
This task configures the Reseller table to add a hierarchy and update data categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the Reseller table, create a hierarchy named Resellers, with the two levels, &lt;strong&gt;Business Type&lt;/strong&gt; and &lt;strong&gt;Reseller&lt;/strong&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%2Fspgz3cyfchtry479zanb.PNG" alt="Image 1" width="278" height="158"&gt;
&lt;/li&gt;
&lt;li&gt;Create a second hierarchy named Geography, with the following four
levels: &lt;strong&gt;Country-Region&lt;/strong&gt;, &lt;strong&gt;State-Province&lt;/strong&gt;, &lt;strong&gt;City&lt;/strong&gt;, and &lt;strong&gt;Reseller&lt;/strong&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%2Fct1knbdz4mxf6p1z8lo3.PNG" alt="Image 2" width="289" height="275"&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;data&lt;/strong&gt; category for the following columns (not within the hierarchy): &lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Country-Region to Country/Region&lt;/strong&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%2Fxjeoxhcmo0mz87sxqsy7.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%2Fxjeoxhcmo0mz87sxqsy7.PNG" alt="Image 3a" width="289" height="83"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;State-Province to State or Province&lt;/strong&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%2F9zn9caebt42bi7tpju4v.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%2F9zn9caebt42bi7tpju4v.PNG" alt="Image 3b" width="279" height="309"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;City to City&lt;/strong&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%2Fjqrqxr8em6mf4oupc6kh.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%2Fjqrqxr8em6mf4oupc6kh.PNG" alt="Image 3c" width="283" height="318"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;F. Configure the Sales table&lt;/strong&gt;&lt;br&gt;
This task configure the Sales table with updated descriptions, formatting, and summarization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the &lt;strong&gt;Sales&lt;/strong&gt; table, select the &lt;strong&gt;Cost&lt;/strong&gt; column.
&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%2F2l15ruck0fl0mu5schnj.PNG" alt="Image 1" width="264" height="402"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, in the &lt;strong&gt;Description&lt;/strong&gt; box, enter: &lt;em&gt;Based on standard cost&lt;/em&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%2Feltls7am971bti0lauja.PNG" alt="Image 2" width="277" height="394"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Quantity&lt;/strong&gt; column.
&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%2Fatly3g20wub7nktrwbqg.PNG" alt="Image 3" width="283" height="200"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, from inside the &lt;strong&gt;Formatting&lt;/strong&gt; section, set the Thousands Separator property to &lt;strong&gt;Yes&lt;/strong&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%2Fcu979v7vg0ov0wmd8lqn.PNG" alt="Image 4" width="281" height="266"&gt;
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Unit Price column&lt;/strong&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%2Fe8smj8usrxs88yiu65n7.PNG" alt="Image 5" width="269" height="130"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, from inside the &lt;strong&gt;Formatting&lt;/strong&gt; section, set the Decimal Places property to &lt;strong&gt;2&lt;/strong&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%2F31chqnc647jj8a2ao5cg.PNG" alt="Image 6" width="288" height="311"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Advanced&lt;/strong&gt; group (you may need to scroll down to locate it), in the Summarize By dropdown list, select &lt;strong&gt;Average&lt;/strong&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%2Fc2z02i7kkxufvk5vx2dm.PNG" alt="Image 7" width="283" height="275"&gt;
&lt;em&gt;By default, numeric columns will summarize by summing values together. This default behavior isn't suitable for a column like Unit Price, which represents a rate. Setting the default summarization to average will produce a meaningful result.&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;G. Bulk update properties&lt;/strong&gt;&lt;br&gt;
This task updates multiple columns using single bulk updates. This approach is used to hide columns, and format column values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the Data pane (or model diagram), select the ProductKey column in the Product table
&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%2F87owxgbp1qvhfxqzyd21.PNG" alt="Image 1" width="283" height="413"&gt;.&lt;/li&gt;
&lt;li&gt;While pressing the Ctrl key, select the following 13 columns SalesTerritoryKey (Region Table), ResellerKey (Reseller), EmployeeKey, ProductKey, ResellerKey, SalesOrderNumber and SalesTerritoryKey (Sales Table), EmployeeID, EmployeeKey, UPN (Salesperson Table), EmployeeKey, SalesTerritoryKey (SalespersonRegion), and EmployeeID (Targets).
&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%2F5aw77p8m07bzm5adqm5w.PNG" alt="Image 2" width="391" height="365"&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Properties pane, set the Is Hidden property to Yes.&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%2Fofkkaqj9011bns0y9ere.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%2Fofkkaqj9011bns0y9ere.PNG" alt="Image 3" width="329" height="406"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The columns were hidden because they're either used by relationships or will be used in row-level security configuration or calculation logic.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-select the following three columns: Standard Cost (Product Table), Cost and Sales (Sales Table).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; pane, from inside the &lt;strong&gt;Formatting&lt;/strong&gt; section, set the &lt;strong&gt;Decimal Places&lt;/strong&gt; property to 0 (zero).&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%2F0v9zu9jmzw2nyauuikws.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%2F0v9zu9jmzw2nyauuikws.PNG" alt="Image 5" width="288" height="311"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;H. Explore the model interface&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This task explains how to switch to Report view, review the data model interface, and configure the auto date/time setting.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Switch to Report view.
&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%2Fmvdcj3b0n82sgt1qw4vi.PNG" alt="Image 1" width="799" height="347"&gt;
&lt;/li&gt;
&lt;li&gt;In the Data pane, notice the following:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Columns, hierarchies and their levels are fields, which can be used to configure report visuals.&lt;/li&gt;
&lt;li&gt;Only fields relevant to report authoring are visible.&lt;/li&gt;
&lt;li&gt;The SalespersonRegion table isn't visible—because all of its fields are hidden.&lt;/li&gt;
&lt;li&gt;Spatial fields in the Region and Reseller table are adorned with a spatial icon.&lt;/li&gt;
&lt;li&gt;Fields adorned with the sigma symbol (Ʃ) will summarize, by default.&lt;/li&gt;
&lt;li&gt;A tooltip appears when hovering the cursor over the Sales (Cost field).&lt;/li&gt;
&lt;li&gt;Expand the Sales (OrderDate field), which reveals a Date Hierarchy. 
&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%2Fl3tokf1ezn6rku63o458.PNG" alt="Image 3" width="178" height="391"&gt;
They were created automatically as a default setting which  commences on January 1 of each year which is not in syn with the dataset used in this analysis, whose financial year commenced on July 1. &lt;/li&gt;
&lt;li&gt;To turn off the auto date/time setting, navigate to &lt;strong&gt;File&lt;/strong&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%2F0pimxfaoza7g8jcnnvnr.PNG" alt="Image 4" width="800" height="112"&gt; 
Open the &lt;strong&gt;Options and Settings and Options.&lt;/strong&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%2Fkjrw7efixxgdaldw0chq.PNG" alt="Image 4b" width="800" height="466"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;In the &lt;strong&gt;Options&lt;/strong&gt; window, on the &lt;strong&gt;Current File&lt;/strong&gt; section, navigate to &lt;strong&gt;Data Load&lt;/strong&gt; &amp;gt; &lt;strong&gt;Time Intelligence&lt;/strong&gt;, and &lt;strong&gt;uncheck Auto Date/Time.&lt;/strong&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%2F59goju7vn1lx6ow2pe2y.PNG" alt="Image 5" width="800" height="478"&gt;
&lt;/li&gt;
&lt;li&gt;In the Data pane, notice that the date hierarchies are no longer available.
&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%2Fem07uydjg5gtq3e14sm2.PNG" alt="Image 6" width="197" height="379"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;I. Create quick measures&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This task creates two quick measures to calculate profit and profit margin. A quick measure creates the calculation formula for you. They're easy and fast to create for simple and common calculations.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the Data pane, right-click the Sales table, and then select New Quick Measure.
&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%2Fda2hdtw0xf0ltdkl4ri8.PNG" alt="Image 1" width="257" height="388"&gt;
&lt;/li&gt;
&lt;li&gt;In the Quick Measure pane, in the Select a Calculation dropdown list.
&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%2F5dewz4bnbbrzikx9aowm.PNG" alt="Image 2a" width="357" height="411"&gt;
From inside the Mathematical Operations group, select Subtraction.
&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%2Fd7d5arxvqx5s64ojpkrp.PNG" alt="Image 2b" width="291" height="239"&gt;
&lt;/li&gt;
&lt;li&gt;From the &lt;strong&gt;Data&lt;/strong&gt; pane, drag the Sales (Sales field) into the &lt;strong&gt;Base Value&lt;/strong&gt; well.
&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%2Fdms8pqxcakzf0pbbxs4l.PNG" alt="Image 3" width="715" height="397"&gt;
&lt;/li&gt;
&lt;li&gt;Drag the Sales (Cost field) into the Value to &lt;strong&gt;Subtract box.&lt;/strong&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%2Fdehh7365hlpaqhu9am7n.PNG" alt="Image 4" width="732" height="425"&gt;
&lt;/li&gt;
&lt;li&gt;Select Add.
&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%2F68muov9v43nsc5a7f1et.PNG" alt="Image 5" width="333" height="241"&gt;
&lt;/li&gt;
&lt;li&gt;In the Data pane, inside the Sales table, notice that new measure. &lt;em&gt;Measures are indicated by the calculator icon&lt;/em&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%2F53s1pdtlesd487c4nerg.PNG" alt="Image 6" width="164" height="173"&gt;
&lt;/li&gt;
&lt;li&gt;To rename the measure, right-click it, select Rename, then rename as Profit.
&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%2Fersukp4fblebmwj5nl2n.PNG" alt="Image 7" width="176" height="324"&gt;
&lt;strong&gt;Tip:&lt;/strong&gt; &lt;em&gt;To rename a field, you can also double-click it, or select it and press F2.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;In the Sales table, add a second quick measure, based on the following requirements:
&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%2Fjwa1hwzjbkoz3823oiep.PNG" alt="Image 8" width="340" height="366"&gt;
&lt;/li&gt;
&lt;li&gt;Use the Division mathematical operation.
&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%2Ftfjay844a0uc3fbhq9lf.PNG" alt="Image 8a" width="284" height="220"&gt;
&lt;/li&gt;
&lt;li&gt;Set the Numerator to the Sales (Profit field).
&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%2Fbp4h65nc61s95pyipuri.PNG" alt="Image 8b" width="718" height="380"&gt;
&lt;/li&gt;
&lt;li&gt;Set the Denominator to Sales (Sales field).
&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%2F2okgfipgrgx8aputpaj6.PNG" alt="Image 8c" width="713" height="388"&gt;
&lt;/li&gt;
&lt;li&gt;Rename the measure as Profit Margin.
&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%2Fzslgcu51d76uuqwbitbj.PNG" alt="Image 8d" width="157" height="200"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the Profit Margin measure is selected, and then on the &lt;strong&gt;Measure Tools&lt;/strong&gt; contextual ribbon, set the format to &lt;strong&gt;Percentage&lt;/strong&gt;, with two decimal places.
&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%2Fursvbgon1lm8ntnaig8f.PNG" alt="Image 9" width="720" height="125"&gt;
&lt;/li&gt;
&lt;li&gt;To test the two measures, first select the existing table visual on the page.
&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%2Fz37f7n2xmn8o273gevkv.PNG" alt="Image 10" width="582" height="275"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Data&lt;/strong&gt; pane, check the Profit and Profit Margin measures to add them to the table.
&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%2Ft1jj4fuoh04n0ozkrf20.PNG" alt="Image 11" width="174" height="349"&gt;
&lt;/li&gt;
&lt;li&gt;Select and drag the right guide to widen the table visual.
&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%2F8zpv2sbgnop0d4g66ma8.PNG" alt="Image 12" width="265" height="157"&gt;
&lt;/li&gt;
&lt;li&gt;Verify that the measures produce reasonable results that are correctly formatted.
&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%2Fp4qkgjtfpadosgr9e7sc.PNG" alt="Image 13" width="399" height="171"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;J. Create a many-to-many relationship&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This task creates a many-to-many relationship between the Salesperson table and the Sales table.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In &lt;strong&gt;Report view&lt;/strong&gt;, select a blank area of the report page.
&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%2Fps7i2ytehhd0qtcbfc38.PNG" alt="Image 1" width="635" height="489"&gt;
&lt;/li&gt;
&lt;li&gt;To create a new table visual, in the &lt;strong&gt;Data&lt;/strong&gt; pane, check the following two fields: Salesperson (Salesperson) and Sales (Sales).
&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%2Fxn3o26qc55fj2o5wotyj.PNG" alt="Image 2" width="245" height="331"&gt;
&lt;/li&gt;
&lt;li&gt;Notice that Michael Blythe has generated almost 9 million dollars of sales.
&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%2Fghylkmyszcx0ke65lkkf.PNG" alt="Image 3" width="221" height="21"&gt;
&lt;/li&gt;
&lt;li&gt;Switch to Model view, then drag the SalespersonRegion table to position it between the Region and Salesperson tables.&lt;/li&gt;
&lt;li&gt;Use the drag-and-drop technique to create the following two model relationships:&lt;/li&gt;
&lt;li&gt;Salesperson | EmployeeKey to SalespersonRegion | EmployeeKey&lt;/li&gt;
&lt;li&gt;Region | SalesTerritoryKey to SalespersonRegion | SalesTerritoryKey
&lt;em&gt;The SalespersonRegion table can be considered to be a bridging table.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Switch to Report view, and then notice that the visual hasn't updated the sales result for Michael Blythe hasn't changed.
&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%2Fk1t8xkuoxgjfcyuv847x.PNG" alt="Image 6" width="221" height="21"&gt;
&lt;/li&gt;
&lt;li&gt;Switch back to Model view, and then follow the relationship filter directions (arrowhead) from the Salesperson table.
&lt;em&gt;Note that the Salesperson table filters the Sales table. It also filters the SalespersonRegion table, but it doesn't continue by propagating filters to the Region table (the arrowhead is pointing the wrong direction).&lt;/em&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%2F1xi5e2j1q03z53e0co1f.PNG" alt="Image 7" width="588" height="253"&gt;
&lt;/li&gt;
&lt;li&gt;To edit the relationship between the Region and SalespersonRegion tables, double-click the relationship.
&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%2Fzejezsgjplqaxv50ehzg.PNG" alt="Image 8" width="643" height="538"&gt;
&lt;/li&gt;
&lt;li&gt;In the Edit Relationship window, in the Cross Filter Direction dropdown list, select Both.
&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%2Fnqry5qipo4irvz6lc4oq.PNG" alt="Image 9" width="347" height="152"&gt;
10.Check the Apply Security Filter in Both Directions checkbox.
&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%2Fo6gx2x10oiqvlx7n19sa.PNG" alt="Image 10" width="335" height="267"&gt;
11.Select Save.
&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%2Fxogmyjnai4y63r5f62lh.PNG" alt="Image 11" width="359" height="305"&gt;
12.Notice that the relationship has a double arrowhead now.
&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%2Fb4y52id3pet9t5se3zmu.PNG" alt="Image 12" width="675" height="323"&gt;
13.Switch to Report view, and then notice that the sales values have still not changed.
&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%2Fmgc0khkhyotcbmgrdomp.PNG" alt="Image 13" width="223" height="26"&gt;
14.Switch to Model view.&lt;/li&gt;
&lt;li&gt;To force filter propagation via the bridging table, edit (double-click) the relationship between the Salesperson and Sales tables.
&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%2F54c6pb7lojy0h0hb2ql1.PNG" alt="Image 15" width="673" height="477"&gt;
16.In the Edit Relationship window, uncheck the Make This Relationship Active checkbox.
17.Select Save.
&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%2Fr0er9w6cgf6sqlzy6g7c.PNG" alt="Image 17" width="679" height="353"&gt;
&lt;em&gt;Filter propagation will now follow the only active path.&lt;/em&gt;
18.In the model diagram, notice that the inactive relationship is represented by a dotted line.
&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%2Fo723jexfk8gc07csv5t2.PNG" alt="Image 18" width="190" height="219"&gt;
19.Switch to Report view, and then notice that the sales for Michael Blythe are now nearly 22 million dollars.
&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%2F7jworvxe29k3oyi679as.PNG" alt="Image 19" width="211" height="24"&gt;
20.Notice also, that the sales for each salesperson—if added—would exceed the table total.
21.Switch to Model view, and then in the model diagram, select
the Salesperson table.
&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%2F8b0l6cbbbaba8s67ktj6.PNG" alt="Image 21" width="154" height="184"&gt;
22.In the Properties pane, in the Name box, replace the text with Salesperson (Performance).
&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%2Ff14l8rj1rvtymov2lmse.PNG" alt="Image 22" width="306" height="355"&gt;
&lt;em&gt;The renamed table now reflects its purpose: it's used to report and analyze the performance of salespeople based on the sales of their assigned sales regions.&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;K. Relate the Targets table&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This task creates a relationship to the Targets table.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a relationship from the Salesperson (Performance) (EmployeeID column) and the Targets (EmployeeID column).
&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%2F78se5s3xkfqnjqj93691.PNG" alt="Image 1" width="657" height="547"&gt;
&lt;/li&gt;
&lt;li&gt;In Report view, add the Targets (Target field) to the table visual.
&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%2Fhgo4f8hwdb7mqjjubzh1.PNG" alt="Image 2" width="179" height="370"&gt;
&lt;/li&gt;
&lt;li&gt;Resize the table visual so all columns are visible.
&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%2Fq09jppnknbq3vvho5by8.PNG" alt="Image 3" width="391" height="340"&gt;
&lt;/li&gt;
&lt;/ol&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>analytics</category>
      <category>data</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Clean, Transform, and Load Data in Power BI: A Practical Guide to Data Preparation</title>
      <dc:creator>Timothy Atinuke</dc:creator>
      <pubDate>Tue, 28 Apr 2026 03:56:17 +0000</pubDate>
      <link>https://dev.to/atinuke77/clean-transform-and-load-data-in-power-bi-a-practical-guide-to-data-preparation-34bj</link>
      <guid>https://dev.to/atinuke77/clean-transform-and-load-data-in-power-bi-a-practical-guide-to-data-preparation-34bj</guid>
      <description>&lt;h2&gt;
  
  
  INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;Data cleaning is the process of identifying and correcting errors, anomalies and inconsistencies in raw data sets to improve the quality of the data and get it ready for advanced analysis and modeling. In today’s data-driven world, raw data is often messy and rarely ready for analysis. The real value of a data analyst lies not just in collecting data, but in their ability to prepare it for meaningful insights. Data cleaning and transformation is essential because it organize tables, remove duplicates, simplify complicated columns through merging or appending, remove duplicates and null values, improve result accuracy for better and informed decision making. This is where ETL (Extract, Transform, Load) becomes essential. Power Query Editor in Power BI Desktop allows you to shape (transform) your imported data. Power Query Editor only modifies a view of your data, so you can be confident that your original data source remains unchanged.&lt;br&gt;
Using Microsoft Power BI, analysts can efficiently clean, transform, and load data into a structured model ready for visualization and reporting.&lt;br&gt;
This guide walks you through the step-by-step practical process of preparing data in Power BI from cleaning messy datasets to transforming the data into analysis-ready format and finally loading it into the data model for modeling and visualization.&lt;/p&gt;

&lt;h2&gt;
  
  
  ARCHITECTURE OVERVIEW
&lt;/h2&gt;

&lt;p&gt;Power BI’s data preparation workflow through the Power Query Editor is where:&lt;br&gt;
• Data Cleaning occurs&lt;br&gt;
• Data Transformations are performed &lt;br&gt;
• Data Loading for analysis is applied &lt;/p&gt;

&lt;p&gt;Each step performed is recorded, making your workflow reproducible and easy to modify.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working with Power Query Editor&lt;/strong&gt;&lt;br&gt;
The Power Query Editor is the central workspace for data transformation.&lt;br&gt;
Steps:&lt;br&gt;
• Access it via Transform Data in Power BI Desktop &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%2F3g0uvxyu2ncklcjjjikl.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%2F3g0uvxyu2ncklcjjjikl.PNG" alt="Image 1" width="800" height="439"&gt;&lt;/a&gt;&lt;br&gt;
• Each transformation step is recorded in the Applied Steps pane &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%2Fxqpa7kikrcgscwpwdh4k.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%2Fxqpa7kikrcgscwpwdh4k.PNG" alt="Image 2" width="258" height="548"&gt;&lt;/a&gt;&lt;br&gt;
• Changes are repeatable and refresh automatically with new data&lt;br&gt;
Key advantage: It enables a no-code/low-code approach while still supporting advanced transformations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Promoting Headers&lt;/strong&gt;&lt;br&gt;
Often, datasets load with the first row as data instead of column names.&lt;br&gt;
To promote header, &lt;br&gt;
&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Home Column&lt;/li&gt;
&lt;li&gt;Use “Use First Row as Headers”&lt;/li&gt;
&lt;li&gt;Ensure columns are properly labeled for easier analysis
&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%2F3y7v12m40b026txoiizx.PNG" alt="Image 3" width="800" height="448"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;2. Creating Index Columns&lt;/strong&gt;&lt;br&gt;
Index columns help to assign unique integer to each row in a table for easy row identification, sorting and modeling.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Go to Add Column → Index Column
&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%2Fzzyfixvxixdd59v7qnt3.PNG" alt="Image 4" width="800" height="415"&gt;
&lt;/li&gt;
&lt;li&gt;Choose: From 0, From 1 or Custom increment (which define a starting value and increment, e.g., 3, 6, 9…)
&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%2Fwsyk9xcy2j6e2449dq4j.PNG" alt="Image 5" width="800" height="432"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;3. Conditional Columns and Logic&lt;/strong&gt;&lt;br&gt;
Conditional columns is used in the creation of new columns based on rule (IF-THEN-ELSE logic) applied to the existing columns&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Navigate to Add Column → Conditional Column
&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%2F23ntahe30sjp8ykufudi.png" alt="Image 6" width="800" height="447"&gt;
&lt;/li&gt;
&lt;li&gt; Define logic like:&lt;/li&gt;
&lt;li&gt; If Salary = 50,000 → “Full Employee”&lt;/li&gt;
&lt;li&gt; Else → “Contract Worker”
&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%2F9wosogu7seyhzztnkmnw.PNG" alt="Image 7" width="800" height="404"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;4. Column from Examples&lt;/strong&gt;&lt;br&gt;
It automatically creates new columns by providing one or more example values from existing columns in the table.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Go to Add Column → Column from Examples
&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%2Forjj24c4pf1iy22bmrek.PNG" alt="Image 8" width="800" height="394"&gt;
&lt;/li&gt;
&lt;li&gt;Provide sample outputs 
&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%2Fanofanfjcls87zh4v8k3.PNG" alt="Image 9" width="800" height="426"&gt;
&lt;/li&gt;
&lt;li&gt;Power BI automatically detects the transformation logic.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;5. Unpivot and Pivot Columns&lt;/strong&gt;&lt;br&gt;
    These operations reorganize dataset making dataset more flexible, consistent and compatible for analysis. Pivot Columns: turn long data (category values) from rows into wide format (separate columns). Unpivot Columns: Converts wide data (columns) into long format (rows).&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Go to Home → Transform
&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%2F36sjfznql1po1xjdzy4u.png" alt="Image 10" width="800" height="450"&gt;
&lt;/li&gt;
&lt;li&gt;Select column to unpivot/pivot
&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%2Fs31fmfimgy3b6vbkdi3c.jpeg" alt="Image 11" width="768" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;Click Pivot column to convert
&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%2Fjmlk4mb4cqt8ufl3n4cx.jpeg" alt="Image 12" width="557" height="156"&gt;
&lt;/li&gt;
&lt;li&gt;Chose value column (e.g., Sales) to populate the pivoted data
&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%2F6jogb9j4smggih6r4ss0.jpeg" alt="Image 13" width="768" height="362"&gt;
&lt;/li&gt;
&lt;li&gt;Click Ok&lt;/li&gt;
&lt;li&gt;To Unpivot, click unpivot and unpivot columns 
&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%2Fpa5ofc5xu8tf0lznhydg.jpeg" alt="Image 14" width="686" height="160"&gt;
&lt;/li&gt;
&lt;li&gt;Press Ok 
&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%2Fvpyla1a60j7utnze7yp6.jpeg" alt="Image 15" width="768" height="423"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;6. Grouping and Aggregation&lt;/strong&gt;&lt;br&gt;
Grouping helps summarize data by primarily using the “Group By”.&lt;br&gt;
&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Transform → Group By
&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%2Fen86dea3cqxeq8o1vne1.PNG" alt="Image 16" width="800" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;Apply aggregations like: Sum, Count, Average, Min/Max
Example:&lt;/li&gt;
&lt;li&gt;Total sales by region&lt;/li&gt;
&lt;li&gt;Average revenue per customer 
&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%2Fwx638od6l3b7z8ppl1yf.PNG" alt="Image 17" width="710" height="401"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;7. Merge and Append Queries&lt;/strong&gt;&lt;br&gt;
Used for combining datasets:&lt;br&gt;
&lt;strong&gt;Merge Queries&lt;/strong&gt; (Join) extract a particular column from one table to join another table through the use of a common key. E.g. merging customer and transaction tables.&lt;br&gt;
&lt;strong&gt;Append Queries&lt;/strong&gt; (Union) concatenate rows from two tables with the same structure into a single table. E.g. appending monthly datasets.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Merging increases the number of columns in the table while Appending increases the number of rows in the table.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step: To Merge&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Power query editor through the transform data&lt;/li&gt;
&lt;li&gt;Select the table to merge from the left pane (e.g., CodeSphere Hub Sales 2019)&lt;/li&gt;
&lt;li&gt;Click on the Home Tab and select the Merge Queries
&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%2F9eosd44sp8xhroo4yanw.PNG" alt="Image 18" width="800" height="419"&gt;
&lt;/li&gt;
&lt;li&gt;Choose “Merge Queries” to merge directly into selected table or “Merge Queries as New” to create a new merged table 
&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%2Fb2ovi7oqlfiq0qsiijo1.PNG" alt="Image 19" width="800" height="407"&gt;
&lt;/li&gt;
&lt;li&gt;Select the data table from the first drop down and select the common column (e.g., Product_Key)&lt;/li&gt;
&lt;li&gt;Select the second table from the second drop down and chose the matching column (I.e. Product_Key)
&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%2F4xxew4fynuymalk2xd1x.PNG" alt="Image 20" width="742" height="658"&gt;
&lt;/li&gt;
&lt;li&gt;Click ok
&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%2F1erj84ryekhph1der8nd.PNG" alt="Image 21" width="800" height="418"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step: To Append&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Power query editor through the transform data&lt;/li&gt;
&lt;li&gt;Select the table to append (e.g., CodeSphere Hub Sales 2019)&lt;/li&gt;
&lt;li&gt;Click on the Home Tab and select the Append Queries
&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%2Fcpynl816tzlbxnirbtzj.png" alt="Image 22" width="800" height="419"&gt;
&lt;/li&gt;
&lt;li&gt;Choose “Append Queries” to append directly into selected table or “Append Queries as New” to create a new appended table
&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%2Fx7fhh8vuktn4426gusiu.PNG" alt="Image 23" width="800" height="416"&gt;
&lt;/li&gt;
&lt;li&gt;Select the first query from the first drop down selection (e.g., CodeSphere Hub Sales 2019)&lt;/li&gt;
&lt;li&gt;Select the second query from the second drop down selection (e.g., CodeSphere Hub Sales 2020)&lt;/li&gt;
&lt;li&gt;Click ok 
&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%2Fj6wkzkjaze7ovd3tvi3b.PNG" alt="Image 24" width="709" height="328"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;8. Date and Time Transformations&lt;/strong&gt;&lt;br&gt;
     It is essential for creating time-intelligence calculations like, year-to-date, same-period-last-year,  extracting year, month and day, calculating durations, date differences and standardizing date format for time series analysis and trend reporting.&lt;br&gt;
&lt;strong&gt;Step:&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Power query editor&lt;/li&gt;
&lt;li&gt;Navigate to Transform → Date or Navigate to Transform → Time to extract values (Day, week, month, quarter, year).
&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%2F2nja07a7lnn9tlnhanmx.PNG" alt="Image 25" width="800" height="412"&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.amazonaws.com%2Fuploads%2Farticles%2Fb6tdhvtbfh82gw05u766.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%2Fb6tdhvtbfh82gw05u766.PNG" alt="Image 26" 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%2F8qgrhi63y16z3yp175fv.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%2F8qgrhi63y16z3yp175fv.PNG" alt="Image 27" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To standardize date format, Navigate to Data Type, Select Date/Time, Date or Time to ensure accurate modeling.
&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%2F6jo569v8438cg5m757pj.PNG" alt="Image 28" width="800" height="423"&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.amazonaws.com%2Fuploads%2Farticles%2Ffwtdtsex1wlfjgjfdt2j.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%2Ffwtdtsex1wlfjgjfdt2j.PNG" alt="Image 29" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using DAX functions like DATEDIF to calculate differences&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;9. Adding Prefix and Suffix Using Power Query&lt;/strong&gt;&lt;br&gt;
     You can modify text fields by adding prefixes or suffixes.&lt;br&gt;
&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on Transform data to open Power Query Editor&lt;/li&gt;
&lt;li&gt;Select the column to edit&lt;/li&gt;
&lt;li&gt;Navigate to the Transform Tab&lt;/li&gt;
&lt;li&gt;Click Format 
&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%2Feg7w2nacx1oouixn4o3a.PNG" alt="Image 30" width="800" height="414"&gt;
&lt;/li&gt;
&lt;li&gt;Add Prefix or Suffix
&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%2Fyfrfwkd3c83ag64qy0fc.PNG" alt="Image 31" width="800" height="418"&gt;
&lt;/li&gt;
&lt;li&gt;Enter the desired text/character in the dialog box (e.g. add “NGN” before currency values) 
&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%2Fo5fbguvkhx41oxtgals2.PNG" alt="Image 32" width="800" height="468"&gt;
&lt;/li&gt;
&lt;li&gt;Also enter desired text/character for suffix and Click OK
&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%2F2sqt51fz6qermdq2e346.PNG" alt="Image 33" width="709" height="244"&gt;
&lt;/li&gt;
&lt;li&gt;Or use Custom Column with formulas&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;10. Data Profiling Techniques&lt;/strong&gt;&lt;br&gt;
     Power Query includes built-in data profiling tools for understanding the structure, quality and distribution of data before loading into the model. These tools help quickly assess data health and identify issues.&lt;br&gt;
The 3 concepts of data profiling techniques in power BI are;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Column Profile:&lt;/strong&gt; which shows the entire statistics of a selected column and it shows statistics like Count, Error, Empty, Distinct Unique, Not Available Number (NAN), Min, Max, Zero, Avg, Standard Deviation, Even and Odd.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Column Distribution:&lt;/strong&gt; shows a small histogram under the column header that visualize the frequency and distribution of values. It explicitly list out the number of distinct values and Unique values in a selected column&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Column Quality:&lt;/strong&gt; displays valid data, empty values and percentage of errors&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;Click on Transform data to open Power Query Editor&lt;/li&gt;
&lt;li&gt;Select the column to profile
&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%2Ffrfdmgip1nntfw4stj16.PNG" alt="Image 34" width="800" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to the View Tab 
&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%2F0e1z51h2mhvp5fzykkz3.PNG" alt="Image 35" width="800" height="415"&gt;
&lt;/li&gt;
&lt;li&gt;Enable the option to preview by checking the box and unchecking others (e.g. check the box to preview column quality)&lt;/li&gt;
&lt;li&gt;Column Profile 
&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%2Fgfx2ria5giuzy0iuek2d.PNG" alt="Image 36" width="800" height="415"&gt;
&lt;/li&gt;
&lt;li&gt;Column Distribution
&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%2Fbah4ghx40bivz2ktj8ct.PNG" alt="Image 37" width="800" height="406"&gt;
&lt;/li&gt;
&lt;li&gt;Column Quality
&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%2Fb1xry99jyjef3kk9wzg8.PNG" alt="Image 38" width="800" height="404"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;11. Handling Missing or Null Values&lt;/strong&gt;&lt;br&gt;
Missing data can distort analysis if not handled properly.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;First, identify missing data through the column quality to see the percentage of valid, error and empty (null) values in every column&lt;/li&gt;
&lt;li&gt;Click the filter arrow on the column header 
&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%2F3w5qzp23w242i91jzxtg.PNG" alt="Image 39" width="800" height="404"&gt;
&lt;/li&gt;
&lt;li&gt;Select null (or blank) to view only rows with missing data 
&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%2Fdcvijp5tcu0ivjjvbaip.PNG" alt="Image 40" width="800" height="421"&gt;
&lt;/li&gt;
&lt;li&gt;To replace manually,

&lt;ul&gt;
&lt;li&gt;Right click a column 
&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%2Fyfhjz8wrw3fo52yp7t3a.PNG" alt="Image 41" width="800" height="413"&gt;
&lt;/li&gt;
&lt;li&gt;Select Replace Values 
&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%2F2bh59n2rzpwrb2m9yvs7.png" alt="Image 42" width="800" height="413"&gt;
&lt;/li&gt;
&lt;li&gt;Type Blank in the “Value to Find” &lt;/li&gt;
&lt;li&gt;Enter replacement (e.g., 0 or Unknown) in the “Replace With” 
&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%2Fvpyusf7kw8ndkom2jg7k.PNG" alt="Image 43" width="760" height="330"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;To replace null and empty value by filling down, 

&lt;ul&gt;
&lt;li&gt;Select the column Go to Transform Tab
&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%2Flej1m8sp0253o14cocfs.PNG" alt="Image 44" width="800" height="409"&gt;
&lt;/li&gt;
&lt;li&gt;Click Fill and select Down
&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%2Fjoyjninzn7xyaz9l85kj.PNG" alt="Image 45" width="800" height="407"&gt; &lt;/li&gt;
&lt;li&gt;It copies the last non-null value into the subsequent null cells until it hits a new value &lt;/li&gt;
&lt;li&gt;It is also applicable if the “summary” or “header” values us located below the missing data rows.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;To remove Missing Data

&lt;ul&gt;
&lt;li&gt;Select column&lt;/li&gt;
&lt;li&gt;Click on filter arrow and chose remove Empty.
&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%2Fga99z6e6rw8t5xmdf0pp.PNG" alt="Image 46" width="800" height="414"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;p&gt;Data preparation is the most critical step in any analytics workflow. Power BI’s Power Query Editor provides a robust and flexible environment to clean, transform, and load data efficiently.&lt;br&gt;
By mastering these techniques from basic cleaning to advanced transformations you position yourself to build accurate models, insightful dashboards, and impactful data stories.&lt;br&gt;
The difference between average and exceptional analysis often lies not in visualization but in how well the data was prepared.&lt;/p&gt;

</description>
      <category>microsoft</category>
      <category>etl</category>
    </item>
    <item>
      <title>Getting Data from Multiple Sources in PowerBI: A Practical Guide to Modern Data Integration</title>
      <dc:creator>Timothy Atinuke</dc:creator>
      <pubDate>Sun, 05 Apr 2026 18:15:41 +0000</pubDate>
      <link>https://dev.to/atinuke77/getting-data-from-multiple-sources-in-powerbi-a-practical-guide-to-modern-data-integration-2b9p</link>
      <guid>https://dev.to/atinuke77/getting-data-from-multiple-sources-in-powerbi-a-practical-guide-to-modern-data-integration-2b9p</guid>
      <description>&lt;h2&gt;
  
  
  INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;According to Microsoft, Power BI is a complete reporting solution that offers data preparation, data visualization, distribution, and management through development tools and an online platform. Power BI can scale from simple reports using a single data source to reports requiring complex data modeling and consistent themes. Use Power BI to create visually stunning, interactive reports to serve as the analytics and decision engine behind group projects, divisions, or entire organizations.&lt;br&gt;
The foundation of every successful Power BI report is reliable data ingestion. Before a report can be successfully created, ability to extract data from various data sources is the first crucial step to building an effective report. Interacting with SQL Server is different from Excel, so learning the nuances of how data connection from different sources works is important in order to be able to use other PowerBI tools for effective decision making.&lt;br&gt;
In most real-world business contexts, data is typically spread across multiple sources rather than confined to one. A data analyst may need to integrate data from Excel files, CSVs, SQL Server databases, PDFs, JSON APIs, and SharePoint folders into a unified report. Power BI is well-equipped for this task, offering powerful tools like Get Data and Power Query to efficiently connect, combine, and transform data from various sources. This guide explores how Power BI enables multi-source data integration and provides a step-by-step approach to implementing it effectively.&lt;br&gt;
In this guide, you will learn how to:&lt;br&gt;
• Connect Power BI to multiple data sources efficiently&lt;br&gt;
• Use Power Query to preview and explore your data&lt;br&gt;
• Detect and resolve data quality issues early&lt;br&gt;
• Build a strong foundation for accurate data modeling and reporting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;p&gt;At a high level, Power BI follows a layered architecture which consists of:&lt;br&gt;
• Power BI Desktop as the reporting and modeling tool&lt;br&gt;
• Multiple data sources, including:&lt;br&gt;
o   Excel and Text/CSV files&lt;br&gt;
o   SQL Server databases&lt;br&gt;
o   JSON and PDF files&lt;br&gt;
o   SharePoint folders&lt;br&gt;
All data flows into Power BI through Power Query, where it is reviewed and prepared before loading into the data model.&lt;br&gt;
Connecting Data from Multiple Sources&lt;br&gt;
Power BI allows you to connect to a wide range of data sources. Below are step-by-step guides for each major source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Connecting to Excel&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop
&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%2Fdnvnn8dvd3xxzdcr8q2r.png" alt="Image 1" width="800" height="450"&gt;
&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → Excel
&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%2Fnglqpypzpbcpxcddf0su.PNG" alt="Image 2" width="704" height="215"&gt;
&lt;/li&gt;
&lt;li&gt; Browse and select your Excel file
&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%2Fmtbvij2nuof189i7e9p1.PNG" alt="Image 3" width="800" height="240"&gt;
&lt;/li&gt;
&lt;li&gt; In the Navigator window, select the required sheets or tables
&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%2Fhgv0u5wrda6kd2hrwhte.PNG" alt="Image 4" width="800" height="478"&gt;
&lt;/li&gt;
&lt;li&gt; Click Load (to import directly) or Transform Data (to clean first)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Connecting to Text/CSV Files&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → Text/CSV 
&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%2F8vj7idd4pt01kz9xklkk.png" alt="Image 5" width="800" height="407"&gt;
&lt;/li&gt;
&lt;li&gt; Browse and select the CSV file (e.g., MultiTimeline.csv)
&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%2Fyumyvhf4rkd482f4btoq.PNG" alt="Image 6" width="790" height="444"&gt;
&lt;/li&gt;
&lt;li&gt; Preview the dataset in the dialog window
&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%2Fwqxnzlopk9xk0f1uecz1.PNG" alt="Image 7" width="798" height="610"&gt;
&lt;/li&gt;
&lt;li&gt; Click Load or Transform Data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Connecting to PDF&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → PDF
&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%2Fwkj8hly8cw6aqdgn1ll5.PNG" alt="Image 8" width="686" height="401"&gt;
&lt;/li&gt;
&lt;li&gt; Select the PDF file
&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%2Fnikypl0gfpooe02tnwfg.PNG" alt="Image 9" width="671" height="471"&gt;
&lt;/li&gt;
&lt;li&gt; Wait for Power BI to detect available tables&lt;/li&gt;
&lt;li&gt; Select the desired table(s)&lt;/li&gt;
&lt;li&gt; Click Load or Transform Data
&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%2Fluad9xb25aqwlibpn6ds.PNG" alt="Image 10" width="695" height="538"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Connecting to JSON&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → JSON
&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%2F9qslk7pdl4iw7g7bjl7w.PNG" alt="Image 11" width="753" height="498"&gt;
&lt;/li&gt;
&lt;li&gt; Select the JSON file or input API endpoint 
&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%2F8h83e85jsbocn6gb6x22.PNG" alt="Image 12" width="544" height="375"&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%2Fmqnvudmwv1lit6jtvkye.PNG" alt="Image 13" width="800" height="275"&gt;
&lt;/li&gt;
&lt;li&gt; Load the data into Power Query&lt;/li&gt;
&lt;li&gt; Expand nested fields to structure the data properly
&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%2Fxms5l933vrj9o7jk47ei.PNG" alt="Image 14" width="451" height="359"&gt;
&lt;/li&gt;
&lt;li&gt; Click Close &amp;amp; Apply&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Connecting to SharePoint Folder&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop
&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%2F2xoqmg7u61314xhlj5dz.PNG" alt="Image 15" width="717" height="485"&gt;
&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → SharePoint Folder 
&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%2Fsqsv7jm6xol6jwc2u2tz.png" alt="Image 16" width="606" height="667"&gt;
&lt;/li&gt;
&lt;li&gt; Enter the SharePoint site URL&lt;/li&gt;
&lt;li&gt; Click OK and authenticate if required
&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%2F0olsmx0qdcq17zuwaw5e.PNG" alt="Image 17" width="731" height="493"&gt;
&lt;/li&gt;
&lt;li&gt; Select files from the folder&lt;/li&gt;
&lt;li&gt; Click Combine &amp;amp; Transform Data
&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%2F9islet7owlp1duj9qabn.PNG" alt="Image 18" width="705" height="454"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Connecting to MySQL Database&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop
&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%2Famwaxcp9cw2iiaqj0on6.PNG" alt="Image 19" width="800" height="429"&gt;
&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → MySQL Database
&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%2F73wo1lv6hqpldf6vma7q.png" alt="Image 20" width="600" height="660"&gt;
&lt;/li&gt;
&lt;li&gt; Enter the server name and database
&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%2Fes9my5b008btovm7x2z5.PNG" alt="Image 21" width="590" height="235"&gt;
&lt;/li&gt;
&lt;li&gt; Provide authentication credentials and click connect 
&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%2Fnxgxa0idfjkgg7htpd69.PNG" alt="Image 22" width="585" height="326"&gt;
&lt;/li&gt;
&lt;li&gt; Select the required tables&lt;/li&gt;
&lt;li&gt; Click Load or Transform Data
&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%2Fe673rodah8dj9c0qjz1u.PNG" alt="Image 23" width="588" height="269"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Connecting to SQL Server&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → SQL Server
&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%2F0c7wijhuiv3h33ja2yhw.PNG" alt="Image 24" width="706" height="384"&gt;
&lt;/li&gt;
&lt;li&gt; Enter the server name (e.g., localhost)
&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%2Fyysvr0y03xpenubr9tqk.PNG" alt="Image 25" width="544" height="339"&gt;
&lt;/li&gt;
&lt;li&gt; Leave the database field blank (or specify one if needed)&lt;/li&gt;
&lt;li&gt; Click OK&lt;/li&gt;
&lt;li&gt; Select authentication method (e.g., Windows credentials)&lt;/li&gt;
&lt;li&gt; In the Navigator pane, expand the database (e.g., AdventureWorksDW2020)&lt;/li&gt;
&lt;li&gt; Select required tables such as:
o   DimEmployee
o   DimProduct
o   DimAccount&lt;/li&gt;
&lt;li&gt; Click Transform Data to open Power Query Editor
&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%2Fuc0on0bv68vy3p4wcxkd.PNG" alt="Image 27" width="605" height="490"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Connecting to Web Data&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → Web 
&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%2F0f9fjs2vyuvymbdvu91l.PNG" alt="Image 28" width="285" height="564"&gt;
&lt;/li&gt;
&lt;li&gt; Enter the URL of the web page or API
&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%2Fvib41z1qne96caj0b8pa.PNG" alt="Image 29" width="659" height="244"&gt;
&lt;/li&gt;
&lt;li&gt; Click OK&lt;/li&gt;
&lt;li&gt; Select the data table or structure detected&lt;/li&gt;
&lt;li&gt; Click Load or Transform Data
&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%2Fqspnnermi8wlr7m2ufmz.PNG" alt="Image 30" width="642" height="512"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Connecting to Azure Analysis Services&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Power BI Desktop&lt;/li&gt;
&lt;li&gt; Navigate to Home → Get Data → Azure → Azure Analysis Services
&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%2Fwu1arbuqjh0pcqotd53o.PNG" alt="Image 31" width="669" height="399"&gt;
&lt;/li&gt;
&lt;li&gt; Enter the server name&lt;/li&gt;
&lt;li&gt; Select the database/model&lt;/li&gt;
&lt;li&gt; Choose connection mode (Live connection recommended)&lt;/li&gt;
&lt;li&gt; Click Connect 
&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%2Fwmwdc02d8629utggdkzp.PNG" alt="Image 32" width="597" height="289"&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Integrating data from multiple sources in Microsoft Power BI is a foundational skill for modern data analysts. By understanding the architecture and following a structured approach, you can transform fragmented datasets into cohesive, insight-driven reports. Ultimately, great analytics begins with great data and great data begins with how well you connect, prepare, understand and use it to make business decisions.&lt;br&gt;
Mastering tools like Power Query and applying best practices in data modeling will significantly enhance the quality and performance of your analytics solutions.&lt;/p&gt;

</description>
      <category>microsoft</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
