SAP, Power BI, Liefertreue und Lieferzeit berechnen

Lern Video




Ausgangstabelle


1 Verzug berechnen,
Fallunterscheidung:

[Wareneingangsdatum] = NULL -> Verzug NULL
[Wareneingangsdatum] = [stat_Lieferdatum] -> Verzug = 0
[stat_Lieferdatum] < [Wareneingangsdatum] -> Verzug fxArbeitstage([stat_Lieferdatum],[Wareneingangsdatum]
[stat_Lieferdatum] > [Wareneingangsdatum] -> Verzug fxArbeitstage([Wareneingangsdatum],[stat_Lieferdatum]) *(-1)

2 Lieferzeit

Language M Code (Power Query)

let

fxArbeitstage = (start as date, end as date, optional Feiertage as list) as number =>
        let
           Liste_Feiertage = if Feiertage = null then {} else Feiertage,
           Liste_Tage = {Number.From(start)..Number.From(end)},
           Liste_Differenz  = List.Difference(Liste_Tage, Liste_Feiertage),
           Liste_Mod = List.Transform(Liste_Differenz, each Number.Mod(_, 7)),
           Liste_Sel = List.Select(Liste_Mod, each _>1),
           Ergebnis = List.Count(Liste_Sel)
         in
           Ergebnis,


    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"stat_Lieferdatum", type date}, {"Wareneingangsdatum", type date}, {"Bestelldatum", type date}}),
    Verzug = Table.AddColumn(#"Geänderter Typ", "Verzug", each if [Wareneingangsdatum] = null then null else
 if [stat_Lieferdatum]=[Wareneingangsdatum] then 0 else
if [stat_Lieferdatum] < [Wareneingangsdatum] then fxArbeitstage([stat_Lieferdatum],[Wareneingangsdatum]) else
if [stat_Lieferdatum]>[Wareneingangsdatum] then fxArbeitstage([Wareneingangsdatum],[stat_Lieferdatum]) *(-1) else
0),
    liefertreu = Table.AddColumn(Verzug, "liefertreu", each try if [Verzug]<= 2 then 1 else 0 otherwise 0),
    #"Geänderter Typ2" = Table.TransformColumnTypes(liefertreu,{{"liefertreu", type logical}}),
    Lieferzeit = Table.AddColumn(#"Geänderter Typ2", "Lieferzeit", each try fxArbeitstage([Bestelldatum],[Wareneingangsdatum]) otherwise null),
    Lieferzeit_Zahl = Table.TransformColumnTypes(Lieferzeit,{{"Lieferzeit", Int64.Type}})
in
    Lieferzeit_Zahl


3 in Datenmodell (Power Pivot) laden



4 Berechnungen (Kennzahlenbildung) mit DAX durchführen

Positionen:=COUNTROWS(Verzug)
Positionen_liefertreu:=CALCULATE(COUNTROWS(Verzug);FILTER(Verzug;Verzug[liefertreu]=TRUE))
Liefertreue:=[Positionen_liefertreu]/[Positionen]
øLieferzeit:=AVERAGE([Lieferzeit])

Ergebnis





Kommentare

Beliebte Posts aus diesem Blog

Dropdown Liste mit Mehrfachauswahl

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

nützliche Text Funktionen in Power Query