BI探検ノート

Power BI で、日付テーブルを作る方法(CALENDAR と「日付テーブルとしてマーク」)

約6分

目次
  1. 手順
  2. 月ごとの売上を、グラフにする: 「月」を値に入れない
  3. 公式の記載との照合
  4. この記事で確認できたこと・できていないこと
  5. 参考

確認日2026年10月20日。Power BI Desktop(日本語版、2.159.883.0)で、ダミーの CSV を使って確かめました。確認できていないことは、末尾にまとめました。

売上などの日付の列とは別に、「日付だけの表(日付テーブル)」を作っておくと、月ごとなどの集計がしやすくなります。DAX の CALENDAR で作って、売上のテーブルとつなぐ手順を、実機で確かめました。

結論(30秒版)

  • 「モデリング」タブの「新しいテーブル」で、日付テーブル = CALENDAR(DATE(2026,1,1), DATE(2026,12,31)) と入力すると、日付が1行ずつ入った表ができます。列の名前は「Date」でした。
  • 売上の日付と、日付テーブルの「Date」を、モデルビューでつなぎます。私の環境では、自動では、つながりませんでした。ドラッグすると、「一対一・双方向」になったので、「多対一・単一」に直して保存しました。
  • 「モデリング」タブの「カレンダー」グループで、「日付テーブルとしてマーク」を設定します。「月」の列を、グラフの軸ではなく値に入れると、「合計」になって、棒が2本になるので、注意が必要です。

手順

ダミーの CSV sales_d.csv(日付 2026/01/05〜2026/03/20 のうちの20日分と、売上)を読み込みました。日付の列は、日付型でした。

1. 日付テーブルを作る

  1. 「モデリング」タブの「計算」グループにある「新しいテーブル」を押します。

「モデリング」タブのリボン。「計算」グループに、新しいメジャー、クイック メジャー、新しい列、新しいテーブルが並んでいる

  1. 数式バーに、次のとおり入力して、Enter を押します。
日付テーブル = CALENDAR(DATE(2026,1,1), DATE(2026,12,31))

数式バーに「日付テーブル = CALENDAR(DATE(2026,1,1), DATE(2026,12,31))」を入力した画面

データペインに、「日付テーブル」ができて、列は「Date」の1つでした(列の名前は、日本語ではなく英語でした)。

データペインの「日付テーブル」。列は「Date」の1つだけで、左に展開の矢印がある

  1. 「新しい列」で、月と年の列を足します(列ツールの「新しい列」です)。
    • 月 = MONTH('日付テーブル'[Date])
    • 年 = YEAR('日付テーブル'[Date])

CALENDAR の範囲(2026/1/1〜12/31)は、私が決めたものです。データの期間に合わせて、書き換えます。データから範囲を自動で決める関数(CALENDARAUTO)は、確認していません。

2. 売上のテーブルと、つなぐ

モデルビュー(左端の3つ目のアイコン)を開くと、私の環境では、sales_d と日付テーブルは、自動では、つながっていませんでした。

sales_d の「日付」を、日付テーブルの「Date」へ、ドラッグします。「新しいリレーションシップ」のダイアログが出て、カーディナリティが「一対一 (1:1)」、クロスフィルターの方向が「双方向」に、自動で設定されました。 私の売上データは、日付が、すべて異なっていたためと考えられます。

売上は、同じ日に複数の行がある、ことが多いので、カーディナリティを「多対一 (*:1)」、クロスフィルターの方向を「単一」に直して、「保存」しました。

「新しいリレーションシップ」のダイアログ。sales_d の日付と日付テーブルの Date を結び、カーディナリティを多対一 (*:1)、クロスフィルターの方向を単一にしている

リレーションシップができると、sales_d の「日付」の展開矢印(日付の階層)が、データペインから消えました。理由は、確認していません。

3. 「日付テーブルとしてマーク」する

日付テーブルを選んで、「モデリング」タブの「カレンダー」グループを開きます。

「モデリング」タブの「カレンダー」グループ。「日付テーブルとしてマークする」のボタンがある

「日付テーブルとしてマーク」のダイアログで、スイッチを「オン」にして、「日付列を選択する」で「Date」を選ぶと、「正常に検証されました」と出ました。「保存」を押します。

「日付テーブルとしてマーク」のダイアログ。スイッチがオンで、日付列は Date、「正常に検証されました」と出ている。本文は、右端が切れている

ダイアログの本文には、「このテーブルに既に関連付けられている組み込みの日付テーブルは、すべて削除される」という趣旨の説明がありました(本文が右端で切れていて、全文は読めませんでした)。保存すると、「Date」の展開矢印(日付の階層)も、消えました。

月ごとの売上を、グラフにする: 「月」を値に入れない

「売上」と「月」のチェックを、順に入れると、「月」が、Y軸に「月 の合計」として入りました(月が整数で、集計が「合計」になるためです)。棒は、2本になりました。

直すには、「月」を、X軸にドラッグして、Y軸の「月 の合計」を外します。すると、X軸の月が、1・2・3の順に並び、Y軸は、売上の合計になりました(1月が 5900 など)。

月別の売上の棒グラフ。X軸は 1、2、3、Y軸は売上の合計。1月の棒にカーソルを当てると、月 1、売上の合計 5900 と出ている

公式の記載との照合

Microsoft Learn(日本語版)「Power BI Desktop で日付テーブルを設定し、使用する」(確認日 2026年10月20日)と、私の観察を、突き合わせました。

  • マーク時の検証: 公式では、日付テーブルとして指定した列を、次の条件で検証する、と書かれています。値が一意、null がない、日付が連続している、型が日付/時刻なら各値のタイムスタンプが同じ。私が見た「正常に検証されました」と、合っています。
  • 階層が消える点: 公式には、テーブルを日付テーブルとしてマークすると、組み込み(自動)の日付テーブルが削除され、それに基づくビジュアルや DAX は動かなくなる、独自の日付テーブルを指定すると、階層は自動で作られない、と書かれています。マークのあとに、階層の矢印が消えたことと、合っています。ただし、マークの前、リレーションシップを作った時点で、売上の日付の階層が消えた理由は、公式の記載では、確認できていません。
  • マークが必要な場合: 公式では、クラシックなタイム インテリジェンス関数を使う場合は、日付テーブルのマークが必要です。新しい「カレンダー ベースのタイム インテリジェンス」(プレビュー)を使う場合は、特定の状況を除き、マークは不要、とされています。
  • マークの場所: 公式の画面は、フィールドペインの右クリックか、「テーブル ツール」のリボンから、と書かれています。私の画面では、「モデリング」タブの「カレンダー」グループでした。公式にも、カレンダー ベースのタイム インテリジェンスを使う場合は、画面の外観が異なる、という注があります。

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

確認日: 2026年10月20日。Power BI Desktop(Windows、日本語版、2.159.883.0、未サインイン)、ダミーの CSV 20行(日付は、すべて異なる)。

確認できたこと

  • 「新しいテーブル」の場所と、CALENDAR での日付テーブルの作成(列名は Date)
  • 日付テーブルと売上のテーブルが、自動ではつながらなかったこと
  • 日付がすべて異なるデータで、ドラッグすると「一対一・双方向」になったこと
  • 「日付テーブルとしてマーク」の場所と、「正常に検証されました」の表示
  • 月の列を値に入れると「合計」になる点と、X軸に入れれば、1・2・3 の順に並ぶこと

確認できていないこと

  • 日付テーブルの列名を、日本語にする方法
  • 年・四半期・月名(「1月」など)の列の作り方
  • 日付が欠けているときの、マークのエラーの文言
  • 売上が、同じ日に複数行あるデータでの、自動のカーディナリティ
  • リレーションシップを作った時点で、日付の階層が消える理由(マークしたあとに消えることは、公式の記載と合っています)
  • CALENDARAUTO での作成
  • 英語版での名称

参考

この記事で使った用語

Power BI Desktop
Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。
セマンティックモデル
レポートやグラフに使える状態に整えた、データの元です。作り方の1つは、モデルを含む Desktop のファイルを、Power BI サービスにアップロードすることです。

用語集をすべて見る