今回は会計年度での処理を行う方法の記事で使用した、カレンダーテーブルを別の方法で作成する方法を解説します。
1.なぜカレンダーテーブルを作成するの?
まずはなぜ、カレンダーのテーブルを用意するのかということです。
年度を跨いだ累計を計算する際や、日付ごとのデータを表示したい場合にファクトテーブルにない日付がある場合、ビジュアルから抜け落ちてしまう日付が出る可能性があります。
ファクトテーブルとカレンダーテーブル間でリレーションシップを作成することで、日付が抜け落ちることを回避できます。
2.新しいテーブルの作成
テーブルを作成する際、最初のうちはほとんどの場合でExcelやCSVからデータをインポートしたり、インポートしたテーブルを複製しているのではないでしょうか?
Power BI では、DAX関数からテーブルを作成することも可能です。
データビューを開き、「新しいテーブル」を選択します。
3.DAX式の入力
「新しいテーブル」を作成すると、DAX式に「テーブル =」が自動入力されています。
ここに以下の式をコピペしてください。
calendar =
var BaseCalendar = CALENDARAUTO()
RETURN
GENERATE(
BaseCalendar,
var BaseDate = [Date]
var YearNumber = YEAR(BaseDate)
var MonthNumber = MONTH(BaseDate)
var DateNumber = DAY(BaseDate)
var DayNumber = WEEKDAY(BaseDate, 1)
RETURN
ROW(
"年", YearNumber,
"月", MonthNumber,
"日", DateNumber,
"年月", FORMAT(BaseDate, "yyyy/mm"),
"月日", FORMAT(BaseDate, "mm/dd"),
"曜日CD", DayNumber,
"曜日", SWITCH(DayNumber, 1, "日", 2, "月", 3, "火", 4, "水", 5, "木", 6, "金", 7, "土","")
)
)
年度や四半期を入れたい方は、ROW関数の中にその行を増やす式を入力してあげてください。
または、データの変換から、条件列で追加する方が人によっては分かりやすいかもしれません。
おわりに
いかがっだでしょうか?
Excelでカレンダー元データを作成し、インポートするのでもいいですが、DAXでの作成方法も知っておくと、Power BIでの表現の幅が広がると思いますので、ぜひ挑戦してみてください。