Bird
Raised Fist0
Power BIbi_tool~8 mins

Relationships (one-to-many, many-to-many) in Power BI - Dashboard Guide

Choose your learning style10 modes available
Dashboard Mode - Relationships (one-to-many, many-to-many)
Business Question

How can we connect sales data with product and customer details using relationships to analyze total sales by product category and customer region?

Sample Data

Sales

SaleIDProductIDCustomerIDQuantitySaleAmount
11012012200
21022021150
31032013450
41012031100
51042045500

Products

ProductIDProductNameCategory
101ChairFurniture
102DeskFurniture
103LampLighting
104PenStationery

Customers

CustomerIDCustomerNameRegion
201AliceEast
202BobWest
203CharlieEast
204DianaNorth
Dashboard Components
  • KPI Card: Total Sales Amount
    Formula: Total Sales = SUM(Sales[SaleAmount])
    Shows total sales across all data: 1400
  • Bar Chart: Sales by Product Category
    Uses relationship between Sales and Products on ProductID (many-to-one)
    Formula for measure: Total Sales = SUM(Sales[SaleAmount])
    Categories: Furniture (450), Lighting (450), Stationery (500)
  • Table: Sales by Customer Region
    Uses relationship between Sales and Customers on CustomerID (many-to-one)
    Columns: Region, Total Sales
    Measure: Total Sales = SUM(Sales[SaleAmount])
    Regions: East (750), West (150), North (500)
  • Many-to-Many Relationship Example: Sales and Promotions
    Assume a Promotions table with PromotionID and ProductID, connected many-to-many with Sales via a bridge table (not shown here for simplicity). This allows analysis of sales affected by multiple promotions.
Dashboard Layout
+----------------------+-------------------------+
|      KPI Card        |    Bar Chart             |
|  Total Sales Amount  |  Sales by Product Cat.  |
|        (1400)        |                         |
+----------------------+-------------------------+
|          Table: Sales by Customer Region           |
|  Region   | Total Sales                               |
|  East     | 750                                     |
|  West     | 150                                     |
|  North    | 500                                     |
+----------------------------------------------------+
Interactivity

Filters on Product Category or Customer Region will update all components:

  • Selecting a category filters the bar chart and updates total sales and sales by region accordingly.
  • Selecting a region filters the table and updates total sales and sales by product category accordingly.
  • Relationships ensure data flows correctly from dimension tables (Products, Customers) to fact table (Sales).
Self Check

If you add a filter for Region = East, which components update and what are their new values?

  • Total Sales Amount: Updates to 750 (sum of sales for customers in East region)
  • Sales by Product Category: Updates to Furniture (300), Lighting (450), Stationery (0)
  • Sales by Customer Region Table: Shows only East region with total sales 750
Key Result
Dashboard shows total sales, sales by product category, and sales by customer region using one-to-many relationships between Sales, Products, and Customers tables.

Practice

(1/5)
1.

What does a one-to-many relationship in Power BI represent?

Choose the best description.

easy
A. Many records in both tables relate to each other.
B. Many records in the first table relate to one record in the second table.
C. No relationship exists between the tables.
D. One record in the first table relates to many records in the second table.

Solution

  1. Step 1: Understand one-to-many relationship meaning

    A one-to-many relationship means one record in the first table connects to multiple records in the second table.
  2. Step 2: Match description to options

    One record in the first table relates to many records in the second table. correctly describes this connection. Other options describe different or no relationships.
  3. Final Answer:

    One record in the first table relates to many records in the second table. -> Option D
  4. Quick Check:

    One-to-many = One record to many records [OK]
Hint: One-to-many means single item links to many items [OK]
Common Mistakes:
  • Confusing one-to-many with many-to-one
  • Thinking many-to-many is the same as one-to-many
  • Assuming no relationship means one-to-many
2.

Which of the following is the correct way to define a many-to-many relationship in Power BI?

Choose the correct syntax or description.

easy
A. Use a calculated column to manually link rows between tables.
B. Set relationship cardinality to 'Many to Many' between two tables.
C. Create a relationship with 'One to One' cardinality and enable cross filter.
D. Use DAX function MANYTOMANY() to create the relationship.

Solution

  1. Step 1: Recall how relationships are defined in Power BI

    Relationships are set in the model view by choosing cardinality like 'One to Many' or 'Many to Many'.
  2. Step 2: Identify the correct method for many-to-many

    Set relationship cardinality to 'Many to Many' between two tables. correctly states setting cardinality to 'Many to Many'. The other options describe incorrect or unsupported methods.
  3. Final Answer:

    Set relationship cardinality to 'Many to Many' between two tables. -> Option B
  4. Quick Check:

    Many-to-many relationship = Set cardinality to Many to Many [OK]
Hint: Set cardinality property to 'Many to Many' in model view [OK]
Common Mistakes:
  • Thinking DAX creates relationships
  • Confusing one-to-one with many-to-many
  • Trying to link tables with calculated columns
3.

Given two tables: Customers and Orders, with a one-to-many relationship from Customers[CustomerID] to Orders[CustomerID], what will the following DAX measure return?

OrderCount = COUNTROWS(RELATEDTABLE(Orders))

Assuming the measure is used in a table visual showing Customers[CustomerName].

medium
A. The number of orders for each customer.
B. The total number of customers.
C. The total number of orders across all customers.
D. An error because RELATEDTABLE cannot be used here.

Solution

  1. Step 1: Understand RELATEDTABLE function in one-to-many context

    RELATEDTABLE returns all rows from the 'many' side (Orders) related to the current row in the 'one' side (Customers).
  2. Step 2: COUNTROWS counts those related rows

    So COUNTROWS(RELATEDTABLE(Orders)) counts how many orders belong to each customer.
  3. Final Answer:

    The number of orders for each customer. -> Option A
  4. Quick Check:

    RELATEDTABLE + COUNTROWS = count related rows per customer [OK]
Hint: RELATEDTABLE counts many-side rows per one-side row [OK]
Common Mistakes:
  • Thinking it counts total orders for all customers
  • Confusing RELATEDTABLE with RELATED
  • Assuming it returns an error
4.

You created a many-to-many relationship between Products and Sales tables but your report shows incorrect totals. What is the most likely cause?

medium
A. The many-to-many relationship causes ambiguous filter context.
B. The relationship is inactive and needs to be activated.
C. You forgot to add a calculated column to link the tables.
D. The data types of the keys do not match.

Solution

  1. Step 1: Understand many-to-many relationship effects

    Many-to-many relationships can create ambiguous filter contexts because multiple rows on both sides can match.
  2. Step 2: Identify cause of incorrect totals

    This ambiguity often causes totals to be incorrect or duplicated, which matches The many-to-many relationship causes ambiguous filter context.
  3. Final Answer:

    The many-to-many relationship causes ambiguous filter context. -> Option A
  4. Quick Check:

    Many-to-many can cause ambiguous filters = incorrect totals [OK]
Hint: Many-to-many can confuse filters causing wrong totals [OK]
Common Mistakes:
  • Assuming inactive relationship is the cause
  • Thinking calculated columns fix relationships
  • Ignoring data type mismatches
5.

You have three tables: Students, Courses, and Enrollments. Enrollments links Students and Courses with many-to-many relationships. How should you model these relationships in Power BI to correctly analyze which students took which courses?

hard
A. Create one-to-one relationships between all tables.
B. Create a single many-to-many relationship directly between Students and Courses.
C. Create two one-to-many relationships: Students to Enrollments and Courses to Enrollments.
D. Use calculated columns to merge Students and Courses into Enrollments.

Solution

  1. Step 1: Understand the role of the Enrollments table

    Enrollments acts as a bridge table linking Students and Courses with many-to-many data.
  2. Step 2: Model relationships correctly

    Best practice is to create two one-to-many relationships: Students (one) to Enrollments (many), and Courses (one) to Enrollments (many). This avoids complex many-to-many direct links.
  3. Final Answer:

    Create two one-to-many relationships: Students to Enrollments and Courses to Enrollments. -> Option C
  4. Quick Check:

    Bridge table uses two one-to-many relationships [OK]
Hint: Use bridge table with two one-to-many relationships [OK]
Common Mistakes:
  • Trying to create many-to-many directly between Students and Courses
  • Using one-to-one relationships incorrectly
  • Merging tables with calculated columns instead of relationships
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard