Lab 03 - Design a Data Model in Power BI
Lab 03 - Design a Data Model in Power BI
Lab story
In this lab, you’ll commence developing the data model. It will involve creating relationships
between tables, and then configuring table and column properties to improve the friendliness
and usability of the data model. You’ll also create hierarchies and create quick measures.
Get started
In this task, you’ll set up the environment for the lab.
Tip: By default, the Getting Started dialog box opens in front of Power BI Desktop.
You can choose to sign-in, and then close the pop-up.
2. To open the starter Power BI Desktop file, select the File > Open Report > Browse
Reports.
3. Navigate to the D:\PL300\Labs\03-configure-data-model-in-power-bi-
desktop\Starter folder and select the Sales Analysis file.
4. Close any informational windows that may open.
5. Go to File > Save As and save the file to the D:\PL300\MySolution folder.
Important: The labs use a shorthand notation to reference a field. It will look like this:
Product | Category. In this example, Product is the table name and Category is the field
name.
1
2. If you don’t see all seven tables, scroll horizontally to the right, and then drag and
arrange the tables more closely together so they can all be seen at the same time.
Tip: You can also use the zoom control located at the bottom of the window.
3. To return to Report view, at the left, select the Report view icon.
4. To view all table fields, in the Data pane, right-click an empty area, and then select
Expand All.
5. To create a table visual, in the Data pane, from inside the Product table, check the
Category field.
6. To add another column to the table, in the Data pane, check the Sales | Sales field.
7. 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.
The issue is that the table is based on fields from different tables. The expectation is
that each product category displays the sales for that category. However, because
there isn’t a model relationship between these tables, the Sales table isn’t filtered.
You’ll now add a relationship to propagate filters between the tables.
2
8. On the Modeling ribbon tab, from inside the Relationships group, select Manage
Relationships.
9. In the Manage Relationships window, notice that no relationships are yet defined.
10. To create a relationship, select New.
11. In the Create Relationship window, in the first dropdown list, select the Product
table.
12. In the second dropdown list (beneath the Product table grid), select the Sales table.
13. Notice the ProductKey columns in each table have been automatically selected.
The columns were selected because they share the same name and data type. You may
need to find matching columns with different names in real data.
14. In the Cardinality dropdown list, notice that One To Many (1:*) is selected.
3
The cardinality was automatically detected, because Power BI understands that the
ProductKey column from the Product table contains unique values. One-to-many
relationships are the most common cardinality, and all relationship you create in this
lab will be this type.
15. In the Cross Filter Direction dropdown list, notice that Single is selected.
Single filter direction means that filters propagate from the “one side” to the “many
side”. In this case, it means filters applied to the Product table will propagate to the
Sales table, but not in the opposite direction.
17. Select OK, notice in the Manage Relationships window that the new relationship is
listed, and then select Close.
18. Notice there’s now a connector between the two tables (it doesn’t matter if the tables
are positioned next to each other).
1. You can interpret the cardinality that is represented by the 1 and (*) indicators.
2. Filter direction is represented by the arrow head.
3. A solid line represents an active relationship; a dashed line represents an
inactive relationship.
4. Hover the cursor over the relationship to highlight the related columns.
There’s an easier way to create a relationship. In the model diagram, you can drag and
drop columns to create a new relationship.
4
19. To create a new relationship using a different technique, from the Reseller table, drag
the ResellerKey column onto the ResellerKey column of the Sales table.
Tip: Sometime a column doesn’t want to be dragged. If this situation arises, select a
different column, and then select the column you intend to drag again, and then try
again. Ensure that you see the new relationship added to the diagram.

onto Sales
20. Use the new technique to create the following two model relationships:
1. Region | SalesTerritoryKey to Sales | SalesTerritoryKey
2. Salesperson | EmployeeKey to Sales | EmployeeKey
21. In the diagram, arrange the tables so that the Sales table is positioned in the center of
the diagram, and the related tables are arranged about it. Position the disconnected
tables to the side.
22. In the report view, notice that the table visual updated to display different values for
each product category.
Filters applied to the Product table now propagate to the Sales table.
5
23. Save the Power BI Desktop file.
Configure Tables
In this exercise you’ll configure each table by creating hierarchies, and hiding, formatting,
and categorizing columns.
1. In Model view, in the Data pane, if necessary, expand the Product table to reveal all
fields.
2. To create a hierarchy, in the Data pane, right-click the Category column, and then
select Create Hierarchy.
3. In the Properties pane (to the left of the Data pane), in the Name box, replace the
text with Products.
4. To add the second level to the hierarchy, in the Properties pane, in the Hierarchy
dropdown list, select Subcategory (you might need to scroll down inside the pane).
5. To add the third level to the hierarchy, in the Hierarchy dropdown list, select
Product.
6. To complete the hierarchy design, select Apply Level Changes.
6
Tip: Don’t forget to select Apply Level Changes—it’s a common mistake to overlook this
step.
7
3. To organize columns into a display folder, in the Data pane, first select the
Background Color Format column.
4. While pressing the Ctrl key, select the Font Color Format column.
5. In the Properties pane, in the Display Folder box, enter Formatting.
6. In the Data pane, notice that the two columns are now inside a folder.
Display folders are a great way to declutter tables—especially for tables that
comprise many fields. They’re logical presentation only.
8
Configure the Region table
In this task, you’ll configure the Region table.
1. In the Region table, create a hierarchy named Regions, with the following three
levels:
o Group
o Country
o Region
9
2. Select the Country column (not the Country hierarchy level).
3. In the Properties pane, expand the Advanced section (at the bottom of the pane), and
then in the Data Category dropdown list, select Country/Region.
Data categorization can provide hints to the report designer. In this case,
categorizing the column as country or region provides more accurate information to
Power BI when it renders a map visualization.
10
Configure the Reseller table
In this task, you’ll configure the Reseller table.
1. In the Reseller table, create a hierarchy named Resellers, with the following two
levels:
o Business Type
o Reseller
2. Create a second hierarchy named Geography, with the following four levels:
o Country-Region
o State-Province
o City
o Reseller
3. Set the Data Category for the Country-Region, State-Province, and City columns
(not the hierarchy level) to Country/Region, State or Province, and City,
respectively.
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.
11
2. While pressing the Ctrl key, select the following 13 columns (spanning multiple
tables):
o Region | SalesTerritoryKey
o Reseller | ResellerKey
o Sales | EmployeeKey
o Sales | ProductKey
o Sales | ResellerKey
o Sales | SalesOrderNumber
o Sales | SalesTerritoryKey
o Salesperson | EmployeeID
o Salesperson | EmployeeKey
o Salesperson | UPN
o SalespersonRegion | EmployeeKey
o SalespersonRegion | SalesTerritoryKey
o Targets | EmployeeID
3. In the Properties pane, slide the Is Hidden property to Yes.
The columns were hidden because they’re either used by relationships or will be used
in row-level security configuration or calculation logic.
You’ll use the SalesOrderNumber in a calculation in the Create DAX Calculations in Power
BI Desktop lab.
12
The Targets | TargetMonth field delivers a similar hierarchy. These hierarchies
weren’t created by you. They were created automatically. There’s a problem,
however. The Adventure Works financial year commences on July 1 of each year. But,
in these automatically created date hierarchies, the date hierarchy year commences
on January 1 of each year.
You’ll now turn off this automatic behavior. In the Create DAX Calculations in Power BI
Desktop lab, you’ll use DAX to create a date table, and configure it define the Adventure
Works’ calendar.
1. To turn off auto/date time, Navigate to File > Options and Settings > Options >
Current File group, and select Data Load.
1. In the Time Intelligence section, uncheck Auto Date/Time.
13
2. In the Data pane, notice that the date hierarchies are no longer available.
A quick measure creates the calculation formula for you. They’re easy and fast to create for
simple and common calculations. You’ll create measures without using this tool in the Create
DAX Calculations in Power BI Desktop lab.
1. In the Data pane, right-click the Sales table, and then select New Quick Measure.
14
2. In the Quick Measures window, in the Calculation dropdown list, from inside the
Mathematical Operations group, select Subtraction.
15
3. In the Data pane of the Quick Measures window, expand the Sales table.
4. Drag the Sales field into the Base Value box.
5. Drag the Cost field into the Value to Subtract box.
16
6. In the Data pane, inside the Sales table, notice that new measure.
1. Measures use the calculator icon.
7. To rename the measure, right-click it, select Rename, then rename to Profit.
Tip: To rename a field, you can also double-click it, or select it and press F2.
8. In the Sales table, add a second quick measure, based on the following requirements:
1. Use the Division mathematical operation
2. Set the Numerator to the Sales | Profit field
3. Set the Denominator to Sales | Sales field
4. Rename the measure as Profit Margin
9. Ensure the Profit Margin measure is selected, and then on the Measure Tools
contextual ribbon, set the format to Percentage, with two decimal places.
10. To test the two measures, first select the table visual on the report page.
11. In the Data pane, check the two measures.
17
12. Select and drag the right guide to widen the table visual.
13. Verify that the measures produce reasonable results that are correctly formatted.
The labs use a shorthand notation to reference a field. It will look like this: Salesperson |
Salesperson . In this example, Salesperson is the table name and Salesperson is the field
name.
1. In Power BI Desktop, in Report view, in the Data pane, check the follow two fields to
create a table visual.
18
o Salesperson | Salesperson
o Sales | Sales
The table displays sales made by each salesperson. However, there’s another
relationship between salespeople and sales. Some salespeople belong to one, two, or
possibly more sales regions. In addition, sales regions can have multiple salespeople
assigned to them.
5. Switch to Report view, and then notice that the visual hasn’t updated—the sales result
for Michael Blythe hasn’t changed.
6. Switch back to Model view, and then follow the relationship filter directions
(arrowhead) from the Salesperson table.
Consider 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).
19
7. To edit the relationship between the Region and SalespersonRegion tables, double-
click the relationship.
8. In the Edit Relationship window, in the Cross Filter Direction dropdown list, select
Both.
9. Check the Apply Security Filter in Both Directions checkbox, then select OK.
11. Switch to Report view, and then notice that the sales values have still not changed.
20
The issue now relates to the fact that there are two possible filter propagation paths
between the Salesperson and Sales tables. This ambiguity is internally resolved,
based on a “least number of tables” assessment. To be clear, you shouldn’t design
models with this type of ambiguity—the issue will be addressed in part later in this
lab, and by the completion of the Create DAX Calculations in Power BI Desktop lab.
12. Switch to Model view to force filter propagation via the bridging table. Edit (double-
click) the relationship between the Salesperson and Sales tables.
13. In the Edit Relationship window, uncheck the Make This Relationship Active
checkbox, and select OK.
The filter propagation will now follow the only active path.
14. In the diagram, notice that the inactive relationship is represented by a dashed line.
15. Switch to Report view, and then notice that the sales for Michael Blythe are now
nearly $22 million.
16. Notice also, that the sales for each salesperson—if added—would exceed the table
total.
21
While the many-to-many relationship is now working, it’s now not possible to analyze
sales made by a salesperson (because the relationship is inactive). You’ll be able to
reactivate the relationship when you introduce a calculated table that will allow
analyzing sales made in the sales region(s) assigned to the salesperson (for
performance analysis) in the Create DAX Calculations in Power BI Desktop lab.
17. Switch to Modeling view, and then in the diagram, select the Salesperson table.
18. In the Properties pane, in the Name box, replace the text with Salesperson
(Performance).
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.
It’s now possible to visualize sales and targets—but take care for two reasons. First, there’s
no filter on a time period, and so targets also include future target amounts. Second, targets
aren’t additive, and so the total shouldn’t be displayed. They can either be disabled by
formatting the visual or removed by using calculation logic. You’ll follow the second
approach by creating a target measure in the Create Advanced DAX Calculations in Power
BI Desktop lab that will return BLANK when more than one salesperson is filtered.
22
Finish up
Save the Power BI Desktop file, and select Apply Later if prompted to apply queries.
23