RANKX
table 引数の行別に数値の一覧で数値のランキングを返します。
構文
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
パラメーター
テーブル
式が評価されるデータのテーブルを返す任意の DAX 式。
式 (expression)
単一のスカラー値を返す任意の DAX 式。 式は、table の各行に対して評価され、ランク付けのためにすべての可能な値が生成されます。 expression が空白と評価されるときの関数の動作について、「解説」セクションを参照してください。
value
(省略可能) ランク付けの探索対象となるスカラー値を 1 つ返す任意の DAX 式。 式に value が見つからない場合の関数の動作については、「解説」セクションを参照してください。
value パラメーターを省略すると、代わりに現在の行の式の値が使用されます。
order
(省略可能) value のランク付け方法 (低から高、または高から低) を指定する値。
値 | 代替値 | 説明 |
---|---|---|
0 (ゼロ) | FALSE | 式の値の降順に順位付けします。 value が expression の最大値と等しい場合、RANKX からは 1 が返されます。 これは、order パラメーターを省略した場合の既定値です。 |
1 | TRUE | 式の昇順で順位付けます。 value が expression の最小値と等しい場合、RANKX からは 1 が返されます。 |
ties
(省略可能) 同点がある場合の順位付けの決定方法を定義する列挙体。
列挙体 | 説明 |
---|---|
スキップ | 同順位の後の次のランク値は、同順位の順位値に同順位の値のカウントを加えたものです。 たとえば、5 個の値がランク 11 に関連付けられている場合、次の値はランク 16 (11 + 5) を受け取ります。 これは、ties パラメーターを省略した場合の既定値です。 |
高密度 | 同順位の後の次の順位値は、次の順位値になります。 たとえば、5 個の値がランク 11 に関連付けられている場合、次の値はランク 12 を受け取ります。 |
戻り値
table 番号のすべての行に対して評価される、expression のすべての可能な値の中での value のランク番号。
解説
expression または value が空白と評価された場合、数値になるすべての式では 0 (ゼロ)、またはすべてのテキスト式では空のテキストとして扱われます。
value が expression のすべての可能な値に含まれていない場合、RANKX によって value が expression の値に一時的に追加され、RANKX が再評価され、value の適切なランクが決定されます。
省略可能な引数は、空のコンマ (、) を引数リストに配置することでスキップされる場合があります。つまり、RANKX(Inventory, [InventoryCost],,,"Dense")。
RANKX 関数を使用する際に、"10 進数" データ型を持つ値間で等価関連の比較 (=、<>、>=、<=) を使用すると、予期しない結果が返される可能性があります。 正しくない結果が発生する原因は、"10 進数" データ型の値が IEEE 標準 754 の浮動小数点数として格納され、その精度に固有の制限が生じるためです。 予期しない結果を回避するには、データ型を "固定小数点数" に変更するか、ROUND を使って強制的な丸め処理を行います。
この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。
例
Products テーブルの次の計算列では、インターネット チャネルの各製品の売上ランキングが計算されます。
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))