BI探検ノート

Power BI で、日本の祝日を除いた営業日を数える方法(内閣府の祝日 CSV と DAX)

約7分

濵口 翔長崎で、Power BI のつまずきを記録しています
目次
  1. 前提
  2. データの使い方(出典)
  3. 手順1: CSV を読み込む
  4. 手順2: 営業日の列を作る
  5. 手順3: 月ごとの営業日数
  6. 結果の確認(別の計算との照合)
  7. 道具: 祝日テーブルと営業日の式を作る
  8. この記事で確認できたこと・できていないこと
  9. 参考

確認日2026年10月24日。Power BI Desktop(日本語版、2.159.883.0)で確かめました。確認できていないことは、末尾にまとめました。

月ごとの「営業日数」を、土日と祝日を除いて数えたいことがあります。Power BI には、日本の祝日が入っていません。内閣府が公開している「国民の祝日」の CSV を読み込んで、営業日の列を作りました。

結論(30秒版)

  • 内閣府の CSV(昭和30年〜令和9年、1,067行)は、「データを取得」→「テキスト/CSV」で、日本語のまま読み込めました(「元のファイル」は、自動で 932 でした)。
  • 日付テーブルに、営業日 = IF(WEEKDAY([Date], 2) <= 5 && NOT CONTAINS(syukujitsu, syukujitsu[国民の祝日・休日月日], [Date]), 1, 0) の列を足して、SUM すると、営業日数が出ました。
  • 2025〜2026年の24か月分が、Python での別の計算と、全部一致しました(合計 490日)。振替休日などの「休日」も、CSV に入っているので、除かれます(2026年5月は、5月6日が休日で、営業日は 18日)。

前提

データの使い方(出典)

内閣府のサイトの利用規約(令和7年3月25日現在)は、「公共データ利用規約(第1.0版)」(デジタル庁)が、特記のないコンテンツに適用される、としていました。この規約では、商用利用も含めて、自由に利用できます。ただし、次のことが必要です。

  • 出典を書くこと
  • 編集・加工したときは、その旨も書くこと(国が作った、加工していないデータのように見せてはいけません)

この記事と、道具のページには、次の出典を書きました。

出典: 内閣府「国民の祝日について」(https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html)、公共データ利用規約(第1.0版)(https://www.digital.go.jp/resources/open_data/public_data_license_v1.0)(2026年10月24日に利用)。このデータを編集・加工して作成しています。

(私は、法律の専門家ではありません。使うときは、規約の原文を、ご自身で確かめてください。)

手順1: CSV を読み込む

  1. 「ホーム」タブの「データを取得」から、「テキスト/CSV」を選びます。
  2. CSV(syukujitsu.csv)を選びます。

プレビューには、「国民の祝日・休日月日」と「国民の祝日・休日名称」の2列が出ました。「元のファイル」は、「932: 日本語 (シフト JIS)」が、自動で選ばれていました。日付の列は、日付の型になっていました。「読み込み」を押します。

読み込みのプレビュー。ファイル名 syukujitsu.csv、元のファイルは 932: 日本語 (シフト JIS)。列は、国民の祝日・休日月日(日付)と、国民の祝日・休日名称(元日、成人の日、春分の日、天皇誕生日…)

CSV の先頭の行は、1955/1/1 の元日です。末尾は 2027/11/23 の勤労感謝の日でした。

手順2: 営業日の列を作る

日付テーブルを選んで、「新しい列」で、次を入れました。

営業日 =
IF (
    WEEKDAY ( [Date], 2 ) <= 5
        && NOT CONTAINS ( syukujitsu, syukujitsu[国民の祝日・休日月日], [Date] ),
    1,
    0
)
  • WEEKDAY([Date], 2) は、月曜が 1、日曜が 7 です。5 以下が、平日です。
  • CONTAINS(…) は、その日が、祝日の表に、あるかを調べます。
  • 平日で、祝日でなければ 1、そうでなければ 0 です。

2025年1月の最初の行を見ると、1月1日(水、元日)が 0、1月2日が 1、1月4日(土)と5日(日)が 0、1月13日(月、成人の日)が 0 でした。

手順3: 月ごとの営業日数

「新しいメジャー」で、営業日数 = SUM('日付テーブル'[営業日]) を作って、年月ごとに、表に並べました。

表のビジュアル。営業日数と年月。2025-01 は 21、2025-02 は 18、2025-03 は 20 …。2026-05 は 18、2026-12 は 23。合計は 490

結果の確認(別の計算との照合)

画面の値が合っているかを、Python で、別に計算して、比べました。同じ CSV を読んで、2025年1月〜2026年12月の、月曜〜金曜のうち、祝日でない日を数えた結果です。

年月営業日数年月営業日数
2025-01212026-0120
2025-02182026-0218
2025-03202026-0321
2025-04212026-0421
2025-05202026-0518
2025-06212026-0622
2025-07222026-0722
2025-08202026-0820
2025-09202026-0919
2025-10222026-1021
2025-11182026-1119
2025-12232026-1223

24か月分、すべて、画面の値と一致しました。合計は、どちらも 490日でした。

2026年5月は、5月3日(日)、4日(月)、5日(火)に加えて、**5月6日(水)が「休日」**として CSV に入っていて、営業日が 18日になります。CSV の「休日」は、振替休日や、祝日に挟まれた日(国民の休日)です。この CSV は、それらも入っているので、別に足す必要がありませんでした。

道具: 祝日テーブルと営業日の式を作る

CSV を読み込まずに、式だけで済ませたい人のために、ブラウザの道具を作りました(日本の祝日テーブルと営業日の DAX を作る)。期間を入れると、祝日の表(DATATABLE)と、営業日の列の式が出ます。入力は、ブラウザの中だけで使われ、送信されません。

私は、DATATABLE で、祝日の小さな表(3行)を作って、同じ形の営業日の列の式が、エラーなく動くことを、確かめました。道具が出す、長い式を、全部の期間で貼って、動かしたわけでは、ありません。

この記事で確認できたこと・できていないこと

確認日: 2026年10月24日。Power BI Desktop(Windows、日本語版、2.159.883.0、未サインイン)、内閣府の CSV(2026年10月24日に取得)。

確認できたこと

  • 内閣府の CSV が、日本語のまま、読み込めること(元のファイルは 932)
  • 営業日の列が、2025〜2026年の24か月分で、別の計算と、全部一致したこと(合計 490日)
  • 「休日」(振替休日など)も、CSV に入っていて、除かれること
  • DATATABLE で作った祝日の表でも、営業日の列の式が、エラーなく動くこと(3行の表)

確認できていないこと

  • 道具が出す、長い DATATABLE の式を、貼って動かしたこと
  • 祝日が変わったとき(法律の改正など)の、CSV の更新の動き
  • 会社の独自の休日(年末年始、創立記念日など)の扱い(自分で、祝日の表に、足す必要があります)
  • 2028年以降(CSV に、まだありません)
  • 大きなデータでの速さ、Power BI サービス、英語版での動作

参考

この記事で使った用語

Power BI Desktop
Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。

用語集をすべて見る