1.はじめに
スライサーやDAX関数を使用したい時、日付データが無い場合に作成しなければならないことがありませんか。数年分の日付データが必要な場合は、日付データを作成するのは大変です!
こんな場合に、簡単に日付テーブルを作成する方法を記載します。
2.日付テーブルの作成
日付テーブルを作成する方法は主に下記2パターンになります。
・CALENDARAUTO関数を使用する
・CALENDAR関数を使用する
それでは、日付テーブルを作成しましょう。
2-1.CALENDARAUTO関数
CALENDARAUTO関数は、日付範囲を指定しなくても、モデル内の日付範囲に基づいて自動で日付データを作成します。モデルに売上テーブルが存在し、このテーブルの日付範囲は「2022年1月1日~2022年12月1日」です。それでは、CalenderAuto関数を使用し日付テーブルを作成しましょう。
「データ」をクリックしリボンの「新しいテーブル」をクリックします。
赤枠内に「日付テーブル = CALENDARAUTO()」を入力します。
CALENDARAUTO([fiscal_year_end_month])関数の引数に、会計年度末の月を渡せますが今回は省略します。
自動で日付データ(365行)が作成されました。
この方法は、システムがモデルの日付範囲を読み取って自動でその期間の日付データを作成します。
そのため売上データが追加されれば、日付テーブルは自動で日付データを作成するためメンテンナンス不要になります。便利ですね!
2-2.CALENDAR関数
CALENDAR関数は、日付データの作成期間を指定(開始日付、終了日付)し日付データを作成します。そのため、何時から何時までの日付データが必要なのかユーザーが判断する必要があります。
リボンの「新しいテーブル」をクリックします。
赤枠内に「日付テーブル = CALENDAR( DATE(2022,1,1),DATE(2022,12,31))」を入力します。
日付データが作成されました。
日付データの作成範囲をユーザーが指定するため不要なデータを除外し、細かな日付範囲が指定可能になります。
3.ユーザー関数
実務では、日付テーブルを一つのレポートで使用するのではなく、複数のレポートで共用することが多いと思います。こんな時に汎用的に日付テーブルを作成すると便利です。
下記は、会計年度末が3月の場合のテンプレートです。会計年度末が3月でない場合は、修正をお願いします。
CALENDARAUTO関数 日付テーブル = ADDCOLUMNS( CALENDARAUTO(3), "会計年度", IF(QUARTER([Date]) = 1, YEAR([Date])-1, YEAR([Date])), "会計年度(四半期)", IF(QUARTER([Date])=2,1,IF(QUARTER([Date])=3,2,IF(QUARTER([Date])=4,3,4))), "年月", VALUE(FORMAT([Date], "yyyyMM" )), "年", YEAR ( [Date] ), "YYYY年", FORMAT ( [Date],"YYYY年" ), "月", MONTH ([Date]), "MM月", FORMAT ([Date], "MM月" ), "日", DAY ([Date]), "DD日", FORMAT([Date],"DD日"), "日(曜日)", FORMAT ( [Date], "DD(aaa)" ), "曜日(日本語)", FORMAT([Date],"aaa"), "曜日(英語)", FORMAT([Date],"ddd") )
CALENDAR関数 日付テーブル = ADDCOLUMNS( CALENDAR(DATE(2022,1,1),DATE(2023,12,31)), "会計年度", IF(QUARTER([Date]) = 1, YEAR([Date])-1, YEAR([Date])), "会計年度(四半期)", IF(QUARTER([Date])=2,1,IF(QUARTER([Date])=3,2,IF(QUARTER([Date])=4,3,4))), "年月", VALUE(FORMAT([Date], "yyyyMM" )), "年", YEAR ( [Date] ), "YYYY年", FORMAT ( [Date],"YYYY年" ), "月", MONTH ([Date]), "MM月", FORMAT ([Date], "MM月" ), "日", DAY ([Date]), "DD日", FORMAT([Date],"DD日"), "日(曜日)", FORMAT ( [Date], "DD(aaa)" ), "曜日(日本語)", FORMAT([Date],"aaa"), "曜日(英語)", FORMAT([Date],"ddd") )
4.まとめ
CALENDARAUTO関数、CALENDAR関数を使用し日付テーブルを作成しました。これで、スライサーやDAX関数を使用する場合に日付テーブルがなくても簡単に日付テーブルを作成できますね。よく使用するため事前に汎用的な日付テーブルを作成するためのテンプレートを準備しておくと便利ですね。
|
|
|
コメント