特定の日付からテキストデータを集計する方法

特定の日付からテキストデータを集計する方法

私は、1) 時間を追跡し、2) イベントの種類を追跡するために Excel データベースを作成しています。Sheet1 に、特定の日付の個々のイベントと費やした時間を入力します。私の目標は、Sheet2 で統合することです。

シート1

日付 イベントタイプ 所要時間(分)
2021-12-09 管理 10
2021-12-09 理事会会議 60
2021-12-05 地域奉仕 90
2021-12-05 管理 10
2021-12-05 準備 5

シート2

日付 イベント 合計時間 (hh:mm)
2021-12-09 運営、評議会会議 01:10
2021-12-05 管理、コミュニティサービス、準備 01:45

SUMIF を使用して Sheet2!C2:C3 を実行する方法はわかりましたが、Sheet2!B を実行するにはどうすればよいでしょうか?

どうもありがとう

答え1

Excel 365をお持ちの場合は、関数TEXTJOINを組み合わせることができますFILTER

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

結果

答え2

Office 365をお持ちでない場合は、Power QueryWindows Excel 2010以降で利用可能なを使用して目的の出力を取得できます。

  • 元のテーブル内のセルを選択します
  • Data => Get&Transform => From Table/Range
  • PQ UIが開いたら、Home => Advanced Editor
  • コードの 2 行目のテーブル名をメモします。
  • 既存のコードをMコード下に
  • 貼り付けたコードの2行目のテーブル名を「実際の」テーブル名に変更します。
  • コメントやApplied Stepsウィンドウを調べて、アルゴリズムと手順をよりよく理解してください。

Mコード

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"

ここに画像の説明を入力してください

関連情報