Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Different DAX calculations based on selected values

Hi Community,
I am having an issue creating a measure to make different calculations depending on the cost center selected, below is a sample data

CC     Value
8031
1102
1203
8035

My logic is if 803 is selected on a cost center slicer, it would have a average calculation, if anything that is not 803, then sum of the cost center values. I created the measure below:

 

Test Measure = 
VAR selectedValues =
    VALUES ( Test[Cost Center] )
RETURN
    IF (
        CONTAINS ( selectedValues, Test[Cost Center], "803" ),
        CALCULATE ( SUM ( Test[Value] ), Test[Cost Center] <> "803" ) + CALCULATE ( AVG ( Test[Value] ), Test[Cost Center] = "803" ),
        CALCULATE ( SUM ( Test[Value] ) )
    )

 

This works fine if some values are selected in the slicer; however if none are selected or all values are selected, it would give the wrong calculation. Any directions or help would be really appreciated! 

  • Please try this:

    Test Measure = 
    VAR selectedValues =
        VALUES ('Table'[CC])
    RETURN
        IF (
            CONTAINS ( selectedValues, 'Table'[CC], 803 ),
            CALCULATE(AVERAGE('Table'[value]),ALLSELECTED('Table'[CC])),
            CALCULATE ( SUM ('Table'[value] ) )
        )

     

2 Replies

  • V-lianl-msft's avatar
    V-lianl-msft
    Icon for Community Support rankCommunity Support

    Please try this:

    Test Measure = 
    VAR selectedValues =
        VALUES ('Table'[CC])
    RETURN
        IF (
            CONTAINS ( selectedValues, 'Table'[CC], 803 ),
            CALCULATE(AVERAGE('Table'[value]),ALLSELECTED('Table'[CC])),
            CALCULATE ( SUM ('Table'[value] ) )
        )

     

  • littlemojopuppy's avatar
    littlemojopuppy
    Icon for Community Champion rankCommunity Champion

    Try something along the lines of IF(SELECTEDVALUE(CostCenter) = 803, [do something], [do something else])