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

 

会員登録いただくと、会計月に対応したフルのクエリとその作り方・サンプルデータを提供しますので、興味あれば登録もお願い致します!

初回は導入サポートも行います。

 

データやマクロのダウンロードは会員様限定のコンテンツとなっております。
コンテンツの閲覧やデータのをご希望の方は、以下より会員登録をお願いいたします。

データのダウンロード・会員登録はこちらから!

会員様ログイン

お問合せはこちらから

Power BIを導入してみよう!

Power BIの導入や、データ活用の支援も行っています。
ぜひ一度ご相談ください!

Power BIビギナー向け講座

Power BIを初めて触る方向けに、概要や基本操作からデータの可視化までを学べる初心者向け講座です。
データをビジネスに活用できる人材を目指して、短期間でスキルを身につけ、データ活用の第一歩を踏み出しましょう!

レポートの構築・運用支援

Power BIやPower Automateを活用したレポート・ダッシュボードの構築から運用まで、効率的で効果的なデータ活用をトータルサポートします。
データドリブンな事業運営を実現するための、最適なプラットフォームを作り上げましょう!

データ・マクロの提供

膨大なデータ処理を効率化し、意思決定を支援するカスタマイズ可能なデータ・マクロを提供します。より効率的な事業運営を支える基盤を提供します。

Power BIの入門記事・記事をピックアップしましたので、こちらも参考にしてみて下さい

▶Power BIとは? 記事版 / 動画版(Power BIの概要を3分で解説!)

▶Power BIのメリット・デメリット 記事版 / 動画版

本サイト運営:ソフゾウ

本サイト運営:ソフゾウ

Power BIの使い方やデータ分析のノウハウを伝えております。
データを使って世の中やビジネスを可視化したり、データ分析基盤作りの支援をしています。
過去ソフトウェア企業でBI構築に携わっていました。現在は小売企業でデータ分析や基盤構築に携わっています。

ご不明点あればお問合せ下さい!

 

 

twitteryoutubemail

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Scroll to Top