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 ---
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