PowerBIではカレンダーテーブルを作成し、日付でスライサー設定をするのは必須です!
今回はCALENDAR関数、CALENDARAUTO関数を用いて、日付テーブルを自動作成する方法を紹介します。X軸を日付設定したときに、January、Februaryなどの英語になる問題も解消できます!
・PowerBIでカレンダーテーブルを作成できるDAX関数
・PowerBIでカレンダーテーブルの作成(CALENDAR/CALENDARAUTO関数)
・年、月、週、曜日、年度、四半期のカレンダーテーブルのテンプレート
PowerBIで必須の設定ですので、コードのテンプレと合わせて、ぜひご参考下さい!
カレンダーテーブルを作成できる関数
PowerBIでカレンダーテーブルを作成するためのDAX関数は2種類です。
「CALENDAR関数」「CALENDARAUTO関数」を使います。
【CALENDAR関数】構文
=CALENDAR(開始日,終了日)
指定した開始日から終了日までのカレンダーテーブルを作成
【CALENDARAUTO関数】構文
=CALENDARAUTO()
モデル内のデータの最も古い日付と最も新しい日付の間のカレンダーテーブルを自動作成
取り込んだ生データに基づいて自動的に期間が設定される!
参考:Microsoft Docs CALENDARAUTO関数
つまり、
カレンダーを作成したい期間を指定できるのがCALENDAR関数
モデル内のデータに基いて自動的に期間が設定されるのがCALENDARAUTO関数です!
それでは、具体的に使い方を紹介します。
CALENDAR関数でカレンダーテーブルの作成
CALENDAR関数を使って、期間を指定した日付データのテーブルを作成していきます。
まずは、データ画面から、「新しいテーブル」をクリック
次にCALENDAR関数でテーブルを作成します。
テーブル名:日付テーブル
関数:CALENDAR関数
=CALENDAR(開始日,終了日)
=CALENDAR(“2019/01/01″,”2022/12/31”)
テーブルを作りたい開始日、終了日を入れるだけ!
” ”で囲むことを忘れずに!
これで、開始日の2019/1/1~終了日2022/12/31までの日付テーブルを作成できました!
ちなみに、デフォルトでは書式に時刻も含まれているため、「列ツール」→「データ型」の変更または、「書式」の変更で上記のような日付だけのデータに変えることができます。
CALENDAR関数を使えば指定期間内のカレンダーを簡単に作成できますね!
CALENDARAUTO関数でカレンダーテーブルの自動作成
CALENDAR関数では、開始日/終了日を絶対参照的に指定する必要があるので、生データ更新により、その期間外のデータが増えるとエラーがおきたりします。
CALENDARAUTO関数では、生データの期間に基いて日付データテーブルを自動作成されるので、データ更新されても期間を変えたりする必要がありません!
それでは、CALENDARAUTO関数の手順を紹介します。
◆使用するデータ
取り込みデータは下記の通り、2020~2022年までのデータが入っている場合を想定します。つまり、CALENDARAUTO関数だと、この期間内のカレンダーテーブルが自動作成されます。
先ほどと同様に「新しいテーブル」をクリックし、
CALENDARAUTO関数でテーブルを作成します。
テーブル名:日付テーブル2
関数:CALENDARAUTO関数
=CALENDARAUTO()
生データの期間内の日付テーブルが自動作成されます!
CALENDARAUTO関数を使って作成しておけば、生データの期間が変わっても自動的に日付データも更新されるので便利です。
カレンダーテーブルのテンプレ公開
PowerBIでグラフの横軸を「年度別」や「月数字」「四半期」などで表示させたい場合がよくあります。毎回カレンダーテーブルを作るのは面倒なのでテンプレートを作成しました。
下記のテンプレートをコピーしてテーブルを追加すれば、
「年、月、週、曜日、年度、四半期」などが入ったテーブルが自動作成されます。
【カレンダーテーブルのテンプレート】
日付テーブルテンプレ =
ADDCOLUMNS(
CALENDARAUTO(),
"年_数値", YEAR ( [Date] ),
"月_数値", MONTH ([Date]),
"月_MM月", FORMAT ([Date], "MM月" ),
"日_数値", DAY ([Date]),
"日_DD日", FORMAT([Date],"DD日"),
"年月_数値", VALUE(FORMAT([Date], "yyyyMM" )),
"年月_yy/MM", FORMAT ( [Date], "yy/MM" ),
"年度_数値",if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),
"年度_数値年度",FORMAT(if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),"0年度"),
"年度四半期_数値", if(MONTH([Date])<4,4,if(MONTH([Date])<7,1,if(MONTH([Date])<10,2,3))),
"年度四半期_Q", if(MONTH([Date])<4,"4Q",if(MONTH([Date])<7,"1Q",if(MONTH([Date])<10,"2Q","3Q"))),
"年四半期_Q", if(MONTH([Date])<4,"1Q",if(MONTH([Date])<7,"2Q",if(MONTH([Date])<10,"3Q","4Q"))),
"週_数値", WEEKNUM([Date],1),
"週_第00週", FORMAT ( WEEKNUM ( [Date], 1 ), "第00週" ),
"曜日_aaa", FORMAT([Date],"aaa"),
"日曜日", FORMAT ( [Date], "DDaaa" ),
"会計年度",if( MONTH ([Date])<4,YEAR ( [Date] )-1,YEAR ( [Date] ))
)
【テーブル作成手順】
①テンプレートのコードをコピー
②新しいテーブルをクリック
③コードの貼り付け
④テーブル作成完了!
コードの詳細は割愛しますが、CALENDARAUTO関数で日付データを作成したテーブルに、ADDCOLUMNS関数で指定した列を追加しています。
作成したカレンダーテーブルのDateと生データの日付をリレーションでリンクさせれば、「年度、四半期、曜日、週別」などのグラフ作成が可能です! ぜひご活用下さい。
【PowerBIで日付操作の関連記事】
▶FORMAT関数で日付から年/月/日/曜日を取得
▶DATEDIFF関数で日付間の差分を取得できる
▶DATEADD関数で日付の足し算、引き算
▶EOMONTH関数で日付の月末日や月初日を取得
▶パワークエリで日付データから年/月/週/日を抽出
PowerBIでカレンダーテーブルの作成方法まとめ
今回のまとめ
・期間を指定してカレンダーテーブルを作成したい場合はCALENDAR関数
・データに応じてカレンダーテーブルを自動作成したい場合はCALENDARAUTO関数
・年、月、週、曜日、年度、四半期の列を追加したテンプレが便利
CALENDAR/CALENDARAUTO関数を用いたカレンダーテーブルの作成は、PowerBIで必須ですので、ぜひマスターしておきましょう!!
下記でPowerBIの便利機能やDAX関数一覧をまとめています。ぜひご参考下さい!
最後まで読んでいただきありがとうございました!
記事が良ければ☟クリック応援よろしくお願いします!!
コメント