Перейти к содержанию

DAX (типовые экономические задачи)/Расчёт категорий ABC при наличии убыточных товаров

Материал из Викиучебника — открытых книг для открытого мира
Margin:=SUM ( 'Продажи'[Маржа] )
TotalMargin:=
CALCULATE (
    SUM ( 'Продажи'[Маржа] );
    ALL ( 'Продажи'[Товар] )
)
MarginCumulative:=
VAR CurrentMargin = [Margin]
RETURN CALCULATE (
    [Margin];
    FILTER (
        ALL ( 'Продажи'[Товар] );
        CALCULATE ( [Margin] ) >= CurrentMargin
    )
)
MarginCumulativePct:=DIVIDE ( [MarginCumulative]; [TotalMargin] )
MaxMarginCumulativePct:=
VAR AllProducts = ALL ( 'Продажи'[Товар] )
RETURN 
MAXX (
    AllProducts;
    CALCULATE ( [MarginCumulativePct] )
)
NormalizedMarginCumulativePct:=
DIVIDE (
    [MarginCumulativePct] ;
    [MaxMarginCumulativePct]
)
ABC_Class:=
VAR Pct = [NormalizedMarginCumulativePct]
VAR M = [Margin]
RETURN 
SWITCH (
    TRUE();
    ISBLANK ( M ); "Н";          // неопределённая маржа
    M < 0; "У";                  // убыточный товар
    Pct <= 0,8; "A";             // категория A
    Pct <= 0,95; "B";            // категория B
    "C"                          // всё остальное — категория C
)