データ分析の第1歩

データ分析の第1歩 ~カレンダーテーブル作成入門~(Day3)

はじめに

Power BI Desktopは、ビジュアライゼーションとレポート作成のための強力なツールです。しかし、使い方が分からない、使い始めるための適切なデータが手元にない、といった理由でPower BIの活用に踏み出せない方も多いかもしれません。本ブログでは、サンプルデータを提供し、Power BIを使用したレポートやダッシュボードの構築方法を連載形式で解説していきます。
本記事はDay3です。Day1から構築したPower BIファイルを引き続き設定していきます。
---これまでの記事---
◆データ分析の第一歩 ~データ取り込みの基礎知識➋~(Day2)

---GOALのイメージ---

ダッシュボードを完成させるまでのプロセスを、複数回にわたるハンズオン形式のブログでわかりやすく説明します。

概要(目的・背景)

Power BIでデータ分析を行う際、時系列データの取り扱いは非常に重要です。売上データやアクセスログなど、日付情報を含むデータを正確に分析・可視化するためには、カレンダーテーブル(または日付テーブル)の作成が欠かせません。カレンダーテーブルを用いることで、月別や四半期別の集計、前年同期比の計算、曜日ごとの傾向分析など、多彩な時系列分析が可能となります。しかし、カレンダーテーブルを手動で作成するのは手間がかかり、ミスの原因にもなり得ます。そこで、Power BI Desktopの機能を活用して効率的にカレンダーテーブルを作成する方法を解説します。

読み手(誰に向けた記事か?)

この記事は、下記のような読者を想定しています。
・Power BI初学者:初めてPower BI Desktopを使う方
・データ分析の学習者:時系列データの分析やレポート作成に取り組んでいる方
また、Excelなどの他のツールからPower BIへの移行を検討している方や、データの可視化・分析の効率化を図りたいと考えている方にもご参考にしていただければと思います。

ブログの目標設定(具体的な目標)

本ブログは、サンプルのデータを使ってハンズオンを行いながら、目標をクリアします。実際に動作確認を行いながら、Power BIの使い方を習得しましょう。
この記事の目標は、以下の通りです。
・Power BI Desktopでカレンダーテーブルを作成する具体的な手順を習得する。
・カレンダーテーブル作成に必要なDAX関数の使い方を理解し、実践できるようになる。
これらの目標を達成することで、今後、読者の皆さんがPower BIでの時系列データ分析をより効果的に行えるようになることを目指しています。

方法(アプローチ・使用技術)

カレンダーテーブルの作成

1.「モデリング」タブから「新しいテーブル」ボタンを押下する。

2.テーブル定義を入力するバーが表示されることを確認する。

3.以下のコードを入力する。

Calendar = 
VAR StartDate=MIN('Sales'[Date])
VAR EndDate=MAX('Sales'[Date])
VAR BaseCalendar =CALENDAR (StartDate,EndDate)
RETURN
ADDCOLUMNS(
    BaseCalendar,
    "年月日", FORMAT([Date], "yyyy/MM/DD" ),
    "yyyy年",FORMAT([Date],"yyyy年"),
    "yyyy年度",FORMAT(if(MONTH([Date])>3,YEAR([Date]),YEAR([Date])-1),"0年度"),
    "MM月", FORMAT ([Date], "MM月" ),
    "DD日", FORMAT([Date],"DD日"),
    "Q四半期", if(MONTH([Date])<4,"4Q",if(MONTH([Date])<7,"1Q",if(MONTH([Date])<10,"2Q","3Q"))),
    "曜日_aaa", FORMAT([Date],"aaa")
)

※入力イメージ

4.入力後、Enterを押下。画面右側の一覧に「Calendar」が表示されていること。

5.左のメニューバーから「テーブルビュー」を選択する。

6.データが登録されていることを確認する。

カレンダーテーブルのコード説明

カレンダーテーブルを構成するコードを説明します。
まずは先頭の3行について説明します。

CALENDAR関数を用いてカレンダーテーブルのベースを作成しています。
実際に先頭3行のみで、サンプルのカレンダーテーブルを作成してみます。

Calendar_sample = 
VAR StartDate=MIN('Sales'[Date])
VAR EndDate=MAX('Sales'[Date])
RETURN CALENDAR (StartDate,EndDate)

データビューよりデータを参照すると、「Date」列のみ生成されています。このDate列をベースに、各種列を追加していきます。

後続行の➍・➎について説明します。

➊~➌にて生成したカレンダーテーブルに対して、ADDCOLUMNS関数(列を追加する機能)にて、列を追加します。

FORMAT関数が提供するフォーマットは以下リンク先を参照ください。
もし、 ➎で定義したフォーマット以外の形式が必要な場合は、上記➎の枠内へ追加してください。
FORMAT 関数 (DAX) - DAX | Microsoft Learn
参考までに一部フォーマットを掲載します。

フォーマット種別フォーマット形式出力結果
日付"yyyy-MM-dd"2025-1-14
 "dd/MM/yyyy"14/01/2025
 "MMMM dd, yyyy"January 14, 2025
 "dddd"Tuesday
 "yyyy/MM"2025/01
数値"0"1235(四捨五入)
 "0.00"1234.56
 "#,##0"1,235
 "$#,##0.00"$1,234.56
 "0%"123456%

結果(成果と評価)

この記事を通じて得ることができる学びは以下の通りです。
・カレンダーテーブルの必要性を再認識
時系列データを扱う際の基盤として、カレンダーテーブルは欠かせない存在です。自動化された方法で作成することで、人的ミスを最小限に抑えることができます。
・柔軟なカスタマイズの重要性
CALENDAR関数を使用する方法は柔軟性が高く、ビジネスニーズに応じて必要な列を追加できます。たとえば、カスタムフィスカルイヤー(会計年度)の設定や、特定の休日を考慮した分析も可能です。
・改善点と次回への活用
結果が期待どおりでない場合もあります。例えば、入力した日付フォーマットの誤りやリレーションシップの設定ミスがあると、正確な分析が行えません。このような場合はデータの整合性を確認し、適切なフォーマットやリレーションシップを設定することが重要です。

まとめ(結論と今後の展望)

カレンダーテーブルは、Power BIで時系列データを分析するための重要な要素です。本記事では、CALENDAR関数を用いた具体的な作成方法を解説しました。この手法を使うことで、効率的かつ柔軟に時系列分析を行える基盤を構築できます。次回の記事では、テーブル間のリレーションシップ設定についてご紹介します。

-データ分析の第1歩
-