Power BIのカレンダーテーブルはPower Queryで作れ!その理由と方法を解説

Power BIを使う上で、日付テーブルって本当に重要ですよね。
Power BIでは時系列分析を行う場面が多く、そのグラフやチャートの基礎となるのが、この日付テーブルなんです。
言い換えれば、日付テーブルがしっかりしていないと、分析も思うように進まないことがあるということですね。
これまでDAXを使った方法など、様々な方法を紹介してきましたが、
最近、「これが一番良いな!」と思った方法がPower Queryで日付テーブルを作る ことです!
個人的には、これが現時点での最善策だと感じています。
●Before:DAXを使ったカレンダーテーブルの作成
理由としては、
開始年と終了年、さらに会計年度の開始月をパラメーターで指定し、Power Query内で活用することで、企業ごとに異なる会計年度にも柔軟に対応した動的な日付テーブルを簡単に作成することができるということです!
この方法なら、様々なビジネス要件にも対応でき、時系列分析の基盤となるテーブルを効率的に管理できます。
というわけで、下の動画にて Power Queryで動的な日付テーブルを作るメリットと方法を紹介しています。
サンプルクエリについては下記を参照してみてみてください。
= let StartYear = InputStartYear, // 例: 開始年(2023) EndYear = InputEndYear, // 例: 終了年(2025) FiscalStartMonth = InputFiscalStartMonth, // 例: 会計年度の開始月(4月) // 開始日と終了日を計算 StartDate = #date(StartYear, 1, 1), EndDate = #date(EndYear, 12, 31), NumberOfDays = Duration.Days(EndDate - StartDate) + 1, DateList = List.Dates(StartDate, NumberOfDays, #duration(1, 0, 0, 0)), // テーブル化 DateTable = Table.FromList(DateList, Splitter.SplitByNothing(), {"Date"}), // 日付列の型を設定 DateWithColumns = Table.TransformColumns(DateTable, {{"Date", each DateTime.Date(_), type date}}), // 年を追加 WithYear = Table.AddColumn(DateWithColumns, "Year", each Date.Year([Date]), Int64.Type), // 月の列を追加 WithMonth = Table.AddColumn(WithYear, "Month", each Date.Month([Date]), Int64.Type), // 月名の列を追加 WithMonthName = Table.AddColumn(WithMonth, "Month Name", each Date.ToText([Date], "MMMM"), type text), // 日の列を追加 WithDay = Table.AddColumn(WithMonthName, "Day", each Date.Day([Date]), Int64.Type), // 曜日番号(0=日曜日)の列を追加 WithDayOfWeek = Table.AddColumn(WithDay, "Day of Week", each Date.DayOfWeek([Date], Day.Sunday), Int64.Type), // 曜日名の列を追加 WithDayOfWeekName = Table.AddColumn(WithDayOfWeek, "Day of Week Name", each Date.ToText([Date], "dddd"), type text), // 四半期の列を追加 WithQuarter = Table.AddColumn(WithDayOfWeekName, "Quarter", each Date.QuarterOfYear([Date]), Int64.Type), // ISO週番号の列を追加 WithISOWeekNumber = Table.AddColumn(WithQuarter, "ISO Week Number", each Date.WeekOfYear([Date], Day.Monday), Int64.Type), // 年と月(YYYY-MM)の列を追加 WithYearMonth = Table.AddColumn(WithISOWeekNumber, "Year-Month", each Date.ToText([Date], "yyyy-MM"), type text), // 営業日フラグの列を追加(0=非営業日, 1=営業日) WithBusinessDayFlag = Table.AddColumn(WithYearMonth, "Is Business Day", each if Date.DayOfWeek([Date], Day.Sunday) > 4 then 0 else 1, Int64.Type) in WithBusinessDayFlag
会員登録いただくと、会計月に対応したフルのクエリとその作り方・サンプルデータを提供しますので、興味あれば登録もお願い致します!
初回は導入サポートも行います。
データやマクロのダウンロードは会員様限定のコンテンツとなっております。
コンテンツの閲覧やデータのをご希望の方は、以下より会員登録をお願いいたします。
コメントを残す