今回は会計年度での処理を行う方法の記事で使用した、カレンダーテーブルを別の方法で作成する方法を解説します。

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での表現の幅が広がると思いますので、ぜひ挑戦してみてください。