How can we show each sales order's customer name and region by using data from two related tables?
RELATED for cross-table values in Power BI - Dashboard Guide
Sales Orders Table
| OrderID | CustomerID | OrderAmount |
|---|---|---|
| 1001 | C001 | 250 |
| 1002 | C002 | 450 |
| 1003 | C003 | 300 |
| 1004 | C001 | 150 |
| 1005 | C002 | 500 |
Customers Table
| CustomerID | CustomerName | Region |
|---|---|---|
| C001 | Alpha Corp | East |
| C002 | Beta LLC | West |
| C003 | Gamma Inc | North |
1. Sales Orders Table Visual
Shows OrderID, CustomerID, OrderAmount, CustomerName, and Region.
Calculated Columns using RELATED:
CustomerName = RELATED(Customers[CustomerName]) Region = RELATED(Customers[Region])
This pulls customer info from the Customers table into Sales Orders.
2. Total Sales Card
Shows total sales amount across all orders.
Total Sales = SUM('Sales Orders'[OrderAmount])Result: 1650 (250+450+300+150+500)
3. Sales by Region Bar Chart
Aggregates sales by Region using the RELATED column.
Axis: Region (from Sales Orders table via RELATED)
Values: Total Sales (SUM of OrderAmount)
+----------------------+------------------+ | Total Sales Card | Sales by Region | | | Bar Chart | +----------------------+------------------+ | Sales Orders Table | | (with CustomerName & Region columns) | +------------------------------------------+
Clicking a region in the Sales by Region bar chart filters the Sales Orders table to show only orders from customers in that region.
All visuals update together because they share the CustomerID relationship and RELATED columns.
If you add a filter for Region = 'West', which components update?
- The Sales Orders Table will show only orders from customers in the West region (CustomerID C002).
- The Total Sales Card will update to show total sales for West region orders (450 + 500 = 950).
- The Sales by Region Bar Chart will highlight or filter to the West region bar.
Practice
RELATED function do in Power BI?Solution
Step 1: Understand the purpose of RELATED
The RELATED function is designed to retrieve a value from another table that is connected through a relationship in the data model.Step 2: Differentiate from other functions
RELATED does not create relationships or delete data; it only fetches values from an existing related table.Final Answer:
It fetches a value from a related table based on existing relationships. -> Option BQuick Check:
RELATED fetches related values = A [OK]
- Thinking RELATED creates relationships
- Assuming RELATED works without a relationship
- Confusing RELATED with aggregation functions
RELATED in a calculated column to get the 'CategoryName' from a related 'Product Categories' table?Solution
Step 1: Recall correct RELATED syntax
The RELATED function requires the table name in single quotes if it contains spaces or special characters, followed by the column name in square brackets.Step 2: Check each option
RELATED('Product Categories'[CategoryName]) uses the correct syntax. Without quotes around the table name with space it fails, missing parentheses fails, and bracket notation is invalid.Final Answer:
RELATED('Product Categories'[CategoryName]) -> Option AQuick Check:
RELATED syntax with quotes = B [OK]
- Omitting quotes around table names
- Using dot notation inside RELATED
- Missing parentheses after RELATED
Orders with columns OrderID, ProductID, and Quantity, and Products with columns ProductID and Price. There is a relationship between Orders[ProductID] and Products[ProductID]. What will the following calculated column in Orders return?OrderValue = Orders[Quantity] * RELATED(Products[Price])
Solution
Step 1: Understand the relationship and calculation
RELATED fetches the price of the product for each order line by matching ProductID. Multiplying by Quantity gives the total value for that order line.Step 2: Trace the calculation
The formula computes the total price for each order line row-by-row by multiplying Quantity with the RELATED product Price. It does not aggregate or error out.Final Answer:
The total price for each order line by multiplying quantity with product price. -> Option AQuick Check:
Quantity * RELATED(Price) = line total = C [OK]
- Thinking RELATED aggregates values
- Assuming RELATED cannot be used in calculated columns
- Confusing multiplication with aggregation
Sales table:ProductCategory = RELATED(Product[Category])
But you get an error saying "The column 'Category' either doesn't exist or is not related." What is the most likely cause?
Solution
Step 1: Analyze the error message
The error indicates that RELATED cannot find a related row, usually because the tables are not connected by a relationship.Step 2: Check other possibilities
RELATED can be used in calculated columns. Misspelling would cause a different error, and duplicates don't cause this error.Final Answer:
There is no relationship between Sales and Product tables on the relevant keys. -> Option CQuick Check:
RELATED needs relationships = D [OK]
- Assuming RELATED works without relationships
- Ignoring spelling errors in column names
- Blaming data duplicates for RELATED errors
Sales (with ProductID and Quantity), Products (with ProductID, CategoryID, and CategoryName), and Categories (with CategoryID and CategoryName).You want to create a calculated column in
Sales that shows the CategoryName for each sale. Which DAX formula correctly uses RELATED to get this value?Solution
Step 1: Understand the relationships
Sales is related to Products by ProductID, and Products is related to Categories by CategoryID. Products contains CategoryName (likely via its own RELATED to Categories).Step 2: Use RELATED with the correct direct relationship
RELATED(Products[CategoryName]) fetches from the directly related Products table.Step 3: Rule out others
A targets an indirectly related table, C uses invalid concatenation on unrelated data, D has invalid syntax.Final Answer:
RELATED(Products[CategoryName]) -> Option DQuick Check:
RELATED fetches from directly related table = B [OK]
- Trying to chain RELATED calls
- Using RELATED on unrelated tables
- Assuming RELATED can fetch through multiple tables automatically
Ready to prove it?
Pass the test and this pattern moves unknown
