[Power BI] カレンダーテーブルの作成方法とテンプレートの紹介

カレンダーテーブルの作成方法とテンプレートの紹介

このページでは、CALENDAR関数を使用してカレンダーテーブル(日付テーブル)の作成方法を紹介し、テンプレートを記載しています。
・使用する関数:CALENDER, ADDCOLUMNS, FORMAT, CONVERT

目次

カレンダーテーブルの作成方法

カレンダーテーブルは連続した日付をもとに、年度や四半期といったグラフ化する際に使いやすい時間の指標を追加して作成します。

連続した日付データの作成

CALENDAR関数を使用してカレンダーテーブルの基準となる、日付データを作成します。

=CALENDER([開始日],[終了日])
CALENDER関数は、日付の開始日と終了日を指定することで連続したカレンダーテーブルを作成できます。

モデリングタブの新しいテーブルをクリック、テーブルツールタブから下記のDAX式を入力します。

カレンダー = CALENDAR("2015/1/1","2025/12/31")

テーブルビューから、作成したカレンダーテーブルを確認します。
今回は2015年1月1日から、2025年12月31日までの連続した日付データを作成しました。
CALENDAR関数を使用すると、列名は自動でDateと命名されます。

CALENDARAUTO関数を使用すれば、開始日と終了日を指定せずに、ファクトデータに基づいて連続した日付データを作成することができます。
ただしファクトデータに複数の日付データ(注文日、納品日、納期など)があると意図した期間にならない場合もあるので注意が必要です。

カレンダーテーブルの作成

CALENDAR関数で作成したDate列を基準に、カレンダーテーブルを作成します。
作成には、ADDCOLUMNS関数を使用し、年度四半期など列データを追加します。

=ADDCOLUMNS([テーブル],[列名1],[列条件1]…)
ADDCOLUMNS関数はテーブルに列を追加できる関数です。

例として、[テーブル]にCALENDER([開始日],[終了日])を指定し、年度の列データを追加します。

カレンダー = 
ADDCOLUMNS(
    CALENDAR("2015/1/1","2025/12/1"),
    "YYYY年",FORMAT([Date],"YYYY年"),
    "YY年",FORMAT([Date],"YY年"),
    "年度",CONVERT(if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),STRING)&"年度",
    "MM月",FORMAT([Date],"MM月")
)

年と月の列データの作成には、FORMAT関数を使用しました。日付の書式からDate列の年、月を指定し、任意の列を作成します。
年度データはMONTH関数で4月以降か否かを判断し、4月以降はそのままYEAR関数で年を表示。1-3月の場合は年-1としています。CONVERT関数で計算した整数型をテキスト型に変更しています。

カレンダーテーブルのテンプレート

毎回カレンダーテーブルを作成するのも手間がかかるので、よく使用するテンプレートを紹介します。
下記のDAX式のコピペでカレンダーテーブルの作成ができます。これを基準に追加削除、修正してみてください。

カレンダー = 
ADDCOLUMNS(
    CALENDAR("2015/1/1","2025/12/1"),
    "年",FORMAT([Date],"YYYY年"),
    "年_省略",FORMAT([Date],"YY年"),
    "月",FORMAT([Date],"MM月"),
    "週",FORMAT(WEEKNUM([Date],1),"第00週"),
    "日",FORMAT([Date],"DD日"),
    "年月",FORMAT([Date],"YY年MM月"),
    "年度",CONVERT(if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),STRING)&"年度",
    "年度_省略",CONVERT(if(MONTH([Date])>3,YEAR([Date])-2000,YEAR([Date])-2001),STRING)&"年度",
    "年度月",CONVERT(if(MONTH([Date])>3,YEAR([Date])-2000,YEAR([Date])-2001),STRING)&"年度"&FORMAT([Date],"MM月"),
    "年度四半期",CONVERT(if(MONTH([Date])>3,YEAR([Date])-2000,YEAR([Date])-2001),STRING)&"年度_"&if(MONTH([Date])<4,"4Q",if(MONTH([Date])<7,"1Q",if(MONTH([Date])<10,"2Q","3Q")))
    )

まとめ

  • CALENDAR関数から連続した日付データを作成し、ADDCOLUMNS関数で年度、月、四半期といった列を追加することでカレンダーテーブルを作成。
  • テンプレートはテーブルツールタブ→新しいテーブルの作成からDAX式のコピペで作成可能。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

技術系職社会人:業務でPowerBI を活用/データ分析/インドア派/趣味:ゲーム、カプセルトイ収集/[III]Mosnterが好き/勉強中:Blender/日々習得した内容をアウトプットしていきます!

目次