Forum Discussion
Tooltip Filter Context with Slicer on Report Page
Sample Report PBIX: TooltipSlicerExampleReport.pbix
I have a report page with a visual and a date slicer.
The date table has dates from 1/1/2024 to today (2/6/2026). The slicer has sliced from 3/1/2025 to 11/30/2025.
I have created a tooltip, and would like to calculate the cumulative value of my measure. To do that, I need to know the start date and end date to filter that measure.
I can't figure out how to get both the start date (from the slicer) and the end date (from the visual). I have created this measure to show me lots of date options:
Debug Tooltip Dates =
VAR MinDate =
MIN ( 'DimDate'[Date] )
VAR MaxDate =
MAX ( 'DimDate'[Date] )
VAR AllSelectedMinDate =
CALCULATE (
MIN ( 'DimDate'[Date] ),
ALLSELECTED ( 'DimDate' )
)
VAR AllSelectedMaxDate =
CALCULATE (
MAX ( 'DimDate'[Date] ),
ALLSELECTED ( 'DimDate' )
)
VAR AllMinDate =
CALCULATE(
FIRSTDATE('DimDate'[Date]),
REMOVEFILTERS('DimDate')
)
VAR AllMaxDate =
CALCULATE(
LASTDATE('DimDate'[Date]),
REMOVEFILTERS('DimDate')
)
RETURN
" MinDate = " & FORMAT ( MinDate, "yyyy-MM-dd" )
& UNICHAR(10) & " MaxDate = " & FORMAT ( MaxDate, "yyyy-MM-dd" )
& UNICHAR(10) & " AllSelectedMinDate = " & FORMAT ( AllSelectedMinDate, "yyyy-MM-dd" )
& UNICHAR(10) & " AllSelectedMaxDate = " & FORMAT ( AllSelectedMaxDate, "yyyy-MM-dd" )
& UNICHAR(10) & " AllMinDate = " & FORMAT ( AllMinDate, "yyyy-MM-dd" )
& UNICHAR(10) & " AllMaxDate = " & FORMAT ( AllMaxDate, "yyyy-MM-dd" )If I select "Keep all filters" on the tooltip, I get just the hover value, respectively:
If I turn "Keep all filters" off, then I get the slicer values, but no hover value:
In both cases REMOVEFILTERS('DimDate') gives me the whole date table with no filters at all.
Is there a way to get both the filters from the slicer and the filters from the visual independently?
Solution File Link: TooltipSlicerExampleReport-Solution.pbix
Thanks for this suggestion. Unfortunately I need the slicer to slice the visual itself. If it is disconnected, this alone won't do that.
Copilot suggested the disconnected slicer table idea as well.
I was able to cobble together a working model using a disconnected slicer table as one part of the solution, but it doesn't leave a good taste in my mouth. Here's what I did:
1. I created a disconnected date table SlicerDate:SlicerDate = CALENDAR ( FIRSTDATE('DimDate'[Date]), LASTDATE('DimDate'[Date]) )
2. I created a new measure for my chart visual using TREATAS() to copy the filter from SlicerDate to DimDate,Number of Days (Slicer Version) = CALCULATE ( [Number of Days], TREATAS ( SlicerDate, 'DimDate'[Date] )3. I then tied my slicer to the disconnected date table 'SlicerDate'.
4. For the cumulative measure, I had to clear the filters on DimDate applied in the original measure with TREATAS(), and then limit them to StartDate and EndDate, like so:Cumulative Days = VAR StartDate = [Slicer Start Date] VAR EndDate = [Hover Date] VAR CumulativeDays = CALCULATE ( [Number of Days], FILTER( ALL(DimDate), 'DimDate'[Date] >= StartDate && 'DimDate'[Date] <= EndDate ) ) RETURN CumulativeDaysNow it behaves as expected:
The only issue that I have is that if I want to add anything else on this page, or sync any slicers on other pages, I have to do this repeatedly for each measure (i.e., create a "slicer version" with TREATAS() ).
PREFERRED SOLUTION: Calculation Groups
1. I could use a calculation group, to eliminate the extra slicer measures.Slicer Version = CALCULATE ( SELECTEDMEASURE(), TREATAS ( SlicerDate, 'DimDate'[Date] ) )
2. Reassign the slicer to the disconnected 'SlicerDate' table.
3. Add this calculation group to the legend of the chart visual, and it behaves as expected:
The calculation group is probably the way to go. It's a bit clunky, but it works, and I guess that's the important thing.
I posted a sample PBIX with the original problem and both solutions at the top of the page.
Thanks,Andy
3 Replies
- Jaywant-Thorat
Super User
Hi
This is an excellent, advanced DAX question — and you’ve actually discovered a real limitation in Power BI tooltip filter propagation. Let me explain why this happens and then give you the correct, supported pattern to solve it.
🧠 First: Why your current approach fails (by design)
In a report-page tooltip, Power BI has two different filter pipelines:
1️⃣ Visual hover context
-
Comes from the data point you hover (Month = July 2025)
This is a single-date / narrow context
2️⃣ Page-level slicer context
-
Comes from the slicer (Mar–Nov 2025)
This is a range filter
🚨 Critical rule
Power BI does not expose slicer and hover filters independently inside a tooltip. So:
| Tooltip setting | What survives |
| -------------------------- | ------------------------ |
| **Keep all filters = ON** | Hover context only |
| **Keep all filters = OFF** | Page slicer context only |That’s why:
-
MIN('DimDate'[Date]) flips -
ALLSELECTED() flips -
REMOVEFILTERS() always returns full table
This is expected behavior, not a bug.
❌ What is NOT possible (important to accept)
There is NO DAX function that can say: “Give me slicer start date AND hover date separately”.
Power BI simply doesn’t pass both at the same time.
✅ The Correct Solution (Microsoft-supported pattern)
👉 Decouple the slicer from the tooltip entirely and rebuild the logic inside DAX.
This is the only reliable approach.
🟢 Step 1: Capture slicer dates using a disconnected table
Create a Disconnected Slicer Date table:
---DAX---
SlicerDate = CALENDAR ( DATE(2024,1,1), DATE(2026,12,31) )---DAX---❗ Do NOT relate this table to your model.
Use SlicerDate[Date] in your slicer
👉 NOTDimDate[Date]🟢 Step 2: Capture slicer start & end explicitly
---DAX---
Slicer Start Date = MIN ( SlicerDate[Date] ) Slicer End Date = MAX ( SlicerDate[Date] )---DAX---
✔ These measures now always return slicer values
✔ Tooltip setting no longer matters
🟢 Step 3: Capture hover date from the visual
This still comes from
DimDate:---DAX---
Hover Date := MAX ( DimDate[Date] )---DAX---
✔ This is the end date from the hovered column
🟢 Step 4: Cumulative measure using BOTH dates
---DAX---
Cumulative Value Tooltip := VAR StartDate = [Slicer Start Date] VAR EndDate = [Hover Date] RETURN CALCULATE ( [Your Base Measure], DimDate[Date] >= StartDate, DimDate[Date] <= EndDate )---DAX---🎯 This is the key fix
You now have:
-
Start date → slicer
-
End date → hover
-
Both available simultaneously
📌 Tooltip Settings (Important)
-
Tooltip page → Keep all filters = ON
-
Because slicer is now disconnected, it won’t get overridden
=================================================================
Did I answer your question? Mark my post as a solution! This will help others on the forum!Appreciate your Kudos!!
Jaywant Thorat | MCT | Data Analytics Coach
LinkedIn: https://www.linkedin.com/in/jaywantthorat/
Join #MissionPowerBIBharat: https://tinyurl.com/JoinMissionPowerBIBharat
#MissionPowerBIBharat
LIVE with Jaywant Thorat -
- andyparkerson
Advocate III
Solution File Link: TooltipSlicerExampleReport-Solution.pbix
Thanks for this suggestion. Unfortunately I need the slicer to slice the visual itself. If it is disconnected, this alone won't do that.
Copilot suggested the disconnected slicer table idea as well.
I was able to cobble together a working model using a disconnected slicer table as one part of the solution, but it doesn't leave a good taste in my mouth. Here's what I did:
1. I created a disconnected date table SlicerDate:SlicerDate = CALENDAR ( FIRSTDATE('DimDate'[Date]), LASTDATE('DimDate'[Date]) )
2. I created a new measure for my chart visual using TREATAS() to copy the filter from SlicerDate to DimDate,Number of Days (Slicer Version) = CALCULATE ( [Number of Days], TREATAS ( SlicerDate, 'DimDate'[Date] )3. I then tied my slicer to the disconnected date table 'SlicerDate'.
4. For the cumulative measure, I had to clear the filters on DimDate applied in the original measure with TREATAS(), and then limit them to StartDate and EndDate, like so:Cumulative Days = VAR StartDate = [Slicer Start Date] VAR EndDate = [Hover Date] VAR CumulativeDays = CALCULATE ( [Number of Days], FILTER( ALL(DimDate), 'DimDate'[Date] >= StartDate && 'DimDate'[Date] <= EndDate ) ) RETURN CumulativeDaysNow it behaves as expected:
The only issue that I have is that if I want to add anything else on this page, or sync any slicers on other pages, I have to do this repeatedly for each measure (i.e., create a "slicer version" with TREATAS() ).
PREFERRED SOLUTION: Calculation Groups
1. I could use a calculation group, to eliminate the extra slicer measures.Slicer Version = CALCULATE ( SELECTEDMEASURE(), TREATAS ( SlicerDate, 'DimDate'[Date] ) )
2. Reassign the slicer to the disconnected 'SlicerDate' table.
3. Add this calculation group to the legend of the chart visual, and it behaves as expected:
The calculation group is probably the way to go. It's a bit clunky, but it works, and I guess that's the important thing.
I posted a sample PBIX with the original problem and both solutions at the top of the page.
Thanks,Andy
- v-pnaroju-msft
Community Support
Thankyou, Jaywant-Thorat for your response.
Hi andyparkerson,We are pleased to note that your issue has been resolved. Thank you for sharing your insights and approach in resolving the issue, which will be beneficial to other members of the community. Should you have any further queries, please feel free to contact the Microsoft Fabric community.
Thank you.