🔄 Understanding Cross-Filter Direction (Both) in Power BI — Complete Hands-On Scenario
One of the most confusing concepts for many beginners in Power BI is understanding how filters travel between tables. Sometimes relationships exist correctly, but visuals still do not produce the expected results.
🔄 Understanding Cross-Filter Direction (Both) in Power BI — Complete Hands-On Scenario
In this practical hands-on scenario, we will understand:
- ✅ What Cross-Filter Direction means
- ✅ Why Single-direction filtering sometimes fails
- ✅ When to use BOTH-direction filtering
- ✅ A real-world reporting scenario
- ✅ How to solve the issue step-by-step in Power BI
📘 Real Business Scenario
Imagine you work for a professional training company that sells online technology courses. Your manager asks you to create a report showing:
"Total revenue generated by each Trainer for every Course Topic."
At first, the task sounds simple... But the data model contains multiple connected tables.
🗂️ Tables Used in This Scenario
1️⃣ EnrollmentData Table
This table stores student purchases and revenue information.
| EnrollmentID | CourseID | Revenue |
|---|---|---|
| E01 | C101 | 300 |
| E02 | C102 | 500 |
| E03 | C101 | 250 |
2️⃣ CourseCatalog Table
This table stores course details and topics.
| CourseID | Topic |
|---|---|
| C101 | Power BI |
| C102 | Azure |
| C103 | Python |
3️⃣ Trainers Table
This table stores trainer information.
| TrainerName | Topic |
|---|---|
| Kasper | Power BI |
| Sofia | Azure |
| Emma | Python |
🔗 Relationships Between Tables
-
EnrollmentData ↔ CourseCatalog
Connected by: CourseID -
CourseCatalog ↔ Trainers
Connected by: Topic
📊 What the Boss Wants
The manager wants a visual like this:
| Trainer | Topic | Revenue |
|---|---|---|
| Kasper | Power BI | 550 |
| Sofia | Azure | 500 |
⚠️ The Problem
Even after creating the relationships correctly, the report may not calculate revenue properly by Trainer.
Why?
Because Power BI relationships often use:
➡️ Single-Direction Filtering
In this case, the filter from the Trainers table cannot properly travel all the way to the EnrollmentData table.
The filtering path becomes blocked.
🧠 Understanding the Filter Flow
The report needs filtering to travel like this:
Trainer → CourseCatalog → EnrollmentData
But with Single-direction filtering, Power BI may not allow the filter to fully pass through all connected tables.
As a result:
- ❌ Revenue calculations become incorrect
- ❌ Some visuals show blank or unexpected values
- ❌ Manager-based filtering does not work properly
✅ The Solution — Use BOTH Cross-Filter Direction
To solve this problem:
Change the relationship between:
CourseCatalog ↔ Trainers
from:
❌ Single
to:
✅ BOTH
🛠️ Step-by-Step Hands-On Configuration
🔹 Step 1: Open Model View
Go to:
Power BI Desktop → Model View
You will see all tables and relationships.
🔹 Step 2: Locate the Relationship
Find the relationship between:
- CourseCatalog
- Trainers
🔹 Step 3: Open Relationship Settings
Double-click the relationship line.
The relationship configuration window will open.
🔹 Step 4: Change Cross-Filter Direction
Find:
Cross-filter direction
Change:
❌ Single → ✅ Both
🔹 Step 5: Save the Relationship
Click:
Save / OK
Power BI can now pass filters in both directions.
🚀 What Happens After Using BOTH?
Now the filter can successfully travel:
Trainer ↔ CourseCatalog ↔ EnrollmentData
This allows Power BI to correctly calculate:
- ✅ Revenue by Trainer
- ✅ Revenue by Topic
- ✅ Revenue by Course
📌 Final Output
Your visual now works correctly.
| Trainer | Topic | Total Revenue |
|---|---|---|
| Kasper | Power BI | 550 |
| Sofia | Azure | 500 |
💡 Important Real-World Tip
Using BOTH-direction filtering is powerful — but it should be used carefully.
Too many BOTH relationships can:
- ⚠️ Reduce performance
- ⚠️ Create ambiguous filter paths
- ⚠️ Cause unexpected calculations
Always use it only when the business scenario truly requires filters to travel across multiple connected tables.
🎯 Simple Memory Trick
"If filters need to travel through multiple connected tables in both directions, check whether Cross-Filter Direction should be set to BOTH."
🏁 Final Thoughts
Understanding relationships is one of the most important skills in Power BI. Many reporting issues are not caused by DAX — they are caused by incorrect filter behavior between tables.
Once you understand how filters travel through relationships, your dashboards become smarter, cleaner, and more reliable.
📚 Key Learning Summary
- ✅ Relationships control filter behavior
- ✅ Single-direction filtering has limitations
- ✅ BOTH-direction filtering allows filters to travel across connected tables
- ✅ Useful in manager-sales, trainer-revenue, and indirect relationship scenarios
🚀 Keep learning. Keep exploring. Keep building.
Created by M. Naveed | Siraat AI Academy

Comments
Post a Comment