Data-modeling-with-dax-understanding-data-tables

提供:Dev Guides
移動先:案内検索

データテーブルについて

データ分析には、長期間にわたるデータの閲覧と期間にわたる計算が含まれます。 たとえば、今年度の利益を前年の利益と比較する必要がある場合があります。 同様に、今後数年間の成長と利益を予測する必要があるかもしれません。 これらの場合、一定期間にわたってグループ化と集計を使用する必要があります。

DAXは、そのような計算のほとんどを実行するのに役立ついくつかのタイムインテリジェンス機能を提供します。 ただし、これらのDAX関数では、データモデル内の他のテーブルで使用するためにDateテーブルが必要です。

データソースから他のデータとともに日付テーブルをインポートするか、データモデルで自分で日付テーブルを作成できます。

この章では、日付テーブルのさまざまな側面を理解します。 Power Pivotデータモデルの日付テーブルに精通している場合は、この章をスキップして以降の章に進むことができます。 それ以外の場合は、Power Pivotデータモデルの日付テーブルを理解できます。

日付表とは何ですか?

日付テーブルは、データモデル内のテーブルであり、必要な期間にわたって少なくとも1つの連続した日付の列があります。 異なる期間を表す追加の列を持つことができます。 ただし、必要なのは、DAXタイムインテリジェンス関数で必要とされる連続した日付の列です。

例えば、

  • 日付テーブルには、日付、会計月、会計四半期、会計年度などの列を含めることができます。
  • 日付テーブルには、日付、月、四半期、年などの列を含めることができます。

連続した日付を持つ日付テーブル

暦年の範囲で計算する必要があるとします。 次に、日付テーブルには、その特定の暦年のすべての日付を含む、一連の連続した日付を持つ少なくとも1つの列が必要です。

たとえば、閲覧するデータの日付が2014年4月1日から2016年11月30日までであるとします。

  • 暦年についてレポートする必要がある場合、2014年1月1日から2016年12月31日までのすべての日付を順番に含む日付列の日付テーブルが必要です。
  • 会計年度についてレポートする必要があり、会計年度末が6月30日である場合、2013年7月1日から6月30日までのすべての日付を含む日付列の日付テーブルが必要です。 th ^、2017年のシーケンス。
  • カレンダーと会計年度の両方についてレポートする必要がある場合、必要な日付範囲にまたがる単一の日付テーブルを作成できます。

日付テーブルには、指定された期間の毎年の範囲のすべての日が含まれている必要があります。 したがって、その期間内に連続した日付を取得します。

定期的に新しいデータでデータを更新すると、終了日が1〜2年延長されるため、Dateテーブルを頻繁に更新する必要はありません。

日付テーブルは、次のスクリーンショットのようになります。

データテーブル

データモデルへの日付テーブルの追加

次のいずれかの方法で、データモデルに日付テーブルを追加できます-

  • リレーショナルデータベースまたはその他のデータソースからのインポート。
  • Excelで日付テーブルを作成し、Power Pivotで新しいテーブルにコピーまたはリンクします。
  • Microsoft Azure Marketplaceからのインポート。

Excelで日付テーブルを作成し、データモデルにコピーする

Excelで日付テーブルを作成してデータモデルにコピーすることは、データモデルでデータテーブルを作成する最も簡単で柔軟な方法です。

  • Excelで新しいワークシートを開きます。
  • タイプ-列の最初の行の日付。
  • 同じ列の2行目に作成する日付範囲の最初の日付を入力します。
  • セルを選択し、フィルハンドルをクリックして下にドラッグし、必要な日付範囲で連続した日付の列を作成します。

たとえば、1/1/2014と入力し、フィルハンドルをクリックして、2016年12月31日までの連続する日付を埋めるために下にドラッグします。

  • [日付]列をクリックします。
  • リボンの[挿入]タブをクリックします。
  • テーブルをクリックします。
  • テーブル範囲を確認します。
  • OKをクリックしてください。

日付の単一列の表は、Excelで準備ができています。

日付の単一列

  • テーブルを選択します。
  • リボンの[コピー]をクリックします。
  • [Power Pivot]ウィンドウをクリックします。
  • リボンの[貼り付け]をクリックします。

貼り付け

これにより、クリップボードの内容がデータモデルの新しいテーブルに追加されます。 したがって、同じ方法を使用して、既存のデータモデルに日付テーブルを作成することもできます。

次のスクリーンショットに示すように、プレビューの貼り付けダイアログボックスが表示されます。

  • [テーブル名]ボックスに「日付」と入力します。
  • データをプレビューします。

プレビューの貼り付け

  • チェックボックス-最初の行を列ヘッダーとして使用します。
  • OKをクリックしてください。

これにより、クリップボードの内容がデータモデルの新しいテーブルにコピーされます。

これで、連続した日付の単一列を持つデータモデルに日付テーブルができました。 列のヘッダーは、Excelテーブルで指定した日付です。

日付テーブルへの新しい日付列の追加

次に、計算の要件に従って、計算された列を日付テーブルに追加できます。

たとえば、次のように、日、月、年、および四半期の列を追加できます-

  • Day

DAY( 'Date' [Date])

MONTH( 'Date' [Date])

  • Year

YEAR( 'Date' [Date])

  • 四半期

CONCATENATE( "QTR"、INT(( 'Date' [Month] +2)/3))

結果のデータモデルの日付テーブルは、次のスクリーンショットのようになります。

結果の日付表

したがって、任意の数の計算列を日付テーブルに追加できます。 重要で必要なのは、日付テーブルに、計算を実行する期間にわたる連続した日付の列が必要であることです。

暦年の日付表の作成

暦年には、通常、1月1日から12月31日までの日付が含まれ、その特定の年にマークされた休日も含まれます。 計算を実行するときは、週末と祝日を除く稼働日のみを考慮する必要があります。

2017年の暦年の日付テーブルを作成するとします。

  • 2017年1月1日から2017年12月31日までの連続した日付で構成される列Dateを含むExcelテーブルを作成します。 (これを行う方法については、前のセクションを参照してください。)
  • Excelテーブルをコピーして、データモデルの新しいテーブルに貼り付けます。 (これを行う方法については、前のセクションを参照してください。)
  • テーブルにCalendarという名前を付けます。
  • 次の計算列を追加します-
  • 日= DAY( 'Calendar' [日付])
  • 月= MONTH( 'Calendar' [日付])
  • 年= YEAR( 'カレンダー' [日付])
  • 曜日= FORMAT( 'Calendar' [Date]、 "DDD")
  • 月の名前= FORMAT( 'Calendar' [Date]、 "MMM")

計算列の追加

カレンダーテーブルへの休日の追加

次のように休日をカレンダーテーブルに追加します-

  • その年の宣言された休日のリストを取得します。
  • たとえば、米国の場合、次のリンクhttp://www.calendar-365.com/2017-calendarl[[[1]] ]。
  • それらをコピーしてExcelワークシートに貼り付けます。
  • Excelテーブルをコピーして、データモデルの新しいテーブルに貼り付けます。
  • テーブルにHolidaysという名前を付けます。

名前テーブルの休日

  • 次に、DAX LOOKUPVALUE関数を使用して、休日の計算列をカレンダーテーブルに追加できます。
  • = LOOKUPVALUE(Holidays [Holiday]、Holidays [Date]、 'Calendar' [Date])*

DAX LOOKUPVALUE関数は、3番目のパラメーター、つまり 2番目のパラメーターのCalendar [Date]、つまり Holidays [Date]と最初のパラメーター、つまり 休日がある場合は[休日]。 結果は、次のスクリーンショットのようになります。

ルックアップ値

会計年度への列の追加

通常、会計年度には、会計年度末から翌会計年度末までの月の1 ^ st ^からの日付が含まれます。 たとえば、会計年度末が3月31日である場合、会計年度の範囲は4月1日から3月31日です。

あなたは、DAXの式を使用してカレンダー期間に会計期間を含めることができます-

 *FYEのメジャーを追加
+* 年度:= 3 *
* 次の計算列を追加します-
* *会計年度*

IF( 'Calendar' [Month] ⇐ 'Calendar' [FYE]、 'Calendar' [Year]、 'Calendar' [Year] +1)

  • 会計月

IF( 'Calendar' [Month] ⇐ 'Calendar' [FYE]、12-'Calendar '[FYE] +' Calendar '[Month]、' Calendar '[Month]-' Calendar '[FYE])

  • 会計四半期

INT(( 'Calendar' [会計月] +2)/3)

会計年度への列の追加

日付テーブルプロパティの設定

TOTALYTD、PREVIOUSMONTH、DATESBETWEENなどのDAXタイムインテリジェンス関数を使用する場合、正しく機能するにはメタデータが必要です。 日付テーブルプロパティは、このようなメタデータを設定します。

日付テーブルのプロパティを設定するには-

  • Power Pivotウィンドウで[カレンダー]テーブルを選択します。
  • リボンの[デザイン]タブをクリックします。
  • [カレンダー]グループの[日付テーブルとしてマーク]をクリックします。
  • ドロップダウンリストで[日付テーブルとしてマーク]をクリックします。

日付テーブルプロパティの設定

[日付テーブルとしてマーク]ダイアログボックスが表示されます。 [カレンダー]テーブルの[日付]列を選択します。 これは日付データ型の列である必要があり、一意の値を持っている必要があります。 OKをクリックしてください。

日付テーブルとしてマーク