Hallo zusammen!
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?
Beste Grüße,
avr
Hallo,
warum nicht VBA'?
Da eine Person in einer Kategorie mehere Eigenschaften haben kann, ist die "Wunschlösung" nicht ganz klar.
mfg
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.
beste Grüße,
avr
Hi
Versuch mal ob das Klappt.
Code:
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
(30.07.2019, 09:50)Elex schrieb: [ -> ]Hi
Versuch mal ob das Klappt.
Code:
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, 10: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?
(30.07.2019, 20:57)shift-del schrieb: [ -> ]Moin
Alternative mit Pivot.
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.
Beste Grüße an alle,
avr