Power BI 最短でカレンダーテーブルを作る方法

Power BIで時系列分析を行う上で、別途日付テーブルを持っておくと諸々分析しやすいのですが、

わざわざExcel等でカレンダーテーブル(日毎で月、四半期、年の情報を持つマスタ)を作ってインポートする必要はなく、Power BI Dekstop内の簡単なクエリで対応できたので共有です。

 

Excelで作るとなるとデータを都度更新する一手間発生するのですが、

このやり方であれば効率的にデータを作れますし、マニュアルで作るよりもミスが少なく確実なのでおすすめです。

 

 

日付テーブルの作る2つの方法

 

まず日付テーブルを作る方法ですが、簡単な方法としては主に下記2つがあります。

 

  1. CalenderAuto関数を使う
  2. Calender関数を使う

 

実際の作り方の前にまずはそれぞれの違いを見ていきましょう。

作り方を知りたい場合は、ここは飛ばしていただいて大丈夫です。

※You Tubeでも紹介しています!

 

1.CalenderAuto

こちらはPower BI内のデータモデルを自動で読み取って、その読み取った情報に基づいて日付テーブルを自動で作ってくれる関数です。

 

例えば下図のように2019年1月1日からの商品売上データがあるとします。

 

「新しいテーブル」をクリックし、

DateTable = Calenderauto([表示させたい年度末の月])と入力します。

 

日系上場企業の多くは3月末が年度末なので、=CalenderAuto(3)と入力します。

すると、下図の通り年度初めとなる4月からのデータが自動で作成されることが分かります。

 

 

このようにCalenderAuto関数の方では、最初にインポートした「売上データ」が、2019年1月~のデータであることを自動で読み取り

その期間をカバーする2018年4月1日からのデータを自動で作成します

 

この方法ではデータを自動で更新し続けてくれるので、将来的なデータのメンテナンスが不要になるという利便性があります。

 

2.Calender

一方2つ目の方法であるCalender関数は、期間を自分で指定して日付テーブルを作成していきます。

下図の通りです。

ここでは=Calender (Date(2000,1,1), Date(2025,12,31))と日付の期間を指定しているので、2000/1/1~2025/12/31までの指定して期間分のデータが作成されます

こちらの方法では作成する期間を任意で指定できるので、不要な期間分のデータは取り除けたり、自分のコントロール下でデータが作成できるといった利便性があります。

 

追加情報(列)を加える

先程、Calender関数・CalenderAuto関数で作った日付テーブルに追加の情報を加えていきます。

例えば、日付情報から「月」のみを抽出した列を作成したり、「年」のみを抜き出した列を追加したりです。

 

方法としては、「新しい列」をクリックして新規で列を作成し、関数欄にYear = Year(‘Date”[Date])等の関数を加える形です。

こんな感じで表示したい情報(月、曜日、etc)を1つずつ書いていくことでデータを日付データを作成できます。

左から、

Month = MONTH(‘DateTable'[Date])

Month+月 =
‘DateTable'[Month] & “月”

Year = YEAR(‘DateTable'[Date])

曜日 = WEEKDAY(‘DateTable'[Date], 2)

って感じです。

 

もっと簡単に素早く作る方法

上記の方法だと、レポート毎で作業が発生するので手間がかかります。

そこで、下記のような関数を書き、他レポートでも流用できるようにしてみました。

※随時内容更新して改善しています!!ご意見あればお願いします

 

●CalenderAuto バージョン(3月が会計年度の期末月として場合)
Date =
ADDCOLUMNS (
CALENDARAUTO(3),
"年", YEAR ( [Date] ),
"月数", FORMAT( [Date], "MM"),
"月", FORMAT ( [Date], "MM" & "月"),
"年/月", FORMAT ( [Date], "YYYY/MM" ),
"会計年度(年)", IF(QUARTER([Date]) = 1, YEAR([Date])-1, YEAR([Date])),
"四半期(1月)", QUARTER([Date]),
"会計年度(四半期)", IF(QUARTER([Date])=2,1,IF(QUARTER([Date])=3,2,IF(QUARTER([Date])=4,3,4))),
"曜日(英語)", FORMAT ([Date], "ddd"),
"曜日(日本語)", IF(FORMAT ([Date], "ddd")="Sun","日",IF(FORMAT ([Date], "ddd")="Sat","土",IF(FORMAT ([Date], "ddd")="Mon","月",IF(FORMAT ([Date], "ddd")="Tue","火", IF(FORMAT ([Date], "ddd")="Wed", "水",IF(FORMAT ([Date], "ddd")= "Thu", "木", IF(FORMAT ([Date], "ddd")="Fri","金"))))))))
●Calenderバージョン(2015年1月1日~2025年12月31日)
Date =
ADDCOLUMNS (
CALENDAR(DATE(2015,1,1),DATE(2025,12,31)),
"年", YEAR ( [Date] ),
"月数", FORMAT( [Date], "MM"),
"月", FORMAT ( [Date], "MM" & "月"),
"年/月", FORMAT ( [Date], "YYYY/MM" ),
"会計年度(年)", IF(QUARTER([Date]) = 1, YEAR([Date])-1, YEAR([Date])),
"四半期(1月)", QUARTER([Date]),
"会計年度(四半期)", IF(QUARTER([Date])=2,1,IF(QUARTER([Date])=3,2,IF(QUARTER([Date])=4,3,4))),
"曜日(英語)", FORMAT ([Date], "ddd"),
"曜日(日本語)", IF(FORMAT ([Date], "ddd")="Sun","日",IF(FORMAT ([Date], "ddd")="Sat","土",IF(FORMAT ([Date], "ddd")="Mon","月",IF(FORMAT ([Date], "ddd")="Tue","火", IF(FORMAT ([Date], "ddd")="Wed", "水",IF(FORMAT ([Date], "ddd")= "Thu", "木", IF(FORMAT ([Date], "ddd")="Fri","金"))))))))

 

 

下図のように新しいテーブルを作成を選択して、

ペタッと貼り付けるだけで日付テーブルが完成します。

後は列を昇順で並び替えます。

以上です!

※You Tubeでも紹介しています!

 

この日付マスタを使えば、とりあえず曜日毎での分析や、会計年度毎での分析等、分析の幅が広がると思うので参考にしてみて下さい。

その他欲しいデータがあれば教えて下さいな。

 

 

ソフ蔵

ソフ蔵

IT企業でデータ分析や分析基盤構築に携わってます。
主にPower BIの使い方やデータ分析のノウハウを伝えてます。
データを使って世の中やビジネスを可視化したり、データ駆動型の組織作りの支援をしています。

データ分析・可視化基盤の構築、データ活用方法、Power BIについて相談あれば下記からお問合せ下さい!!

Power BI・データ分析を学習しよう!!

Power BIレポートのテンプレートサイトはこちらです

Power BIショーケースサイト

ココナラ(Power BI)

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

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

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

 

 

twitteryoutubemail

2 Comments

  • ”  が ” と なっているため、貼り付けしてもうまくいきません。 

    Reply
    • ご連絡ありがとうございます。修正致しました。よろしくお願い致します。

      Reply

コメントを残す

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

CAPTCHA


Scroll to Top