Ich habe eine Exceltabelle in der ich spezielle Interviewabfragen notiert habe - welche Person Erfüllt welche Eigenschaften in welchen Kategorien?
Zur Auswertung habe ich eine Power Query-Abfrage erstellt, die die Daten so organisiert wie ich möchte, nur dass sie daran scheitert dass Excel den Text nicht zu Listen aggregieren kann. Kann mir hier jemand helfen?
30.07.2019, 10:36 (Dieser Beitrag wurde zuletzt bearbeitet: 30.07.2019, 10:36 von avr.)
Hi Fennek,
Mit VBA, habe ich leider überhaupt keine Erfahrung, darum versuche ich noch drumrum zu kommen.
Dass eine Person in einer Kategorie mehrere Eigenschaften haben kann, ist genau die Schwierigkeit, vor der ich stehe. Wäre es nur eine, würde meine Power-Query-Abfrage funktionieren, jetzt ist die Frage, wie ich Power Query dazu bringe, die in Frage kommenden Eigenschaften in eine Zelle zu aggregieren, ggf einfach mit Kommata getrennt.
let Source = Excel.CurrentWorkbook(){[Name="Daten"]}[Content], #"Entpivotierte Spalten" = Table.UnpivotOtherColumns(Source, {"Eintrag", "Sub-Eintrag"}, "Attribut", "Wert"), #"Gefilterte Zeilen" = Table.SelectRows(#"Entpivotierte Spalten", each ([Wert] = 1)), #"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"Wert"}), Benutzerdefiniert1 = Table.Group(#"Entfernte Spalten", {"Eintrag", "Sub-Eintrag"}, {{"Alle", each Text.Combine(_[Attribut], "; "), type text}}), #"Pivotierte Spalte" = Table.Pivot(Benutzerdefiniert1, List.Distinct(Benutzerdefiniert1[#"Sub-Eintrag"]), "Sub-Eintrag", "Alle") in #"Pivotierte Spalte"
Gruß Elex
Hi Elex, das funktioniert bestens, vielen Dank! Ich konnte es auch schon für einige ähnliche Abfragen adaptieren, für etwas weitere entferntere fiel es mir schwer. Gibt es irgendwo ein Tutorial für die Funktion die du in der 'Benutzerdefiniert-Spalte benutzt?
(30.07.2019, 11:10)Fennek schrieb: Hallo,
teste mal:
Code:
Sub F_en() Sheets("Datensatz").Activate r = 1 With Sheets("Test") For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row .Cells(r, 1) = Cells(i, 1) Sp = WorksheetFunction.Match(Cells(i, 2), Array("Kategorie A", "Kategorie B", "Kategorie C"), 0) + 1
For j = 3 To Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(i, j) = 1 Then .Cells(r, Sp) = .Cells(r, Sp) & Cells(1, j) & ", "
Next j
If Cells(i, 1) <> Cells(i + 1, 1) Then r = r + 1 Next i End With End Sub
mfg
Hi Fennek, hier war mir nicht klar wo ich das verwenden soll - ist das VBA?
Hi shift-del, Danach habe ich cshon gesucht bevor ich mich hier im Forum angemeldet habe, danke für die Hilfe! das hilft besonders für die einfacheren Fälle, da ich mich mit ähnlichen Fragen immer wieder beschäftige.