ExcelやPower BIでデータを取り込み・集計する際には前処理としてPower Queryでデータ型を定義したり、複数のデータテーブルを統合・結合したり、不要なデータを削除したりするわけですが、相対的な日付範囲のフィルタ(例えば当月末以前など)は詳細エディターにてExcel関数とは異なる言語「Power Query M 数式言語」を使って計算させる必要があります。
必要になったときに「こんな感じで出来た気がするなぁ」とググってもパッと出てこないので備忘として記事にしておきます。
この記事で出来るようになること
- Power Queryの数式バーまたは詳細エディタでフィルター式を書き換える
- 現在日時を基準に「今日より前」「今日以前」「今日より後」「今日以降」の日付フィルタを設定する
- 現在日時を基準に「当月末より前」「当月末以前」「当月末より後」「当月末以降」の日付フィルタを設定する
- 現在日時を基準に「翌月末より前」「翌月末以前」「翌月末より後」「翌月末以降」の日付フィルタを設定する
- 現在日時を基準に「前月末より前」「前月末以前」「前月末より後」「前月末以降」の日付フィルタを設定する
- カスタム列を作成して計算結果を確認する
- この記事で出来るようになること
- チートシート
- 今日を基準に日付範囲を指定
- 当月を基準に日付範囲を指定
- 前月・翌月を基準に日付範囲を指定
- こまけぇ説明
- 今回使った検証用テーブル
- 数式を直接編集して「今日より前」という条件を設定してみる
- メニューになくても詳細エディターからより細かい条件指定ができる
- 今日 を計算する関数は DateTime.LocalNow関数というのがあるらしい
- 月末を計算する関数を組み合わせる
- 現在の月から前後の月を求めるにはAddMonths関数
- 【おまけ】計算式の結果を試しに見たい場合はカスタム列を使う
- 参考にしたページ