4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

雑・Excel入門試論 - 脱VLOOKUPの思考Advent Calendar 2022

Day 20

雑・Excel入門試論 - 脱VLOOKUPの思考 20 パワーピボット - 日付テーブル

Last updated at Posted at 2022-12-20

 時系列でデータ分析を行うためには、日付テーブルを作っておく必要があります。作成方法には、

  1. ワークシートに作成する
  2. データモデルの管理から作成
  3. Power Queryで作成する

などの方法があります。

 日付テーブルは、以下の要件を満たす必要があります。

  1. 日付型の列が必要です
  2. 日付列は一意の値でなければいけません
  3. 日付列に空白があってはいけません
  4. 日付列は全て連続した日付でなければなりません
    1. つまり、日付が欠落していたはいけません
  5. 日付列は、年全体にわたっている必要があります
    1. 1月スタートなら1月から12月。4月スタートなら4月から3月
  6. 日付テーブルとしてマークされていなければいけません

 このような条件を満たす日付テーブルをワークシートに作成するのは賢いやり方ではないので除外します。

今回使用するのは、以下のようなテーブルです。

データモデルの管理から作成

 データモデルの管理で、「デザイン」タブの「日付テーブル」から「新規作成」を選ぶと、「予定表」という名前の日付テーブルが作成されます。

 ただし、この日付テーブルは、データの日付が範囲を超えても連動して変わることはありません。「範囲の更新」を使って手動で変えてやることが必要になります。

 これで全て完了です。日付テーブルとしてもマーク済みです。

Power Queryで作成する

 作り方は色々あります。

 以下のようなテーブルに対する日付テーブルの作成を行うには、まず開始日と終了日を決めます。

 からのクエリを作成して、データの一番小さな日付を元に、その年の最初の日付を取り出してStartDateとします。EndDateは、一番大きな日付を取り出して、その年の最後の日付を取り出します。

 以下のようなコードで日付のリストを作成します。

= List.Dates(
    StartDate,
    Duration.Days(EndDate - StartDate) + 1,
    #duration(1,0,0,0)
)

 その後、リストをテーブルに変換し、年、月、日の列を追加していきます。その他にも必要な項目があれば追加していきます。

Power Queryエディタを閉じ、Power Pivotのデータモデルに追加した後、日付テーブルとしてマークしておきます。

 この方法で作成すると、データの日付が追加になっても更新を行えば日付テーブルがきちんと生成されます。

コンテンツ

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?