Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
My data source that I use for a lot of my reporting allows the end users to select multiple options for various fields.
For example there is a client impacted field. We have a list of important clients such as Apple, Microsoft, X, Uber, Skip.
One Ticket might only impact Apple while the other might impact Apple, X, Uber.
Now when I want to filter this report I get options like:
Apple
Apple, X, Uber
Microsoft
Microsoft , Skip
ETC.
I want the drop down to be clean and just show the list of clients and then be smart enough that if I select Apple it will show me all of the tickets that have Apple as a client whether its by itself or with other clients.
Filter Apple shows:
Apple
Apple, X, Uber.
I have been duplicating my datasets and splitting the column by delimiter to get the cleaned filtering list but this is resulting in duplicate data everywhere since splitting by delimiter duplicates the ticket lines.
I can't do a filter that is like IF Apple exists = True because then I would have a filter for each client and that is terribly ugly.
Any suggestions?
Solved! Go to Solution.
Hi @AmberJane ,
It is caused by the filter context, you can create a measure as below to get the count of incidents which fulfill the requirement:
# of Incidents =
VAR _selcausedby =
SELECTEDVALUE ( 'Caused by'[Caused by] )
RETURN
CALCULATE (
COUNT ( 'Table'[ID] ),
FILTER ( 'Table', SEARCH ( _selcausedby, 'Table'[Caused by], 1, 0 ) > 0 )
)
Best Regards
Hi @AmberJane ,
I got what you're trying to do—clean up the filtering.
Here’s a cleaner solution that avoids duplicating data and creating an ugly filter setup:
Instead of splitting by delimiter and creating duplicates, you can unpivot your client data so each client gets its own row for every ticket. This way, Apple, X, Uber will have three separate rows: one for Apple, one for X, and one for Uber.
This way, you won’t have to deal with long concatenated strings, and filtering by Apple will work correctly because Apple will now appear in a separate row for each impacted ticket.
After unpivoting, you can create a relationship between the ticket data (which will now have multiple rows per ticket for each client) and a new Client Table that contains the unique list of clients (like Apple, Microsoft, etc.).
For example:
This way, when you filter on Apple in your report, Power BI will show all tickets that have Apple—whether Apple is the only client listed or part of a multi-client combination.
Now you can create a slicer using your Client Table. The slicer will show only the clean list of clients (Apple, Microsoft, etc.), and when you select Apple, it will automatically show all tickets where Apple is present, even if there are other clients listed in the same ticket.
If you want more flexibility, you can add a DAX measure that checks if a specific client (like Apple) appears in any of the tickets and return the corresponding result. But, typically, the unpivot approach should give you a clean and scalable solution.
Please mark this as solution if it helps you, Appreciate Kudos.
How is Unpivot the Data to Normalize Client Listings different from splitting by delimiter? When I split by delimter I get one row for each client ticket which effectively duplicates the data.
Dear @AmberJane ,
The key difference between unpivoting the data and splitting by delimiter lies in how the data is structured and how the relationships between the data are managed:
When you split the client field by a delimiter (e.g., a comma), you essentially create multiple rows for a single ticket, each containing one of the clients. But the ticket information is duplicated across these rows, meaning the rest of the ticket data (like ticket ID, issue description, etc.) is repeated for each client. This creates a lot of redundancy in your dataset, which can lead to bloated data and potential performance issues.
For example, if one ticket impacts three clients (Apple, X, Uber), splitting the column by delimiter results in three rows for that single ticket, which includes redundant information in every row (ticket ID, issue description, etc.). Filtering becomes messy because you’re working with redundant rows, and you might run into problems like aggregating data (such as summing the number of tickets) since you have duplicates.
When you unpivot the data, you're reshaping it in a more structured way, without duplicating any ticket data unnecessarily. Instead of splitting and repeating ticket information for every client, you're creating a new row only for the client, keeping the ticket-level information intact.
For example, if a ticket impacts three clients (Apple, X, Uber), unpivoting would give you three separate rows:
Each of these rows would still reference the same ticket, but you wouldn’t have the full redundancy of the ticket information being repeated three times. The unpivoted structure is cleaner and doesn’t lead to excessive duplication, making it much easier to filter and aggregate data later on.
Please mark this post as solution if it helps you. Appreciate Kudos.
Good Morning Farhan,
Any feedback on my last response? I am unsure how to use the unpivot with this dataset.
Thank you,
This sounds like exactly what I need but I am playing with unpivot and getting nothing. Here is what my dataset looks like:
With my mock data I am using caused by and not client. Sorry for the confusion but the same issue applies.
Hi @AmberJane ,
I created a sample pbix file(see the attachment), please check if that is what you want.
Best Regards
This worked with the table I have but its not working with other reports. For example I have a card that just shows the # of incidents and I cannot add that flag to the filter for the card.
Hi @AmberJane ,
It is caused by the filter context, you can create a measure as below to get the count of incidents which fulfill the requirement:
# of Incidents =
VAR _selcausedby =
SELECTEDVALUE ( 'Caused by'[Caused by] )
RETURN
CALCULATE (
COUNT ( 'Table'[ID] ),
FILTER ( 'Table', SEARCH ( _selcausedby, 'Table'[Caused by], 1, 0 ) > 0 )
)
Best Regards
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the October 2025 Power BI update to learn about new features.