Forum Discussion

lokosrio's avatar
lokosrio
Helper II
3 years ago
Solved

Calculation at higher level

hi,   I have a calculation like below:     KPI = SWITCH ( MAX ( 'Fact'[Color] ), "Green", 1, "Grey", 0, "Red", -1 )     For each line I have assigned a color (green, grey or red), so it loo...
  • johnt75's avatar
    3 years ago

    I think this will work

    Green Factor =
    SWITCH (
        TRUE (),
        ISINSCOPE ( 'Table'[Line ID] ), [KPI],
        ISINSCOPE ( 'Table'[Department ID] ),
            VAR summaryTable =
                ADDCOLUMNS ( VALUES ( 'Table'[Line ID] ), "@val", [KPI] )
            VAR val1 =
                MINX ( summaryTable, [@val] )
            VAR val2 =
                MAXX ( summaryTable, [@val] )
            VAR result =
                CALCULATE (
                    MAX ( 'Aggregation table'[Aggregation] ),
                    TREATAS (
                        { val1, val2 },
                        'Aggregation table'[Value 1],
                        'Aggregation table'[Value 2]
                    )
                )
            RETURN
                result,
        ISINSCOPE ( 'Table'[Area ID] ),
            VAR summaryTable =
                ADDCOLUMNS ( VALUES ( 'Table'[Department ID] ), "@val", [KPI] )
            VAR val1 =
                MINX ( summaryTable, [@val] )
            VAR val2 =
                MAXX ( summaryTable, [@val] )
            VAR result =
                CALCULATE (
                    MAX ( 'Aggregation table'[Aggregation] ),
                    TREATAS (
                        { val1, val2 },
                        'Aggregation table'[Value 1],
                        'Aggregation table'[Value 2]
                    )
                )
            RETURN
                result,
        ISINSCOPE ( 'Table'[Site ID] ),
            VAR summaryTable =
                ADDCOLUMNS ( VALUES ( 'Table'[Area ID] ), "@val", [KPI] )
            VAR val1 =
                MINX ( summaryTable, [@val] )
            VAR val2 =
                MAXX ( summaryTable, [@val] )
            VAR result =
                CALCULATE (
                    MAX ( 'Aggregation table'[Aggregation] ),
                    TREATAS (
                        { val1, val2 },
                        'Aggregation table'[Value 1],
                        'Aggregation table'[Value 2]
                    )
                )
            RETURN
                result,
        VAR summaryTable =
            ADDCOLUMNS ( VALUES ( 'Table'[Site ID] ), "@val", [KPI] )
        VAR val1 =
            MINX ( summaryTable, [@val] )
        VAR val2 =
            MAXX ( summaryTable, [@val] )
        VAR result =
            CALCULATE (
                MAX ( 'Aggregation table'[Aggregation] ),
                TREATAS (
                    { val1, val2 },
                    'Aggregation table'[Value 1],
                    'Aggregation table'[Value 2]
                )
            )
        RETURN
            result
    )