Forum Discussion

ThomasWeppler's avatar
ThomasWeppler
Impactful Individual
1 year ago
Solved

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.

 

  • hi ThomasWeppler 

     

    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

  • hi ThomasWeppler 

     

    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.

    • ThomasWeppler's avatar
      ThomasWeppler
      Impactful Individual

      Thanks danextian it works as a charm and solved my problem write a way.

      with a very short and elegant line of DAX.

  • 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)
    • ThomasWeppler's avatar
      ThomasWeppler
      Impactful 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.

       

      • vojtechsima's avatar
        vojtechsima
        Super 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.