【PowerQuery】二つの日付間の経過月数を算出する
大した内容ではありませんが、計算方法の備忘として。
1.やりたいこと
2.前提条件
- 基データの中に基準日が含まれていないものとして、入力用のテーブルを用意する。(基データに基準日がある場合は不要)
- 経過月数のカウントはあくまで月が変わったらひと月とする。日付は見ない。(例:計上日2021/9/1、基準日2021/9/30 であれば経過月数は0)
3.実践
基データテーブル(DATAクエリ)と基準日テーブル(基準日クエリ)をPowerQueryエディターへ取込む
基準日クエリを選択し、データセル箇所で右クリック→ドリルダウンをクリックする。
※今回基準日は2021/9/30としていますが、変更する場合はワークシート上のテーブルの値を直接書き換えます。
日付時刻ツールが表示され、「基準日」という1つの日付となりました。
DATAクエリを選択。列の追加タブ→カスタム列 をクリックします。
カスタム列の式に以下の式を入力します。
(Date.Year(基準日) - Date.Year([計上日]))*12 +
Date.Month(基準日) - Date.Month([計上日])
Date.Month(基準日) - Date.Month([計上日])
以下2つの例で数式を説明します。
【例1】基準日が2021年9月30日、計上日が2021年6月30日 であった場合
数式の1行目で年の差分の月数を算出します。
= (Date.Year(基準日) - Date.Year([計上日])) * 12
= ( 2021 - 2021 ) *12
= 0
数式の2行目で月の差分の月数を算出します。
= Date.Month(基準日) - Date.Month([計上日])
= 9 - 6
= 3
0 + 3 = 3 ヶ月となります。
【例2】基準日が2021年9月30日、計上日が2019年10月1日 であった場合
数式の1行目で年の差分の月数を算出します。
= (Date.Year(基準日) - Date.Year([計上日])) * 12
= ( 2021 - 2019 ) *12
= 24
数式の2行目で月の差分の月数を算出します。
= Date.Month(基準日) - Date.Month([計上日])
= 9 - 10
= -1
24 + -1 = 23 ヶ月となります。
経過月数列が追加されました。
以上です。