Forum Discussion

Chmielo's avatar
Chmielo
Frequent Visitor
5 years ago
Solved

Calculations based on a specific value in the range

Hi,
I need to create a column based on the difference from column "Value", and the average value of the date range given in slicer. For example:
Actual Table

DateValue
2021-01-01 5
2021-01-02 10
2021-01-03 15
2021-01-04 20

In the slicer we selected the date range from '2021-01-01' to '2021-01-03' - The average for this interval is 10. My main problem is that I cannot use this value as a 'constant' (as in excel by using $). The new column should look like this:

DateValueNew Col
2021-01-01 5 (5-10)^2
2021-01-02 10  (10-10)^2
2021-01-03 15  (15-10)^2
2021-01-04 20?BLANK()? OR (20-10)^2 (but its important that the average is only calculated from the slicer)

If we select another day in the slicer, the average is 12.5 and a new column should be calculated based on this value. For first day (5-12,5)^2 etc. I tried something like this but without any positive result:

x = AVERAGEX('TABLE',POWER('TABLE'[Value]-(CALCULATE(AVERAGE('TABLE'[Value]),DATESBETWEEN('Calendar Table'[Date],MIN('Calendar Table'[Date]),MAX('Calendar Table'[Date])))),2)) - Date from Calendar Table is used in the slicer. 

  • Chmielo 

    You can create a measure for this because a calculated column cannot access the values selected in the slicer. 

    New Value = 
    
    var _avg = CALCULATE( AVERAGE(Table1[Value]), ALLSELECTED(Table1[Date]) )
    var _value = 
        AVERAGEX(
            Table1,
            (Table1[Value] - _avg ) ^ 2
        )
    
    return
        _value
    

     

     

     

1 Reply

  • Chmielo 

    You can create a measure for this because a calculated column cannot access the values selected in the slicer. 

    New Value = 
    
    var _avg = CALCULATE( AVERAGE(Table1[Value]), ALLSELECTED(Table1[Date]) )
    var _value = 
        AVERAGEX(
            Table1,
            (Table1[Value] - _avg ) ^ 2
        )
    
    return
        _value