画像の通りなんだけども、元のテーブルに値のない日付を追加して表示したい場合どうするか。
この場合、まずは「4/1」から「4/7」までが連番になっている日付テーブルを新規に作ったほうがいい。元のテーブルは「テーブル1」として読み込み済みだとして、
日付テーブルlet 開始日 = List.Min(テーブル1[日付]), 終了日 = List.Max(テーブル1[日付]), 日付リスト = List.Transform( {Number.From(開始日)..Number.From(終了日)}, Date.From ), テーブル変換 = Table.FromColumns( {日付リスト}, type table[日付=date] ) in テーブル変換
これで日付テーブルが完成。
後はテーブル1に日付テーブルをマージして値列を展開して……いや待った待った。そんなことをする必要はないよね。全体の読み込みが発生する「マージ」とか「並べ替え」とかはなるべく使わないようにしたい。
こういう時は、縦結合してグループ化したほうが無駄がない。
くれぐれも日付テーブルが先ね。でないとグループ化した時に順番がおかしくなるから。
結合テーブルlet ソース = 日付テーブル & テーブル1, 行のグループ化 = Table.Group( ソース, {"日付"}, {"値", each List.Sum([値]), type nullable number} ) in 行のグループ化
「null」ではなく「0」を返したい時は「List.Sum([値])」を「List.Sum([値]&{0})」とすればいい。