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 (ゼロ)、またはすべてのテキスト式では空のテキストとして扱われます。

  • valueexpression のすべての可能な値に含まれていない場合、RANKX によって valueexpression の値に一時的に追加され、RANKX が再評価され、value の適切なランクが決定されます。

  • 省略可能な引数は、空のコンマ (、) を引数リストに配置することでスキップされる場合があります。つまり、RANKX(Inventory, [InventoryCost],,,"Dense")。

  • RANKX 関数を使う際に、"10 進数" データ型を持つ値間で等価関連の比較 (=、<>、>=、<=) を使うと、予期しない結果が返される可能性があります。 正しくない結果が発生する原因は、"10 進数" データ型の値が IEEE 標準 754 の浮動小数点数として格納され、その精度に固有の制限が生じるためです。 予期しない結果を回避するには、データ型を "固定小数点数" に変更するか、ROUND を使って強制的な丸め処理を行います。

  • この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。

Products テーブルの次の計算列では、インターネット チャネルの各製品の売上ランキングが計算されます。

= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))