Excel-dax-time-intelligence
Excel DAX-タイムインテリジェンス
DAXには、 Time Intelligence と呼ばれる重要で強力な機能があります。 タイムインテリジェンスを使用すると、ピボットテーブルで使用する期間を参照するDAX数式を作成できます。
DAXには、時間の経過に伴うデータの集計と比較のために、35の時間インテリジェンス機能があります。 ただし、これらのDAX関数には、エラーを避けるために理解して注意して作業する必要があるデータに対する制約がいくつかあります。
タイムインテリジェンスがDAXを強力にする理由
タイムインテリジェンス機能は、ピボットテーブルとPower Viewの視覚化で選択したコンテキストに応じて、常に変化するデータを処理します。 ご存知のように、ほとんどのデータ分析には、一定期間にわたるデータの要約、一定期間にわたるデータ値の比較、傾向の理解、将来の予測に基づいた意思決定が含まれます。
たとえば、過去1か月の売上高を製品ごとに合計し、合計を会計年度の他の月の合計と比較することができます。 つまり、特定の期間の販売トランザクションをグループ化および集計する方法として日付を使用する必要があります。
ここで、DAXの威力を観察できます。 DAXタイムインテリジェンス関数を使用して、ピボットテーブルの日付選択を変更することなく、データを長期にわたって分析するのに役立つ計算フィールドを定義できます。 これにより、作業が簡単になります。 さらに、他の方法では不可能なピボットテーブルを構築できます。
DAXタイムインテリジェンス関数の要件
DAXタイムインテリジェンス関数には特定の要件があります。 これらの要件が満たされていない場合、エラーが発生するか、正しく機能しない可能性があります。 したがって、これらの要件をルールまたは制約と呼ぶこともできます。 以下は、特定のDAXタイムインテリジェンス機能の要件/ルール/制約です-
- データモデルに日付テーブルが必要です。
- 日付テーブルには、DAXによって日付列と見なされる列が含まれている必要があります。 列には任意の名前を付けることができますが、次の条件に準拠する必要があります。o日付列には、データを分析している期間の毎日をカバーする連続した日付セットを含める必要があります。
- すべての日付は、日付列に一度だけ存在する必要があります。
- 日付をスキップすることはできません(例: 週末の日付をスキップすることはできません)。
- DAXタイムインテリジェンス機能は、標準カレンダーでのみ機能し、年の始まりを1月1日、年の終わりを12月31日、年の月と各月の日を暦年とします。
ただし、会計年度ごとに標準カレンダーをカスタマイズできます。 タイムインテリジェンス機能を使用する前に、上記の要件を確認することをお勧めします。
日付テーブルとDAX数式でのその使用法の詳細については、このチュートリアルライブラリのチュートリアル= DAXを使用したデータモデリングを参照してください。
DAXタイムインテリジェンス関数-カテゴリ
DAXタイムインテリジェンス機能は次のように分類することができます-
- 単一の日付を返すDAX関数。
- 日付のテーブルを返すDAX関数。 *一定期間にわたって式を評価するDAX関数。
単一の日付を返すDAX関数
このカテゴリのDAX関数は、単一の日付を返します。
このカテゴリには10のDAX機能があります-
Sr.No. | DAX Function & Return Value |
---|---|
1 |
現在のコンテキストのDate_Columnの最初の日付を返します。 |
2 |
LASTDATE (Date_Column) 現在のコンテキストのDate_Columnの最後の日付を返します。 |
3 |
FIRSTNONBLANK (Date_Column, Expression) 式に空白以外の値がある最初の日付を返します。 |
4 |
LASTNONBLANK (Date_Column, Expression) 式に空白以外の値がある最後の日付を返します。 |
5 |
STARTOFMONTH (Date_Column) 現在のコンテキストの月の最初の日付を返します。 |
6 |
ENDOFMONTH (Date_Column) 現在のコンテキストの月の最後の日付を返します。 |
7 |
STARTOFQUARTER (Date_Column) 現在のコンテキストで四半期の最初の日付を返します。 |
8 |
ENDOFQUARTER (Date_Column) 現在のコンテキストの四半期の最終日を返します。 |
9 |
STARTOFYEAR (Date_Column, [YE_Date]) 現在のコンテキストの年の最初の日付を返します。 |
10 |
ENDOFYEAR (Date_Column, [YE_Date]) 現在のコンテキストでの年の最後の日付を返します。 |
日付のテーブルを返すDAX関数
このカテゴリのDAX関数は、日付のテーブルを返します。 これらの関数は、主にDAX関数のCALCULATEのSetFilter引数として使用されます。
このカテゴリには16個のDAX関数があります。 これらの8つのDAX関数は、「前の」関数と「次の」関数です。
- 「前の」および「次の」関数は、現在のコンテキストの日付列で始まり、前または次の日、月、四半期、または年を計算します。
- 「前の」関数は現在のコンテキストの最初の日付から後方に機能し、「次の」関数は現在のコンテキストの最後の日付から前方に移動します。 *「前の」および「次の」関数は、結果の日付を単一の列テーブルの形式で返します。
Sr.No. | DAX Function & Return Value |
---|---|
1 |
現在のコンテキストのDate_Columnの最初の日付より前の日を表すすべての日付の列を含むテーブルを返します。 |
2 |
NEXTDAY (Date_Column) 現在のコンテキストのDate_Columnで指定された最初の日付に基づいて、翌日のすべての日付の列を含むテーブルを返します。 |
3 |
PREVIOUSMONTH (Date_Column) 現在のコンテキストのDate_Columnの最初の日付に基づいて、前月のすべての日付の列を含むテーブルを返します。 |
4 |
NEXTMONTH (Date_Column) 現在のコンテキストのDate_Columnの最初の日付に基づいて、翌月のすべての日付の列を含むテーブルを返します。 |
5 |
PREVIOUSQUARTER (Date_Column) 現在のコンテキストのDate_Columnの最初の日付に基づいて、前四半期のすべての日付の列を含むテーブルを返します。 |
6 |
NEXTQUARTER (Date_Column) 現在のコンテキストのDate_Columnで指定された最初の日付に基づいて、次の四半期のすべての日付の列を含むテーブルを返します。 |
7 |
PREVIOUSYEAR (Date_Column, [YE_Date]) 現在のコンテキストのDate_Columnの最後の日付を指定すると、前年のすべての日付の列を含むテーブルを返します。 |
8 |
NEXTYEAR (Date_Column, [YE_Date]) 現在のコンテキストのDate_Columnの最初の日付に基づいて、翌年のすべての日付の列を含むテーブルを返します。 |
4つのDAX関数は、期間内の一連の日付を計算します。 これらの関数は、現在のコンテキストの最後の日付を使用して計算を実行します。
Sr.No. | DAX Function & Return Value |
---|---|
1 |
DATESMTD (Date_Column) 現在のコンテキストで、今月の日付の列を含むテーブルを返します。 |
2 |
DATESQTD (Date_Column) 現在のコンテキストで、これまでの四半期の日付の列を含むテーブルを返します。 |
3 |
DATESYTD (Date_Column, [YE_Date]) 現在のコンテキストで、年間の日付の列を含むテーブルを返します。 |
4 |
SAMEPERIODLASTYEAR (Date_Column) 現在のコンテキストで、指定されたDate_Columnの日付から1年前にシフトした日付の列を含むテーブルを返します。 注-SAMEPERIODLASTYEARでは、現在のコンテキストに連続した日付セットが含まれている必要があります。 現在のコンテキストが連続した日付のセットではない場合、SAMEPERIODLASTYEARはエラーを返します。 |
- 4つの(4)DAX関数を使用して、現在のコンテキストにある日付のセットから新しい日付のセットにシフトします。 +これらのDAX関数は、以前のものよりも強力です。
- DAX関数– DATEADD、DATESINPERIOD、およびPARALLELPERIODは、現在のコンテキストからいくつかの時間間隔をシフトします。 間隔は日、月、四半期、または年で、それぞれキーワードDAY、MONTH、QUARTER、YEARで表されます。 例えば:
- 2日前にシフトします。
- 5か月先に進みます。
- 今日から1か月先に進みます。
- 昨年の同じ四半期に戻ります。 *DAX関数– DATESBETWEENは、指定された開始日から終了日までの一連の日付を計算します。
Sr.No. | DAX Function & Return Value |
---|---|
1 |
現在のコンテキストの日付から指定された間隔数だけ時間を前後にシフトした日付の列を含むテーブルを返します。 |
2 |
DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval) start_dateで始まり、指定されたnumber_of_intervalsの間続く日付の列を含むテーブルを返します。 |
3 |
PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval) 現在のコンテキストで指定されたDate_Columnの日付に並行する期間を表す日付の列を含むテーブルを返します。日付は、時間を前後にいくつかの間隔でシフトします。 |
4 |
DATESBETWEEN (Date_Column, Start_Date, End_Date) start_dateで始まりend_dateまで続く日付の列を含むテーブルを返します。 |
一定期間にわたって式を評価するDAX関数
このカテゴリのDAX関数は、指定された期間にわたって式を評価します。
このカテゴリには9つのDAX関数があります-
Sr.No. | DAX Function & Return Value |
---|---|
1 |
現在のコンテキストで、今月の日付の式の値を評価します。 |
2 |
TOTALQTD (Expression, Date_Column, [SetFilter]) 現在のコンテキストで、これまでの四半期の日付の式の値を評価します。 |
3 |
TOTALYTD (Expression, Date_Column, [SetFilter], [YE_Date]) 現在のコンテキストで、年の日付の式の値を評価します |
- このカテゴリの6つのDAX関数を使用して、期首残高と期末残高を計算できます。
- 任意の期間の期首残高は、前の期間の期末残高と同じです。
- 期末残高には期間の終わりまでのすべてのデータが含まれますが、期首残高には現在の期間内のデータは含まれません。
- これらのDAX関数は、特定の時点で評価された式の値を常に返します。
- 私たちが気にするのは、常にカレンダー期間の最後の可能な日付値です。
- 期首残高は前期間の最終日に基づいており、期末残高は現在の期間の最終日に基づいています。 *現在の期間は、常に現在の日付コンテキストの最後の日付によって決定されます。
Sr.No. | DAX Function & Return Value |
---|---|
1 |
現在のコンテキストの月の最初の日付で式を評価します。 |
2 |
CLOSINGBALANCEMONTH (Expression, Date_Column, [SetFilter]) 現在のコンテキストの月の最後の日付で式を評価します。 |
3 |
OPENINGBALANCEQUARTER (Expression, Date_Column, [SetFilter]) 現在のコンテキストで、四半期の最初の日付で式を評価します。 |
4 |
CLOSINGBALANCEQUARTER (Expression, Date_Column, [SetFilter]) 現在のコンテキストで四半期の最後の日付の式を評価します。 |
5 |
OPENINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date]) 現在のコンテキストの年の最初の日付で式を評価します。 |
6 |
CLOSINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date]) 現在のコンテキストの年の最後の日付で式を評価します。 |