Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Assign VALUES to VAR from SWITCH statement

In DAX I want to assign different values to a VAR based on another measure. My idea was to use a switch but it doesn't work:   Intended_Measure := VAR Test = SWITCH( [SelectMeasure],1,VALUES(TABLE...
  • AlB's avatar
    AlB
    7 years ago

    Anonymous

     

    You're right. It seems IF returns a scalar too. I would then try one of the following. In any case, I'd also be interested in seeing other approaches. Does anyone have other ideas?  It might be a good idea to open up another thread asking for them.

     

    Intended_Measure :=
    VAR Test1 =
        VALUES ( TABLE[Column1] )
    VAR Test2 =
        VALUES ( TABLE[Column2] )
    RETURN
        IF (
            [SelectMeasure] = 1,
            CALCULATE (SUM ( [Measure] ), FILTER ( OTHERTABLE, OTHERTABLE[Columnx] IN Test1 )
            ),
            IF (
                [SelectMeasure] = 2,
                CALCULATE (SUM ( [Measure] ), FILTER ( OTHERTABLE, OTHERTABLE[Columnx] IN Test2 )
                )
            )
        )

    or without the VARs:

     

    Intended_Measure :=
    IF (
        [SelectMeasure] = 1,
        CALCULATE (SUM ( [Measure] ), FILTER ( OTHERTABLE, OTHERTABLE[Columnx] IN VALUES ( TABLE[Column1] ) )
        ),
        IF (
            [SelectMeasure] = 2,
            CALCULATE (SUM ( [Measure] ), FILTER ( OTHERTABLE, OTHERTABLE[Columnx] IN VALUES ( TABLE[Column2] ) )
            )
        )
    )