Power Query, Wasserfall Chart
Um die erforderliche Datenstruktur sowie berechneten Werte zur Erstellung einer
Wasserfall Grafik zu erhalten, kann man Power Query einsetzen.
Hierzu ist es ausreichend, zwei formatierte Tabellen in Excel zu erstellen und diese als Abfrage in Power Query abzubilden:
Name: Daten
Name: Ergebnis
1 Abfrage [Ergebnis] an [Daten] anfügen
= Table.Combine({#"Geänderter Typ", Wasserfall_Ergebnis})
2 Index-Spalte anfügen [Index]
= Table.AddIndexColumn(#"Angefügte Abfrage", "Index", 0, 1)
3 Beträge kumulieren [kumuliert]
= Table.AddColumn(#"Hinzugefügter Index", "kumuliert", each List.Sum(List.FirstN(#"Hinzugefügter Index"[Betrag],[Index]+1)))
4 Spalte hinzufügen für Vorgänger-Wert [kum_Vorgaenger]
= Table.AddColumn(kumuliert, "kum_Vorgaenger", each try(kumuliert[kumuliert]{[Index]-1}) otherwise null)
5 Ergebnis in letzte Zelle der Spalte [Betrag] schreiben
= Table.ReplaceValue(kumu_Vorgaenger,null,each _[kumuliert],Replacer.ReplaceValue,{"Betrag"})
6 [Typ]
= if [Index]=0 then "Start" else if [Index] = List.Max(Ergebniszeile[Index]) then "End" else if Number.Sign([kumuliert])<> Number.Sign([kum_Vorgaenger]) then "Cross" else ""
7 [fallend]
= if [Typ] = "Start" then 0 else if [Typ] = "Cross" then [kum_Vorgaenger] else if Number.Sign([kum_Vorgaenger])<>Number.Sign([Betrag]) then -[Betrag] else 0
8 [steigend]
= [Betrag]+[fallend]
9 [Basis]
= Table.AddColumn(steigend, "Basis", each if [Typ] = "Cross" or [Typ] = "End" or [Typ] = "Start" then 0 else if [fallend]<>0 then [kumuliert] else [kum_Vorgaenger])
10 nicht benötigte Spalten für Grafik entfernen
= Table.RemoveColumns(Basis,{"Index", "kumuliert", "kum_Vorgaenger", "Typ", "Betrag"})
11 Spalte [Basis] an zweite Stelle verschieben
12 Grafik (gestapelte Balken) auf Basis Zielstruktur einfügen sowie Hintergrund- sowie Linienfarbe bei Datenreihe "Basis" auf "keine" einstellen
Eine Beispiel Excel Arbeitsmappe kann hier abgerufen werden
Einen alternativen Ansatz mit Excel Formeln finden Sie hier
Wasserfall Grafik zu erhalten, kann man Power Query einsetzen.
Hierzu ist es ausreichend, zwei formatierte Tabellen in Excel zu erstellen und diese als Abfrage in Power Query abzubilden:
Name: Daten
Name: Ergebnis
1 Abfrage [Ergebnis] an [Daten] anfügen
= Table.Combine({#"Geänderter Typ", Wasserfall_Ergebnis})
2 Index-Spalte anfügen [Index]
= Table.AddIndexColumn(#"Angefügte Abfrage", "Index", 0, 1)
3 Beträge kumulieren [kumuliert]
= Table.AddColumn(#"Hinzugefügter Index", "kumuliert", each List.Sum(List.FirstN(#"Hinzugefügter Index"[Betrag],[Index]+1)))
4 Spalte hinzufügen für Vorgänger-Wert [kum_Vorgaenger]
= Table.AddColumn(kumuliert, "kum_Vorgaenger", each try(kumuliert[kumuliert]{[Index]-1}) otherwise null)
5 Ergebnis in letzte Zelle der Spalte [Betrag] schreiben
= Table.ReplaceValue(kumu_Vorgaenger,null,each _[kumuliert],Replacer.ReplaceValue,{"Betrag"})
6 [Typ]
= if [Index]=0 then "Start" else if [Index] = List.Max(Ergebniszeile[Index]) then "End" else if Number.Sign([kumuliert])<> Number.Sign([kum_Vorgaenger]) then "Cross" else ""
7 [fallend]
= if [Typ] = "Start" then 0 else if [Typ] = "Cross" then [kum_Vorgaenger] else if Number.Sign([kum_Vorgaenger])<>Number.Sign([Betrag]) then -[Betrag] else 0
8 [steigend]
= [Betrag]+[fallend]
9 [Basis]
= Table.AddColumn(steigend, "Basis", each if [Typ] = "Cross" or [Typ] = "End" or [Typ] = "Start" then 0 else if [fallend]<>0 then [kumuliert] else [kum_Vorgaenger])
10 nicht benötigte Spalten für Grafik entfernen
= Table.RemoveColumns(Basis,{"Index", "kumuliert", "kum_Vorgaenger", "Typ", "Betrag"})
11 Spalte [Basis] an zweite Stelle verschieben
12 Grafik (gestapelte Balken) auf Basis Zielstruktur einfügen sowie Hintergrund- sowie Linienfarbe bei Datenreihe "Basis" auf "keine" einstellen
Eine Beispiel Excel Arbeitsmappe kann hier abgerufen werden
Einen alternativen Ansatz mit Excel Formeln finden Sie hier
Lern Video
Kommentare
Kommentar veröffentlichen