データ管理編の仕上げとして、少し応用的な内容を一つ取り上げます。これまで、たくさんの演習を通してPower BIのさまざまな機能を学習してきました。しかし、実際にいくつかダッシュボードを作成していると、「あれ? こういうことはPower BIではできないのかな?」と、手を止める場面が出てくることがあります。
その一つの事例が、カレンダー、つまり日付の扱いに関するものです。
例えば、日付を横軸にして折れ線グラフを作成するだけであれば、Power BIに用意されている標準の日付設定で問題ありません。ところが、実際の業務では、もう少し複雑な日付の扱いが必要になることがあります。
例えば、「休日や祝日を非表示にしたい」「25日締めで今月のデータを確認したい」といったケースです。また、「年度の開始日」を考える必要もあります。日本の企業では、年度の開始日は必ずしも1月とは限りません。4月開始が一般的ではありますが、企業や組織によっては、異なるタイミングを年度の開始日としている場合もあります。
このように、通常の日付設定だけでは、業務上必要な日付の情報をうまく表現できないケースがあります。そこで今回は、Excelを使って「カレンダーテーブル」を作成してみましょう。
カレンダーテーブルとは、期間中のすべての日付を「1日=1行」で持つテーブルのことです。休日や祝日、月末、四半期末、年度など、必要な情報をあらかじめ列として登録しておくことができます。そして、そのカレンダーテーブルを利用することで、さまざまな業種や業務のルールに合わせた日付の管理ができるようになります。つまり、Power BIでの日付の扱いに対する自由度が、一気に高くなるわけですね。
作り方を見ていきましょう。Excelで新しいブックを開き、A1に「日付」と入力します。A2に開始日を入力し、セルの右下をドラッグして、必要な期間の最後の日まで日付を連続で埋めてください。1日=1行ですから、1年分なら365行になります。
続いて、B1から右へ「年」「月」「日」「年度」「四半期」「週」と見出しを入力し、2行目に次の数式を入れます。入力できたら、2行目の数式を最終行までコピーしてください。表の右端は、A2が2026/1/1のときの結果です。
| 列 | 数式 | 結果 |
|---|---|---|
| 年 | =YEAR(A2) | 2026 |
| 月 | =MONTH(A2) | 1 |
| 日 | =DAY(A2) | 1 |
| 年度 | =YEAR(EDATE(A2,1-4)) | 2025 |
| 四半期 | ="Q""IENT(MONTH(EDATE(A2,1-4))+2,3) | Q4 |
| 週 | =WEEKNUM(EDATE(A2,1-4)) | 40 |
年・月・日は、そのままです。YEAR関数、MONTH関数、DAY関数が、日付から年・月・日の数字をそれぞれ取り出してくれます。
ポイントは、年度です。EDATE関数は、日付を指定した月数だけずらす関数です。「EDATE(A2,1-4)」の「1-4」は、計算すると「-3」、つまり3か月前の日付になります。1月1日なら、前の年の10月1日ですね。その日付にYEAR関数をかければ、1月〜3月は前の年、4月以降はその年、という「4月始まりの年度」が求まります。
わざわざ「-3」ではなく「1-4」と書いているのは、「1月始まりの年を、4月始まりにずらす」という意味を、式の中に残しておくためです。7月始まりの組織なら「1-7」、10月始まりなら「1-10」に変えるだけで対応できます。
四半期も、同じEDATEが土台です。3か月ずらした日付のMONTH(月)は、年度の1か月目が「1」、12か月目が「12」になります。これをQUOTIENT関数、つまり割り算の商を求める関数で3で割ります。
ただ、そのまま割ると、1〜2月は商が0になり、3月で1になり……と、区切りがずれてしまいます。そこで先に2を足しておくのがコツです。
3で割ったときの余りは0・1・2を繰り返しますから、(1+2)÷3=1、(4+2)÷3=2、(7+2)÷3=3、(10+2)÷3=4と、3か月ごとに商が1つずつ増え、きれいに1〜4に収まります。頭に「Q」を文字列でつなげれば完成です。
週は、年度の式のYEARをWEEKNUMに変えただけです。WEEKNUM関数は「その年の1月1日から数えて何週目か」を返す関数ですので、3か月ずらした日付に使えば、年度の始まりから数えた週番号になります。
なお、月をずらすと曜日も変わりますから、週の区切りは実際の暦と1〜2日ずれることがあります。厳密な週番号が必要な場合は、「=INT((A2-DATE(E2,4,1))/7)+1」のように、年度の開始日からの日数で計算してください。
完成したカレンダーテーブルは、練習データのzipに入れてあります。「07_calendar」フォルダーの「powerbi_calendar_table.xlsx」です。2022年1月1日から2026年12月31日までの5年分で、上の数式がそのまま入っています。
サンプルデータの販売実績(2022〜2025年)にも、経費申請データ(2024〜2025年)にも、そのままつなげられる期間です。
📥 練習データ(全レッスン共通)をダウンロード(zip・約1.8MB)
Power BIに取り込む前に、表全体を選んで「テーブルとして書式設定」をしておきましょう。ダウンロードしたファイルでは、テーブル名を「T_カレンダー」にしてあります。あとは第43回と同じです。「データを取得」でこのブックを選び、T_カレンダーにチェックを入れて読み込みます。
読み込んだら、モデルビューで、カレンダーの「日付」と販売実績の「販売日」をドラッグでつないで、リレーションを作成します。これで、グラフの軸やスライサーに、「年度」や「四半期」が使えるようになります。年度別の売上や、年度四半期ごとの推移といった、会社の暦に合わせた集計が、ここで初めてできるようになるわけです。
祝日や休業日のように、計算式では求めにくい情報は、列を1つ追加して手で入力しておけば大丈夫です。Excelで作るカレンダーテーブルの良いところは、この「手で足せる」自由さにあります。所属する組織のルールに合わせて、自分だけのカレンダーテーブルを育てていってください。
次回は、いよいよ最終回です。Power BIの学習全体を振り返りながら、レポートを作るうえで忘れてはいけないことをお話しします。