カレンダーマスタの効果的な活用方法
Dr.SumやMotionBoardのメーカーであるウイングアーク1st株式会社が主催するnestというコミュニティのワークグループにて、カレンダーマスタの活用法のオンラインイベントがありました。
カレンダーマスタの活用はBIツールを問わず、共通のニーズがあるものです。SNSに投稿された内容を振り返りながら、重要な情報をピックアップしてまいります。
とてもわかりやすいコンテンツが存在する
ウイングアーク1stのCustomer Successサイトは様々なコンテンツが提供されていて、その中にカレンダーマスタの使い方についての情報もあります。
ここに必要な情報はだいたい網羅されていますので、ぜひ参照してください。
カレンダーマスタはなぜ必要?
BIツールというものは優秀で、日付データがあれば曜日を表示してくれたりもするけど、レスポンスを考えたりするとカレンダーマスタとしてデータで保持している方が良かったりします。
また会社特有の決算期、半期、四半期などもカレンダーマスタに持たせることが王道ですね。会社創設から数える”第74期”みたいなのもカレンダーマスタに保持させます。
同週同曜の表現のため
私はここにカレンダーマスタの価値があると考えています。
特に小売業の場合は前年対比はあまり意味がなく、同週で比較をする必要があります。平日と休日では客層がガラッと変わるからですね。
そのため、カレンダーマスタ上に前年同週の日付を保持しておいて、そこで比較をさせる方法が一般的です。
BIツールでの計算は不可能ではないですが、実体化したデータで保持しておくと効果的に活用ができます。
454(NRF)カレンダーの表現のため
454カレンダーについてChatGPTに聞いてみました。
454カレンダーは、小売業や製造業でよく使われる特殊なカレンダーシステムです。初心者にもわかりやすく説明すると、次のような特徴があります。
- 構造: 454カレンダーは、1年を52週間に分けて、それを12ヶ月に割り振ります。各月は4週間または5週間で構成されます。「454」というのは、これらの週のグループ化のことを指します。
- 四半期の最初の月は4週間。
- 二番目の月は5週間。
- 三番目の月は4週間。
- なぜ使われるのか: このカレンダーは、レポート期間に一貫性を持たせるために役立ちます。各四半期の週数が常に同じ(13週間)なので、売上や在庫などのデータを異なる期間で比較しやすくなります。
- メリット: 454カレンダーは、通常のカレンダーのように月によって日数が異なるという変動をなくします。これにより、標準化された財務報告期間を作成でき、時間の経過に伴う傾向を分析しやすくなります。
- 例: 例えば、売上を追跡しているとします。通常のカレンダーでは、2月は28日しかないのに対し、3月は31日あります。この違いがあると、2つの月を比較するのが難しくなります。しかし、454カレンダーでは常に4週間、5週間、4週間の期間を比較するので、トレンドを見つけたり、ビジネスの意思決定をするのが簡単になります。
要するに、454カレンダーは、ビジネスで時間を一貫性を持って予測可能な方法で管理するためのツールであり、特に計画や分析に便利です。
ホントChatGPTはわかりやすく教えてくれる。。。月の日数の変動の影響を受けることなく期間の比較をできるのが454カレンダーの特徴です。カレンダーマスタに仕組んでおけばできますよね。
454(NRF)カレンダーをつくってみる
解説ばかりで具体性がない、と思われる方もいるかもしれませんので、ChatGPTに作り方を聞いてみました。興味ある方はご覧ください。
- 454カレンダーをつくるExcelマクロをつくってとChatGPTにお願いした結果
-
9月30日を基準日にした454カレンダーを10年分作成するExcelマクロを提供します。このマクロは、基準日から始めて、各月が4週間、5週間、4週間のサイクルで分割されるカレンダーを生成します。
以下は、Excel VBAマクロのコードです。
Excel VBAコード
Sub Generate454Calendar() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim startDate As Date startDate = DateValue("2024/09/30") ' 基準日を設定 Dim currentDate As Date currentDate = startDate Dim years As Integer years = 10 ' 10年分のカレンダーを生成 Dim row As Integer row = 2 ' カレンダーの開始行 ' ヘッダーを設定 ws.Cells(1, 1).Value = "年" ws.Cells(1, 2).Value = "月" ws.Cells(1, 3).Value = "開始日" ws.Cells(1, 4).Value = "終了日" ws.Cells(1, 5).Value = "週数" Dim y As Integer Dim q As Integer Dim weekPattern As Variant weekPattern = Array(4, 5, 4) ' 454パターン For y = 0 To years - 1 For q = 0 To 3 ' 各四半期を処理 Dim m As Integer For m = 0 To 2 ws.Cells(row, 1).Value = Year(currentDate) ws.Cells(row, 2).Value = Month(currentDate) ws.Cells(row, 3).Value = currentDate ws.Cells(row, 5).Value = weekPattern(m) ' 終了日を計算 currentDate = DateAdd("ww", weekPattern(m), currentDate) - 1 ws.Cells(row, 4).Value = currentDate ' 次の月の開始日を設定 currentDate = currentDate + 1 row = row + 1 Next m Next q Next y End Sub
マクロの実行手順
- Excelを開き、Alt + F11キーを押してVBAエディタを開きます。
Insert
メニューからModule
を選択して、新しいモジュールを作成します。- 上記のコードをコピーして、モジュールに貼り付けます。
- VBAエディタを閉じます。
- Alt + F8キーを押して、「Generate454Calendar」というマクロを選択し、「実行」をクリックします。
このマクロを実行すると、指定した基準日(2024年9月30日)から始まる454カレンダーがExcelシートに生成されます。各行には年、月、開始日、終了日、週数が表示されます。
カレンダーマスタの管理は部門?全社??
コミュニティ内で質問がありました。カレンダーマスタは全社でひとつ保持すべきか、現場ごとに用意すべきか。
コミュニティ内でも意見が分かれていましたが、私はデータベース管理者の数によって変わると思います。
管理者が自分一人でしたら、ユーザーのニーズに応じてひとつのカレンダーマスタを拡張していって問題ないと思います。カレンダーマスタの主キーは日付で、付加情報となるカラムを増やしていくものなので、他部門への干渉が少ないです。現場ごとにカラムを管理する手法で良いでしょう。
もし現場独自で管理したいというニーズがあれば、部門ごとに用意して各自で拡充するという方法もいいと思います。
管理コストと運用コストを吟味して検討しましょう。
さいごに
カレンダーマスタはデータ分析が始まった初期から現在まで、ずっとニーズのあるものです。私も4〜5つくらいのBIツールを扱ってきましたが、どのツールでも独自のカレンダーマスタを持たせていました。
10年前はExcelでマスタをつくりました。2050年くらいまで一気に作りましたね。
今はChatGPTでデータをつくってくれます。何年分でも作ってくれます。
時代は変わりました、作り方も変わりました。でもカレンダーマスタの需要は落ちていません。
ぜひカレンダーマスタを効果的に活用して、自社のデータ分析の精度を高めていってください。