So aggregieren Sie Textdaten ab einem bestimmten Datum

So aggregieren Sie Textdaten ab einem bestimmten Datum

Ich erstelle eine Excel-Datenbank, um 1) Stunden und 2) Ereignistypen zu erfassen. In Tabelle 1 trage ich die einzelnen Ereignisse an einem bestimmten Datum und die aufgewendeten Minuten ein. Mein Ziel ist es, Tabelle 2 zu konsolidieren.

Blatt1

Datum Ereignistyp Verweildauer (Minuten)
09.12.2021 Verwaltung 10
09.12.2021 Ratssitzung 60
05.12.2021 Zivildienst 90
05.12.2021 Verwaltung 10
05.12.2021 Vorbereitung 5

Tabelle 2

Datum Veranstaltungen Gesamtzeit (hh:mm)
09.12.2021 Verwaltung, Ratssitzung 01:10
05.12.2021 Verwaltung, Zivildienst, Vorbereitung 01:45

Ich habe herausgefunden, wie ich mit SUMIF die Formel für Blatt2!C2:C3 erhalte, aber wie erreiche ich die Formel für Blatt2!B?

Vielen Dank

Antwort1

Wenn Sie Excel 365 haben, können Sie TEXTJOINFunktionen kombinieren FILTER.

=TEXTJOIN(", ",TRUE,FILTER(Sheet1!$B$2:$B$6,Sheet1!$A$2:$A$6=$A2))

Ergebnisse

Antwort2

Wenn Sie Office 365 nicht haben, können Sie die gewünschte Ausgabe mit erhalten Power Query, verfügbar in Windows Excel 2010+

  • Wählen Sie eine Zelle in Ihrer Originaltabelle aus
  • Data => Get&Transform => From Table/Range
  • Wenn die PQ-Benutzeroberfläche geöffnet wird, navigieren Sie zuHome => Advanced Editor
  • Notieren Sie den Tabellennamen in Zeile 2 des Codes.
  • Ersetzen Sie den vorhandenen Code durch denM-Codeunten
  • Ändern Sie den Tabellennamen in Zeile 2 des eingefügten Codes in Ihren "echten" Tabellennamen
  • Untersuchen Sie alle Kommentare und auch das Applied StepsFenster, um den Algorithmus und die Schritte besser zu verstehen

M-Code

let
    Source = Excel.CurrentWorkbook(){[Name="Table24"]}[Content],

//set data types
    #"Changed Type" = Table.TransformColumnTypes(Source,{
        {"Date", type date}, {"Event Type", type text}, 
        {"Time Spent (Minutes)", Int64.Type}}),

//Group by Date
// Aggregate by concatenating Event Type text and SUMming Minutes
//    (change minutes => duration to get desired output format
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Date"}, {
        {"Event Type", each Text.Combine(List.Sort([Event Type]),", "), type nullable text}, 
        {"Time Spent (Minutes)", each #duration(0,0,List.Sum([#"Time Spent (Minutes)"]),0), type nullable duration}
        })
in
    #"Grouped Rows"

Bildbeschreibung hier eingeben

verwandte Informationen