Forum Discussion

guruscz's avatar
guruscz
Frequent Visitor
1 year ago
Solved

Non additive measure - advanced weighted average

Hi all,    I am building weighted average based on several conditions. Below is the measure which is calculationg the weighted average of power based on real generation of power plant which is in p...
  • guruscz's avatar
    1 year ago

    In the end I fix the problem it was all coming from diff calculation. So I had to split the diff calculation like below

    VAR hedge_volume = 
            SUMX(
                FILTER(DealGroupPWR, NOT DealGroupPWR[StrategyID] IN {1, 2, 3}),
                DealGroupPWR[GROUP_TotalVolumeMW])
    VAR real_generation = 
            SUMX(
                FILTER(DealGroupPWR, DealGroupPWR[StrategyID] IN {1, 2, 3}),
                DealGroupPWR[GenerationHedgeVolume])
    
    VAR diff = 
            IF(real_generation = 0, 0, real_generation - hedge_volume)
    RETURN
        IF(HASONEVALUE('delivery date'[date]), diff, 
            SUMX(
                VALUES('delivery date'[date]),
                IF(
                    CALCULATE(SUMX(FILTER(DealGroupPWR, DealGroupPWR[StrategyID] IN {1, 2, 3}), DealGroupPWR[GenerationHedgeVolume])) = 0,
                    0, 
                    -- real generation condition
                    CALCULATE(SUMX(FILTER(DealGroupPWR, DealGroupPWR[StrategyID] IN {1, 2, 3}), DealGroupPWR[GenerationHedgeVolume])) - 
                    -- real generation volume
                    CALCULATE(SUMX(FILTER(DealGroupPWR, NOT DealGroupPWR[StrategyID] IN {1, 2, 3}), DealGroupPWR[GROUP_TotalVolumeMW]))
                )   -- hedge volume
            )
        )