Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hi,
I have a dataset of the following structure:
Benchmark ID | Security ID |
ID1 | SID1 |
ID1 | SID2 |
ID2 | SID3 |
ID2 | SID4 |
ID2 | SID1 |
I am looking for a way for user to select two benchmark id's from a slicer and then have a visual that highlights the security id's that are unique to each. For example the output from the dataset above would be something like:
Benchmark ID | Security ID |
ID1 | SID2 |
ID2 | SID3 |
ID2 | SID4 |
Is what I am describing possible? The solution requires users to be able to compare any two benchmark ID's using a slicer.
Thanks,
Ben
Solved! Go to Solution.
I don't think its possible to do exactly what you're looking for, as a measure can only return a single value, but it is possible to produce a comma separated list of the unique values, like
To do this, create 2 disconnected tables Slicer 1 and Slicer 2 and then create a measure Unique SIDs using the below
Slicer 1 = VALUES(Benchmark[Benchmark ID])
Slicer 2 = VALUES(Benchmark[Benchmark ID])
Unique SIDs =
var slicer1Values = CALCULATETABLE( VALUES(Benchmark[Security ID]), TREATAS( VALUES('Slicer 1'[Benchmark ID]),Benchmark[Benchmark ID]))
var slicer2Values = CALCULATETABLE( VALUES(Benchmark[Security ID]), TREATAS( VALUES('Slicer 2'[Benchmark ID]),Benchmark[Benchmark ID]))
return IF( SELECTEDVALUE(Benchmark[Benchmark ID]) = SELECTEDVALUE('Slicer 1'[Benchmark ID]),
CONCATENATEX( EXCEPT(slicer1Values, slicer2Values), [Security ID], ", "),
IF( SELECTEDVALUE(Benchmark[Benchmark ID]) = SELECTEDVALUE('Slicer 2'[Benchmark ID]),
CONCATENATEX( EXCEPT(slicer2Values, slicer1Values), [Security ID], ", ")
)
)
hi @Anonymous
Yes possible
Filter Measure =
VAR Duplicates =
CALCULATETABLE ( Data, ALLEXCEPT ( Data,Data[Security ID] ) )
VAR Result =
COUNTROWS ( Duplicates )
RETURN
Result
Just place it in the filter pane and select "Is" and insert value "1"
I don't think its possible to do exactly what you're looking for, as a measure can only return a single value, but it is possible to produce a comma separated list of the unique values, like
To do this, create 2 disconnected tables Slicer 1 and Slicer 2 and then create a measure Unique SIDs using the below
Slicer 1 = VALUES(Benchmark[Benchmark ID])
Slicer 2 = VALUES(Benchmark[Benchmark ID])
Unique SIDs =
var slicer1Values = CALCULATETABLE( VALUES(Benchmark[Security ID]), TREATAS( VALUES('Slicer 1'[Benchmark ID]),Benchmark[Benchmark ID]))
var slicer2Values = CALCULATETABLE( VALUES(Benchmark[Security ID]), TREATAS( VALUES('Slicer 2'[Benchmark ID]),Benchmark[Benchmark ID]))
return IF( SELECTEDVALUE(Benchmark[Benchmark ID]) = SELECTEDVALUE('Slicer 1'[Benchmark ID]),
CONCATENATEX( EXCEPT(slicer1Values, slicer2Values), [Security ID], ", "),
IF( SELECTEDVALUE(Benchmark[Benchmark ID]) = SELECTEDVALUE('Slicer 2'[Benchmark ID]),
CONCATENATEX( EXCEPT(slicer2Values, slicer1Values), [Security ID], ", ")
)
)
Hi @johnt75 ,
Thank you so much for that solution! I've spent days trying to find a solution to this problem myself and I really appreciate the your help.
Have a great day.
Thanks,
Ben
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
14 | |
9 | |
7 | |
7 | |
6 |
User | Count |
---|---|
21 | |
11 | |
10 | |
9 | |
8 |