Forum Discussion
Drill-through Not Working Between Pages Using Different Data Sources in Power BI
- 1 year ago
Thanks to johnbasha33 for always helping the community!
The drill-through doesn’t work because Power BI requires the same exact field from the same table (not just identical columns) to pass filter context between pages.
- Simple Fix:
Use the combined UNION ALL table as the main table for both report pages. Then, use that table’s fields (like CustomerID, etc.) for both the visuals and the drill-through target field.
Only fields from the same table can be used in drill-through — even if column names are identical across tables.
Hope this helps! If yes, please give kudos and accept as solution.
- Simple Fix:
Power BI Drill-Through Requirements:
-
The target page must have a drill-through field (e.g., Customer ID, Order Num) in the drill-through filter well.
-
The field in the source visual must come from the same table or lineage as the field in the target page.
Even if two columns are identical (in name and data type), if they come from different queries, Power BI will not pass the filter.
Correct Approach: Combined Table With Filtering
You were on the right path by using UNION ALL and creating a source_table column. Here’s how to refine this for working drill-through:
Create a Combined Table in Power Query or DAX
CombinedTable =
UNION (
SELECTCOLUMNS (
TableA,
"RecordID", TableA[RecordID],
"Customer", TableA[Customer],
...
"source_table", "A"
),
SELECTCOLUMNS (
TableB,
"RecordID", TableB[RecordID],
"Customer", TableB[Customer],
...
"source_table", "B"
)
)
Make sure all visuals on both pages use this CombinedTable only—not the original Table A or B directly.
Build Both Pages from the Combined Table
-
Main Page (Page 1): Use a report-level/page-level filter or slicer to show only
source_table = "A". -
Drill-through Page (Page 2): Set drill-through field from
CombinedTable(e.g.,RecordIDorCustomer) AND apply page-level filtersource_table = "B".
Now the filter context can travel with lineage from source to drill-through, because it’s all in the same table.
Test With a Simple Visual First
-
Create a visual on the main page using
CombinedTable[Customer]with filtersource_table = "A". -
Right-click and drill through to Page 2.
-
On Page 2, confirm:
-
Drill-through filter is active.
-
source_table = "B" filter is applied.
Alternative: Use Parameters and Dynamic Pages
If you want an even more flexible experience:
-
Create a parameter slicer to switch between
AandB.
Use that to control what data is shown in visuals, while still using the same Combined Table.
Did I answer your question? Mark my post as a solution! Appreciate your Kudos !!