Power Queryは、日付範囲のあるテーブルを毎日に変換します

Nov 26 2020

Power Queryを使用して、次の問題を解決しています。日付の範囲に基づいてデータの日次分割を作成する必要があります。

広告キャンペーンの結果の表があります。各行は、IDとしてインデックスを持つキャンペーンです。開始日、終了日(または期間)、およびいくつかの数値フィールド(この場合はAdRequestsとSpend)があります。各行について、[期間]列の日数の合計です。

私がする必要があるのは、これを毎日のデータに要約しないことです。支出などの値を1日の平均として、そこから1日のデータを入力します。NBキャンペーンの数はプロジェクトごとに異なり、動的である必要があります

つまり、これは私の入力テーブルです

これが私が望んでいることです。これは最初のキャンペーンの例ですが、テーブルにはそれらすべてが含まれている必要があり、プロジェクトごとに異なります。

私はこれを明日配達しなければなりません、そして今のところ私の検索はリモートで良いものを何ももたらしませんでした。事前にアイデアをありがとう

回答

2 Hooded0ne Nov 27 2020 at 03:57

これが私がそれをした方法です。

  1. 式= {1 .. [Duration]}のカスタム列を追加します
  2. カスタム列を展開します
  3. 開始日を数値タイプに変更します
  4. 式= [開始日] + [カスタム] -1のカスタム列を追加します
  5. 開始日を日付タイプの列に戻します
  6. 不要な列を削除する
  7. 列の名前を変更する



let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Index", Int64.Type}, {"Start Date", type datetime}, {"Ad Requests", Int64.Type}, {"Spend", Int64.Type}, {"Duration", Int64.Type}, {"Daily Adrequests", Int64.Type}, {"Daily Spend", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each {1..[Duration]}),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Start Date", Int64.Type}}),
    #"Added Custom1" = Table.AddColumn(#"Changed Type1", "Custom.1", each [Start Date] + [Custom] -1),
    #"Changed Type2" = Table.TransformColumnTypes(#"Added Custom1",{{"Custom.1", type date}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Changed Type2",{"Index", "Custom.1", "Start Date", "Ad Requests", "Spend", "Duration", "Daily Adrequests", "Daily Spend", "Custom"}),
    #"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Start Date", "Ad Requests", "Spend", "Duration"})
in
    #"Removed Columns"

ビフォアーアフター