Forum Discussion

Joe_100's avatar
Joe_100
Helper I
8 years ago
Solved

Select multiple values from slicer for DAX formula

Hi all,

 

At the moment i have a what if parameter so the users can select a month in a slicer, that parameter will be used in another dax formula.

 

I generate 12 month numbers and select the value from the slicer with the following DAX

 

MonthParValue = SELECTEDVALUE(MonthParameter[MonthPar])

 

After that i use that value in the following dax to select on a month basis.

 

EstimateCurrentMonth = calculate(sum('Sales'[Estimate]);FILTER(ALL('Sales'[MonthNumber]);[MonthNumber] = 'MonthParameter'[MonthParValue]))

 

this is working fine, but only if i select one month. I see that the selectedvalue returns only one value.

 

How can i change this so i can select multiple values from the slicer?

 

Thanks!

  • Hey,

     

    I guess if you replace your estimation measure

    EstimateCurrentMonth = calculate(sum('Sales'[Estimate]);FILTER(ALL('Sales'[MonthNumber]);[MonthNumber] = 'MonthParameter'[MonthParValue]))

    with this

    EstimateCurrentMonth = 
    var selectedMonths = Values('MonthParameter'[MonthParValue])
    return
    calculate(
    	sum('Sales'[Estimate])
    	;FILTER(
    		ALL('Sales'[MonthNumber])
    		;[MonthNumber] IN selectedMonths
    	)
    )

    You are good to go.

     

    Please be aware that the variable selectedMonths contains a table and no loger a scalar value. You also have to make sure that the slicer with the Month numbers has to be enabled for multi selection

     

    Regards,

    Tom

  • Joe_100's avatar
    Joe_100
    8 years ago

    Hi TomMartens

     

    Thanks, but i think i fixed it fairly easily.

     

    I created a measure 

     

    IsFiltered = ISCROSSFILTERED(MonthParameter[MonthPar])

     

    In the other DAX a simple IF check seems to work fine..

     

    IF(MonthNamesNumbersAsVar[IsFiltered] = TRUE;
    calculate(..................

7 Replies

  • Hey,

     

    I guess if you replace your estimation measure

    EstimateCurrentMonth = calculate(sum('Sales'[Estimate]);FILTER(ALL('Sales'[MonthNumber]);[MonthNumber] = 'MonthParameter'[MonthParValue]))

    with this

    EstimateCurrentMonth = 
    var selectedMonths = Values('MonthParameter'[MonthParValue])
    return
    calculate(
    	sum('Sales'[Estimate])
    	;FILTER(
    		ALL('Sales'[MonthNumber])
    		;[MonthNumber] IN selectedMonths
    	)
    )

    You are good to go.

     

    Please be aware that the variable selectedMonths contains a table and no loger a scalar value. You also have to make sure that the slicer with the Month numbers has to be enabled for multi selection

     

    Regards,

    Tom

      • Joe_100's avatar
        Joe_100
        Helper I

        TomMartens

        One other question, i see that the slicer returns all values as default, how can i set it so the slicer returns "nothing"  as default?

  • Zubair_Muhammad's avatar
    Zubair_Muhammad
    Community Champion

    Joe_100

     

    Try with following

     

    EstimateCurrentMonth =
    CALCULATE (
        SUM ( 'Sales'[Estimate] ),
        FILTER (
            ALL ( 'Sales'[MonthNumber] ),
            [MonthNumber] IN VALUES ( 'MonthParameter'[MonthParValue] )
        )
    )