【PowerQuery】二つの日付間の経過月数を算出する

大した内容ではありませんが、計算方法の備忘として。

1.やりたいこと

f:id:shusoshin:20210927202602g:plain

2.前提条件

  • 基データの中に基準日が含まれていないものとして、入力用のテーブルを用意する。(基データに基準日がある場合は不要)
  • 経過月数のカウントはあくまで月が変わったらひと月とする。日付は見ない。(例:計上日2021/9/1、基準日2021/9/30 であれば経過月数は0)

 

3.実践

基データテーブル(DATAクエリ)と基準日テーブル(基準日クエリ)をPowerQueryエディターへ取込む

f:id:shusoshin:20210927202617g:plain

基準日クエリを選択し、データセル箇所で右クリック→ドリルダウンをクリックする。

※今回基準日は2021/9/30としていますが、変更する場合はワークシート上のテーブルの値を直接書き換えます。

f:id:shusoshin:20210927202628g:plain

日付時刻ツールが表示され、「基準日」という1つの日付となりました。

f:id:shusoshin:20210927202633g:plain

DATAクエリを選択。列の追加タブ→カスタム列 をクリックします。

f:id:shusoshin:20210927202655g:plain

カスタム列の式に以下の式を入力します。

(Date.Year(基準日) - Date.Year([計上日]))*12 + 
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 ヶ月となります。
 

f:id:shusoshin:20210927202702g:plain

経過月数列が追加されました。

f:id:shusoshin:20210927202708g:plain

以上です。