INDEX
指定したパーティション内の位置パラメーターで指定された絶対位置にある行を、指定した順序で並べ替え、返します。 現在のパーティションを 1 つのパーティションに推定できない If は、複数の行が返される可能性があります。
構文
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
パラメーター
用語 | 定義 |
---|---|
position |
データを取得する絶対位置 (1 から始まる) : - position は正です。1 は first 行、2 は second 行などです。- position は負の値です。-1 は last 行、-2 は secondlast 行などです。position が境界外にある場合は、or ゼロ、orBLANK() INDEX は空のテーブルを返します。 スカラー valueを返す任意の DAX 式を指定できます。 |
relation |
(省略可能)出力が返されるテーブル式。 指定 If、 partitionBy の all 列は、related テーブル or 列から取得する必要があります。
If 省略: - orderBy を明示的に指定する必要があります。
- All orderBy andpartitionBy 式は、1 つのテーブルから取得 and 完全修飾列名である必要があります。
- orderBy andpartitionBy の all 列の ALLSELECTED() が既定値になります。 |
axis |
(省略可能)視覚図形の軸。 視覚的な計算でのみ使用でき、and は relation を置き換えます。 |
orderBy |
(省略可能)各パーティションの並べ替え方法を define する式を含む ORDERBY() 句。
If 省略: - relation を明示的に指定する必要があります。
- partitionBy で既に指定 notrelation 内のすべての列による順序付けが既定値です。 |
blanks |
(省略可能)並べ替え時の blankvalues の処理方法を定義する列挙体。
このパラメーターは、将来使用するために予約されています。 現在、サポートされている唯一の value は DEFAULT であり、数値 values の動作は 0 and 負の valuesの間で並べ替 blankvalues。 文字列の動作は、空の文字列を含む文字列を all する前に順序付け blankvalues。 |
partitionBy |
(省略可能)relation のパーティション分割方法を define する列を含む PARTITIONBY() 句。 省略 If、 relation は 1 つのパーティションとして扱われます。 |
matchBy |
(省略可能)現在の行を識別 and データの照合方法を define する列を含む MATCHBY() 句。 |
reset |
(省略可能)ビジュアル計算でのみ使用できます。 計算 if リセット and、ビジュアル図形の列階層のレベルを示します。 使用できる values は、NONE 、LOWESTPARENT 、HIGHESTPARENT 、整数 or です。 動作は、整数の signによって異なります: - If 0 or 省略すると、計算はリセット not。 NONE に相当します。
- 正 If、整数はグレインに関係なく、最も高い列から始まる列を識別します。 HIGHESTPARENT は 1 に相当します。
- 負 If、整数は現在のグレインを基準にして、最下位から始まる列を識別します。 LOWESTPARENT は -1 に相当します。 |
value を返す
絶対位置にある行。
備考
各 partitionBy
andmatchBy
列には、動作する "現在のパーティション" を define するのに役立つ、対応する外部 value が必要です。動作は次のとおりです。
- 対応する外部列が 1 つだけ存在する If は、その value が使用されます。
- 対応する外部列がない If:
-
INDEX は、対応する外部列がない列 all
partitionBy
andmatchBy
決定 first。 - INDEXの親コンテキスト内のこれらの列に対する既存の values の組み合わせごとに、行が返 andINDEX が評価されます。
- INDEX最終的な出力は、これらの行の union です。
-
INDEX は、対応する外部列がない列 all
- 複数の対応する外部列がある If は、error が返されます。
If
matchBy
が存在 INDEX は、matchBy
andpartitionBy
列を使用して行を識別しようとします。
If
matchBy
が存在 not、orderBy
andpartitionBy
内で指定された列 andrelation
内のすべての行を一意に識別することはできません。
- INDEX は、すべての行を一意に識別するために必要な追加列の最小数を find しようとします。
- このような列が見つかる If、INDEX は自動的にこれらの新しい列を
orderBy
に追加します。and 各パーティションは、この新しい一連の OrderBy 列を使用して並べ替えられます。 - このような列が見つからない If は、error が返されます。
空のテーブルが if返されます。
-
PartitionBy 列の対応する外部 value は、
relation
内に存在 not。 -
position
value は、パーティション内に存在 not 位置を参照します。
If
INDEX は、relation
andorderBy
を省略した場合と同じテーブルで定義された計算列内で使用され、error が返されます。
reset
ビジュアル計算でのみ使用できますが、and を orderBy
orpartitionBy
と組み合わせて使用することはできません。
If
reset
が存在する場合、axis
は指定できますが、relation
指定できません。
例 1 - 計算列
次の DAX クエリ:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
次の表を返します。
DimDate[CalendarYear] |
---|
2005 |
例 2 - 計算列
次の DAX クエリ:
EVALUATE
SUMMARIZECOLUMNS (
FactInternetSales[ProductKey],
DimDate[MonthNumberOfYear],
FILTER (
VALUES(FactInternetSales[ProductKey]),
[ProductKey] < 222
),
"CurrentSales", SUM(FactInternetSales[SalesAmount]),
"LastMonthSales",
CALCULATE (
SUM(FactInternetSales[SalesAmount]),
INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear]))
)
)
ORDER BY [ProductKey], [MonthNumberOfYear]
次の表を返します。
FactInternetSales[ProductKey] | DimDate[MonthNumberOfYear] | [CurrentSales] | [LastMonthSales] |
---|---|---|---|
214 | 1 | 5423.45 | 8047.7 |
214 | 2 | 4968.58 | 8047.7 |
214 | 3 | 5598.4 | 8047.7 |
214 | 4 | 5073.55 | 8047.7 |
214 | 5 | 5248.5 | 8047.7 |
214 | 6 | 7487.86 | 8047.7 |
214 | 7 | 7382.89 | 8047.7 |
214 | 8 | 6543.13 | 8047.7 |
214 | 9 | 6788.06 | 8047.7 |
214 | 10 | 6858.04 | 8047.7 |
214 | 11 | 8607.54 | 8047.7 |
214 | 12 | 8047.7 | 8047.7 |
217 | 1 | 5353.47 | 7767.78 |
217 | 2 | 4268.78 | 7767.78 |
217 | 3 | 5773.35 | 7767.78 |
217 | 4 | 5738.36 | 7767.78 |
217 | 5 | 6158.24 | 7767.78 |
217 | 6 | 6998 | 7767.78 |
217 | 7 | 5563.41 | 7767.78 |
217 | 8 | 5913.31 | 7767.78 |
217 | 9 | 5913.31 | 7767.78 |
217 | 10 | 6823.05 | 7767.78 |
217 | 11 | 6683.09 | 7767.78 |
217 | 12 | 7767.78 | 7767.78 |
例 3 - ビジュアル計算
次の視覚的な計算 DAX クエリです。
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
各 monthに対して containsテーブルを拡張する:
- 合計売上高。
- それぞれの yearの firstmonth との差;
- それぞれの quarterの firstmonth との差を and。
次のスクリーンショットは、first ビジュアル計算式 and ビジュアル マトリックスを示しています。
視覚的な計算 を