dynamische ABC Analyse DAX ALLEXCEPT, EARLIER, SWITCH


weiterführende Informationen siehe Daxpatterns, Gerhard Brückls BI Blog

Tabellenstruktur:

Tabellenname = EVOJeArtikel
Struktur (Spalten)
Artikel, Materialgruppe, EVOArtikel

berechnete Felder = measures
EVO:=SUM([EVOArtikel])
Anzahl Artikel:=COUNTROWS()


berechnete Spalten:

Spaltenbezeichnung = EVOJeMaterialgruppe
=CALCULATE( [EVO]; ALLEXCEPT( EVOJeArtikel; EVOJeArtikel[Materialgruppe] ) )


Spaltenbezeichnung = EVOJeMaterialgruppeAnteil%
=CALCULATE ( [EVO]; ALLEXCEPT ( EVOJeArtikel;EVOJeArtikel[Materialgruppe]); EVOJeArtikel[EVOArtikel] >= EARLIER( EVOJeArtikel[EVOArtikel] ) ) / CALCULATE ( [EVO]; ALLEXCEPT( EVOJeArtikel;EVOJeArtikel[Materialgruppe]) )


Spaltenbezeichnung = ABC_EVOJeMaterialgruppe
=SWITCH ( TRUE; EVOJeArtikel[EVOJeMaterialgruppeAnteil%] <= 0,8; "A"; EVOJeArtikel[EVOJeMaterialgruppeAnteil%] <= 0,95; "B"; "C" )


alternativer Ansatz über measures (berechnete Felder)

Tabellenstruktur
Tabellenname = EVOJeArtikel
Struktur(Spalten)
Artikel, EVOArtikel

measures

EVO:=SUM([EVOArtikel])

Rang aktuell:=
IF(HASONEVALUE(EVOJeArtikel[Artikel]);IF(NOT(ISBLANK([EVO]));RANKX(CALCULATETABLE(VALUES(EVOJeArtikel[Artikel]);ALL(EVOJeArtikel[Artikel]));[EVO])))

kumuliert aktuell:=
SUMX(TOPN([Rang aktuell];CALCULATETABLE(VALUES(EVOJeArtikel[Artikel]);ALL(EVOJeArtikel[Artikel]));[EVO]);[EVO])

kumuliert % aktuell:=
[kumuliert aktuell]/CALCULATE([EVO]; ALL(EVOJeArtikel[Artikel]))

Eine Beispiel Arbeitsmappe (Excel 2016) können Sie hier downloaden

Um diese Analyse weiter zu verfeinern (Tabelle tbl_Klasse, ABC Klassifikation), können weitere taktische Daten und measures eingebunden werden


MinUntergrenze:=Min([Untergrenze])
MaxObergrenze:=Max([Obergrenze])


ABC aktuell:=
IF(NOT(ISCROSSFILTERED(tbl_Klasse[Klasse]));[WEWert];CALCULATE([WEWert];FILTER(VALUES(EVOJeArtikel[Artikel]);[MinUntergrenze] < [kumuliert % aktuell] && [kumuliert % aktuell] <= [MaxObergrenze])))


Pareto Analyse mit Excel Power Pivot

Lernvideo



Power Pivot DAX Formel aus Lern Video

--- SCHNIPP ---

Pareto %:=VAR GesamtEVO =

CALCULATE (

SUM ( 'EVO'[EVO_WGR] );

ALLSELECTED ( EVO )

)

VAR AktuellesEVO =

SUM ( EVO[EVO_WGR] )

VAR ZusammengefassteTabelle =

SUMMARIZE (

ALLSELECTED ( EVO );

EVO[LieferantNr];

"@EVO"; SUM ( EVO[EVO_WGR] )

)

VAR LaufendeSumme =

SUMX (

FILTER ( ZusammengefassteTabelle; [@EVO] >= AktuellesEVO );

[@EVO]

)

RETURN

DIVIDE ( LaufendeSumme; GesamtEVO )


--- SCHNAPP ---

Kommentare

  1. super Lösung! konnte ich genau so übertragen - vielen Dank! ich hänge nur leider bei der Klassifizierung und dem identifizieren. Was genau steckt hinter dem measure "WEWert" in "ABC_Aktuell"?

    AntwortenLöschen

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

Vergleich mit 2 Bedingungen, INDEX(), VERGLEICH()

Dropdown Liste mit Mehrfachauswahl

nützliche Text Funktionen in Power Query