Clever-Excel-Forum

Normale Version: Power Query - mehrere Zellen mit Text zu einer aggregieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
(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
Hi

Zitat:Gibt es irgendwo ein Tutorial


schau mal in den Beitrag von @shift-del.
https://www.clever-excel-forum.de/Thread...ower-Query

Gruß Elex