Forum Discussion
Selectedvalue() doesn't work when multiple options are selected
Hi Power BI community
I have a filter that can choose between three options called A,B and C
When I write this DAX code
Status = IF(SelectedValue(table[status]) = "A",1,0)
Then I get 1 if A is the selected value, but if A and B are selected or all options are selected then I get 0
I need to get the value 1 as long as A is one of the selected options regardless og what else I have selected.
All help is greatly appreciated.
SELECTEDVALUE by default always returns blank if more than one values are visible (two or emore selected, or none selected which is equivalent to all). To check whether A is in the selected values. try
-- Returns 1 if "A" is present in visible rows of 'table'[status] , otherwise returns 0 IF ( "A" IN VALUES ( 'table'[status] ), 1, 0 )This will, of course, naturally return 0 if A is not among the selected values.
5 Replies
- danextianSuper User
SELECTEDVALUE by default always returns blank if more than one values are visible (two or emore selected, or none selected which is equivalent to all). To check whether A is in the selected values. try
-- Returns 1 if "A" is present in visible rows of 'table'[status] , otherwise returns 0 IF ( "A" IN VALUES ( 'table'[status] ), 1, 0 )This will, of course, naturally return 0 if A is not among the selected values.
- ThomasWepplerImpactful Individual
Thanks danextian it works as a charm and solved my problem write a way.
with a very short and elegant line of DAX.
- vojtechsimaSuper User
Hey, ThomasWeppler
selectedvalue always return blank if there's multuple values selected, however, you can modify the behavior with optional parameter:
IF(SELECTEDVALUE(table[status], "A") = "A",1,0)- ThomasWepplerImpactful Individual
vojtechsima thanks for the answer, but if I just use
IF(SELECTEDVALUE(table[status], "A") = "A",1,0)
and the selected selectedvalues are "B" and "C" than I will still get a false positive.
- vojtechsimaSuper User
ThomasWeppler all right, get it now,
then use CONCATENATEX
IF( CONTAINSSTRING( CONCATENATEX(VALUES(_table[status]), _table[status],""), "A"), 1, 0 )but danextian 's solution is better, cleaner and efficient.