Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
✅ Separate dimension tables:
Dim_Manager
Dim_Supervisor
Dim_Agent
✅ Fact table (example):
Fact_Agent_LoginLogout
✅ Requirement:
Show all managers/supervisors/agents when no filter applied.
When Manager is selected → only show related Supervisors.
When Supervisor is selected → only show related Agents.
The filtering should flow dynamically in slicers.
My relationships between Manager → Supervisor → Agent is:
Single direction (one-way)
Because of this, Slicer sync is not working → Manager is selected, but Supervisor slicer still shows all Supervisors, not related ones.
Title:
"How to enable cascading slicer filtering with separate Manager, Supervisor, Agent dimension tables?"
*"In my Power BI model, I have separate dimension tables for Manager, Supervisor, and Agent. The business requirement is that when a Manager is selected, only related Supervisors should appear in the Supervisor slicer, and when Supervisor is selected, only related Agents should appear in the Agent slicer.
Currently, the slicers do not filter each other properly — for example, selecting a Manager does not impact the Supervisor slicer.
How can I implement this correctly? What is the best practice for such a use case?"*
Hi @manoj_0911 , I hope you're doing well! Just checking in to see if you had a chance to review the details shared earlier. If any of the information addressed your needs, feel free to mark it as "Accept as Solution" to help others in the community. Please let me know if you have any further questions!
Hi @manoj_0911 , I wanted to check with you and see if the provided information was useful. If any of it helped resolve your question, consider marking it as "Accept as Solution" to make it easier for others to find. Let me know if there's anything else I can assist with!
You could try doing the following. Let's assume for simplicty that this is your model:
Arrow shows that Dim 1 and Dim 2 filter fact table -> no bidirectional filters. Fact table is linked with Dim tables like this:
You would like for Dim 1 selection to filter values in Dim 2 Slicer. You apply Dim 1 Slicer which filters fact table -> reduces available values of Dim2Key as well.
Based on this you could create a Measure:
Dim2Filter =
VAR FilteredKey =
VALUES ( Fact[Dim2Key] )
VAR SelectedKey =
SELECTEDVALUE ( 'Dim 2'[Dim2Key] )
RETURN
IF ( SelectedKey IN FilteredKey, 1, 0 )
Then, you can use this measure as a filter on slicer visual and select only those items where measure = 1.
Keep in mind that for large dimensions this operation can be quite heavy.
Hi @manoj_0911 , Thank you for reaching out to the Microsoft Community Forum.
Please refer attached .pbix file for reference and share your thoughts.
If this helped solve the issue, please consider marking it “Accept as Solution” and giving a ‘Kudos’ so others with similar queries may find it more easily. If not, please share the details, always happy to help.
Thank you.
Help me in creating bridge tables and TREATAS
Hi @manoj_0911
In your Power BI model, the issue arises because slicers based on separate dimension tables—Dim\_Manager, Dim\_Supervisor, and Dim\_Agent—do not dynamically filter each other due to the use of single-directional relationships and lack of direct relationships across the hierarchy. For cascading slicers to work as expected (e.g., selecting a Manager filters the Supervisor slicer and then filters the Agent slicer), Power BI needs either a direct path of relationships or logic in the model that allows this filter context to propagate. A best practice in this scenario is to create a flattened hierarchy table (e.g., a bridge table or a view in your data source) that includes the Manager-Supervisor-Agent relationships in a denormalized structure. You can then connect this bridge table to each of the dimension tables using one-to-one or many-to-one relationships, and use it to filter the dimension slicers through DAX measures or calculated tables. Alternatively, you can use the *“field parameter”* feature in Power BI or write custom DAX using `TREATAS` and `SELECTEDVALUE` to simulate dynamic filtering across the slicers. This approach maintains the separate dimension tables for reporting flexibility while enabling slicers to reflect only relevant values based on upstream selections, thereby delivering the expected cascading filter experience in a user-friendly way.
Current Relationships (screenshot)
User | Count |
---|---|
84 | |
76 | |
74 | |
48 | |
39 |
User | Count |
---|---|
114 | |
56 | |
51 | |
42 | |
42 |