RANKX
傳回 table
自變數中每個數據列之數位清單中的數位排名。
語法
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
參數
table
傳回評估表示式之數據表的任何 DAX 表達式。
expression
傳回單一純量值的任何 DAX 表達式。 表達式會針對 table
的每個數據列進行評估,以產生所有可能的排名值。 請參閱一節,以瞭解 expression
評估為 BLANK時的函式行為。
value
(選擇性) 傳回要找到其排名的單一純量值的任何 DAX 表示式。 請參閱一節,以了解表達式中找不到 value
時函式的行為。
省略 value
參數時,會改用目前數據列的表達式值。
order
(選擇性) 值,指定如何排名 value
、低到高或高到低:
價值 | 替代值 | 描述 |
---|---|---|
0 (zero) | FALSE |
依表達式值的遞減順序排名。 如果 value 等於 expression 中最高的數位,則 RANKX 會傳回 1。 這是省略 order 參數時的預設值。 |
1 | TRUE |
依運算式的遞增順序排名。 如果 value 等於表示式中最低的數位,則 RANKX 會傳回 1。 |
ties
(選擇性) 列舉,定義如何在有系結時判斷排名。
列舉 | 描述 |
---|---|
Skip |
系結之後的下一個排名值是系結的排名值加上系結值的計數。 例如,如果五 (5) 個值與排名系結為 11,則下一個值將會收到 16 個 (11 + 5) 的排名。 當省略 ties 參數時,這是預設值。 |
Dense |
下一個排名值,在平局之後,是下一個排名值。 例如,如果五 (5) 個值與排名 11 系結,則下一個值將會收到 12 的排名。 |
傳回值
針對 table
數位的所有數據列評估 expression
所有可能值之間的 value
排名編號。
備註
如果
expression
或value
評估為 BLANK,則會將所有產生數位的表達式視為 0(零),或視為所有文字表達式的空白文字。如果
value
不是expression
的所有可能值之一,則 RANKX 暫時將value
新增至expression
的值,然後重新評估 RANKX,以判斷value
的適當排名。選擇性自變數可能會略過,方法是將空的逗號 (,) 放在自變數清單中,例如
RANKX(Inventory, [InventoryCost],,,"Dense")
。=
、<
、>
、>=
和<=
值與 十進位數 數據類型之間的相等比較,在使用 RANKX 函式時可能會傳回非預期的結果。 可能會產生不正確的結果,因為具有 十進位數 數據類型的值會儲存為 IEEE Standard 754 浮點數,而且其精確度有固有的限制。 若要避免非預期的結果,請將數據類型變更為 固定十進位數,或使用 ROUND執行強制四捨五入。在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
範例
Products 數據表中的下列計算結果列會計算因特網通道中每個產品的銷售排名。
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))