PARALLELPERIOD 関数
現在のコンテキストにおける、指定された dates 列内の日付に並行する期間を表す日付の列が含まれたテーブルを返します。並行する期間は、指定された間隔の数だけ日付を正方向または負方向にシフトして求められます。
構文
PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>)
パラメーター
項目 |
定義 |
dates |
日付が格納されている列。 |
number_of_intervals |
日付に加算または日付から減算する間隔の数を示す整数。 |
interval |
日付をシフトする間隔。 間隔の値には、year、quarter、または month を使用できます。 |
戻り値
日付値の単一列から成るテーブル。
説明
この関数は、dates で指定された現在の列にある一連の日付を受け取り、その期間の最初の日と最後の日を指定の間隔数だけシフトし、シフトされた最初の日から最後の日までの連続するすべての日付を返します。 渡された期間が 1 か月未満、1 四半期未満、または 1 年未満であっても、結果では不足している日数が補われ、完全な月、四半期、または年になります。
注 |
---|
コンテキストが数式の結果に与える影響の詳細については、「DAX の数式のコンテキスト」を参照してください。 |
dates 引数には、次のいずれかを指定できます。
日付/時刻列への参照。
日付/時刻値の単一列を返すテーブル式。
日付/時刻値の単一列テーブルを定義するブール式。
注 |
---|
ブール式の制約の詳細については、「CALCULATE 関数」を参照してください。 |
number_of_intervals に指定された数値が正の値の場合、dates の日付は時間的に進められます。負の値の場合、dates の日付は時間的に戻ります。
interval パラメーターは、文字列のセットではなく列挙値です。そのため、値を引用符で囲まないでください。 また、year、quarter、および month の値を使用する際にはフル スペルで記述してください。
結果のテーブルに含まれるのは、内在するテーブル列の値として格納されている日付のみです。
PARALLELPERIOD 関数は DATEADD 関数に似ていますが、DATEADD では部分的な期間が返されるのに対し、PARALLELPERIOD では常に、指定された粒度で完全な期間が返される点が異なります。 たとえば、元の日付が、同年の 6 月 10 日から 6 月 21 日までの日付であるとします。これを 1 か月進めるとすると、PARALLELPERIOD 関数では、翌月のすべての日付 (7 月 1 日から 7 月 31 日まで) が返されます。DATEADD を使用した場合、結果に含まれる日付は 7 月 10 日から 7 月 21 日までの日付のみになります。
現在のコンテキストで、指定された期間内の日付が連続していなければ、関数からエラーが返されます。
この DAX 関数は DirectQuery モードでは使用できません。 DirectQuery モデルの制限の詳細については、https://go.microsoft.com/fwlink/?LinkId=219172 を参照してください。
使用例
次の例は、インターネット販売の前年の売上を計算するメジャーを作成するための数式です。
この数式の動作を確認するには、ピボットテーブルを作成し、ピボットテーブルの [行ラベル] 領域に CalendarYear フィールドと CalendarQuarter フィールドを追加します。 次に、コード例で定義されている数式を使用して、ピボットテーブルの [値] 領域に Previous Year Sales という名前のメジャーを追加します。
注 |
---|
この例では、DAX サンプル ブック内の DateTime テーブルを使用しています。 サンプルの詳細については、を参照してください。 |
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PARALLELPERIOD(DateTime[DateKey],-1,year))