The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends September 15. Request your voucher.
Hello all!
I'm creating a KPI view of logistic performance. I'm using multiple donut-charts as below:
I want to create an extra functionality, so that the user can click on each donut chart to add it to the filters. The donuts itself are not interacting with eachother.
My first thought was to overlay a full transparent button slicer but I want to have the color of the donut appear slightly when selected. But the problem is, I can not apply color settings per series, as my data for the slicer is in one column.
My second thought was to create said transparent slicer for each donut, but then the problem is, multiple slicers operate via 'and' and not 'or' (as far as I know).
Does anyone know another way, or improve mine, to arrange this?
My last option is to just use one slicer without the corresponding color, but this is not preferred.
If you need more info, feel free to ask!
Thank you in advance!
Solved! Go to Solution.
hi @bnjmnnl
Create a measure that produces SVG code for use with a tile slicer. You can leverage AI to help generate it, though it may require several iterations to refine the result to your preference (to the point that it starts to hallucinate). Please see the attached sample pbix.
Hi @bnjmnnl,
Thank you for posting your query in the Microsoft Fabric Community Forum, and thanks to @danextian for sharing valuable insights.
Could you please confirm if your query has been resolved by the provided solutions? This would be helpful for other members who may encounter similar issues.
Thank you for being part of the Microsoft Fabric Community.
hi @bnjmnnl
Create a measure that produces SVG code for use with a tile slicer. You can leverage AI to help generate it, though it may require several iterations to refine the result to your preference (to the point that it starts to hallucinate). Please see the attached sample pbix.
Hey @bnjmnnl,
Here's a possible solution approach for your KPI view, keeping in mind your desire for interactive donut charts and a user-friendly experience:
Approach 1: Using Bookmarks and Transparent Buttons (Recommended for Visuals)
Create Individual Buttons: For each donut chart, create a transparent button that perfectly overlays the colored segment of the donut.
Define Bookmarks: For each donut segment that you want to be selectable, create a separate bookmark. This bookmark should filter your data to show only the selected category (e.g., "Loading," "Delivery").
Assign Bookmarks to Buttons: Assign the corresponding bookmark to each transparent button's "Action" property. Set the "Type" to "Bookmark."
Conditional Formatting for Button Colors: This is where you achieve the "slight color appearance." You'll need to use DAX measures to determine if a specific category is currently selected.
Create a measure (e.g., IsLoadingSelected = IF(SELECTEDVALUE(YourTable[Category]) = "Loading", 1, 0)).
Use this measure in the conditional formatting for the button's fill color. When the measure is 1, apply a slightly darker or more opaque version of your donut's segment color. When it's 0, keep it fully transparent.
"OR" Logic: When the user clicks on different buttons, the bookmarks will apply the filters independently, effectively creating an "OR" operation. Each new click will apply a new filter, and you can add a "Clear Filters" button if needed.
Approach 2: Single Slicer with Conditional Formatting (Less Visual, but Good for Data)
Create a Standard Slicer: Use a regular slicer visual with your "Category" (Loading, Delivery, Pick up, Drop off) column.
Conditional Formatting for Slicer Items: Apply conditional formatting to the background color of the slicer items. This will require a DAX measure that checks SELECTEDVALUE(YourTable[Category]) and returns the appropriate color code based on the selected category.
"OR" Logic: Standard slicers inherently work with an "OR" logic when multiple items are selected (unless you're using "Single Select").
Key Considerations:
Data Structure: Ensure your data model has a clear category column (e.g., 'Status' or 'Activity Type') that corresponds to your donut segments.
Clear Selection Indicator: Beyond the button color, consider adding a small text box or icon that appears when a filter is active to explicitly show the user what's selected.
User Experience: Make sure the interactive areas are large enough for easy clicking, especially on touch devices.
Fixed? ✓ Mark it • Share it • Help others!
Best Regards,
Jainesh Poojara | Power BI Developer
Hi @bnjmnnl ,
Your challenge is creating interactive donut charts that act like slicers with visual feedback. You're right that multiple slicers work with AND logic, not OR, which complicates things.
Best approach - Bookmarks + Buttons:
Instead of actual slicers, use invisible buttons over each donut:
For the color feedback: Create a measure that detects which "mode" is active:
Selected Mode = IF( ISFILTERED(YourTable[Category]) && SELECTEDVALUE(YourTable[Category]) = "Loading", "Loading", IF(...) // repeat for other categories )
Use this measure for conditional formatting on your donuts to show the "selected" state.
Alternative - Single slicer with custom formatting: Create one slicer but use DAX measures to control the donut colors based on the slicer selection. You can make different measures for each donut that react to the slicer state.
Hybrid approach: Use a single hidden slicer for the actual filtering, then use your transparent buttons to programmatically set that slicer's value via bookmarks. This gives you both the OR logic and the visual feedback you want.
The bookmark approach gives you the most control over both the filtering behavior and the visual feedback.
If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.
This response was assisted by AI for translation and formatting purposes.
Maybe I did not explain enough, my mistake. But the user must be able to select more slicers. When using bookmarks, would that not filter from, e.g., 'Loading' to 'Delivery' instead of adding delivery to loading?
you explained it but you know the reason why with the kind of reply.
@bnjmnnl ,
You're absolutely right - bookmarks would just switch between filters, not add them together.
For multiple selections with OR logic:
The easiest fix is using one multi-select slicer instead of separate ones, then make your donuts react to what's selected:
Donut Opacity = IF( SELECTEDVALUE(YourTable[Category]) IN VALUES(YourSlicer[Category]), 1, // Full brightness when selected 0.3 // Faded when not selected )
Apply this to your donut conditional formatting so selected categories stay bright and unselected ones fade out.
Why separate slicers don't work: Power BI always uses AND logic between different slicers - there's no way to make them do OR. You'd need all conditions to be true simultaneously, which isn't what you want.
Alternative if you hate the single slicer idea: Use buttons that modify URL parameters or write to a hidden table, but that gets complicated fast.
The single multi-select slicer is honestly your cleanest option. Style it to look like buttons if you want, but functionally it'll give you the OR behavior you need.
If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.
This response was assisted by AI for translation and formatting purposes.