AW: Problem mit Pivot-Auswertung
01.02.2023 13:39:28
ChrisL
Hi
Irgendwie habe ich die Aufgabe anders wie Yal interpretiert (Anzahl statt Schulnoten). Wir sind uns jedoch einig, dass zuerst entpivotiert werden muss, was Standard-Pivot nicht erledigen kann.
Die darauffolgende neue Pivotierung kann mittels Pivot-Tabellenbericht erfolgen. Ich habe diesen Schritt aber gleich direkt auch in Power-Query umgesetzt.
Somit wären nach meiner Interpretation nur noch die Schritte
- entpivotieren
- gruppieren
- pivotieren
notwendig.
Ein paar zusätzlich, optionale Schritte habe ich noch angefügt, aber dies ist Spielerei:
- null (nichts) durch Zahl 0 ersetzt
- Sortierungs-Index um F1, F2 etc. nach Zahl zu sortieren (die Textsortierung hat mir nicht gefallen)
Anwendung
- Menü Daten, Daten abrufen, Aus anderen Quellen, Leere Abfrage
- Power-Query Editor öffnet
- Menü Ansicht, Erweiterter Editor, Code hineinkopieren
- Speichern & Laden
Obwohl es sich um eine Fertiglösung handelt, empfehle ich die Einzelschritte im PQ-Editor nachzuvollziehen. Eigentlich keine grosse Hexerei (entpivotieren, gruppieren, pivotieren).
https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/
let
Quelle = Excel.CurrentWorkbook(){[Name="DatenTabelle"]}[Content],
#"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(Quelle, {"Schulform", "Ausbildungsberuf", "Klasse"}, "Frage", "Wert"),
#"Gruppierte Zeilen" = Table.Group(#"Entpivotierte andere Spalten", {"Schulform", "Ausbildungsberuf", "Klasse", "Frage", "Wert"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
#"Pivotierte Spalte" = Table.Pivot(#"Gruppierte Zeilen", List.Distinct(#"Gruppierte Zeilen"[Wert]), "Wert", "Anzahl", List.Sum),
#"Ersetzter Wert" = Table.ReplaceValue(#"Pivotierte Spalte",null,0,Replacer.ReplaceValue,{"trifft voll zu", "trifft überwiegend zu", "trifft überwiegend nicht zu", "trifft nicht zu", "keine Antwort möglich"}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Ersetzter Wert", "Sort-Index", each Number.FromText(Text.Replace([Frage],"F",""))),
#"Sortierte Zeilen" = Table.Sort(#"Hinzugefügte benutzerdefinierte Spalte",{{"Klasse", Order.Ascending}, {"Sort-Index", Order.Ascending}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Sortierte Zeilen",{"Sort-Index"})
in
#"Entfernte Spalten"
cu
Chris