RANKX
Se aplica a:columna Calculadatabla calculadaMedidacálculo visual
Devuelve la clasificación de un número en una lista de números para cada fila del argumento table
.
Sintaxis
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Parámetros
table
expresión Any DAX que devuelve una tabla de datos sobre la que se evalúa la expresión.
expression
expresión Any DAX que devuelve un único valor escalar. La expresión se evalúa para cada fila de table
, para generar todos los valores posibles para la clasificación. Consulte la sección de comentarios para comprender el comportamiento de la función cuando expression
se evalúa como BLANK.
value
(opcional) Expresión DAX que devuelve un único valor escalar cuyo rango se va a encontrar. Consulte la sección comentarios para comprender el comportamiento de la función cuando no se encuentra value
en la expresión.
Cuando se omite el parámetro value
, se usa en su lugar el valor de expresión en la fila actual.
order
(opcional) Valor que especifica cómo clasificar value
, bajo a alto o alto a bajo:
valor | valor alternativo | Descripción |
---|---|---|
0 (cero) | FALSE |
Clasifica en orden descendente de valores de expresión. Si el valor es igual al número más alto de la expresión, RANKX devuelve 1. Este es el valor predeterminado cuando se omite el parámetro order. |
1 | TRUE |
Clasifica en orden ascendente los valores de la expresión. Si el valor es igual al número más bajo de la expresión, RANKX devuelve 1. |
ties
(opcional) Enumeración que define cómo determinar la clasificación cuando hay vínculos.
enumeración | Descripción |
---|---|
Skip |
El siguiente valor de clasificación, después de un empate, es el valor de clasificación del empate más el recuento de valores vinculados. Por ejemplo, si cinco (5) valores están vinculados con un rango de 11, el siguiente valor recibirá un rango de 16 (11 + 5). Este es el valor predeterminado cuando se omite ties parámetro. |
Dense |
El siguiente valor de clasificación, después de un empate, es el siguiente valor de clasificación. Por ejemplo, si cinco (5) valores están vinculados con un rango de 11, el siguiente valor recibirá un rango de 12. |
Valor devuelto
Número de rango de value
entre todos los valores posibles de expression
evaluados para todas las filas de números de table
.
Comentarios
Si
expression
ovalue
se evalúa como BLANK se trata como 0 (cero) para todas las expresiones que dan como resultado un número o como texto vacío para todas las expresiones de texto.Si
value
no está entre todos los valores posibles deexpression
, RANKX agrega temporalmentevalue
a los valores deexpression
y vuelve a evaluar RANKX para determinar la clasificación adecuada devalue
.Los argumentos opcionales se pueden omitir colocando una coma vacía (,) en la lista de argumentos, como
RANKX(Inventory, [InventoryCost],,,"Dense")
.Comparaciones relacionadas con la igualdad (
=
,<
,>
,>=
y<=
) entre los valores con el número decimal tipo de datos puede devolver resultados inesperados al usar RANKX función. Los resultados incorrectos pueden producirse porque los valores con número decimal tipo de datos se almacenan como números de punto flotante IEEE Standard 754 y tienen limitaciones inherentes en su precisión. Para evitar resultados inesperados, cambie el tipo de datos a número decimal fijo o realice un redondeo forzado mediante ROUND.Esta función no se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas o reglas de seguridad de nivel de fila (RLS).
Ejemplo
La siguiente columna calculada de la tabla Products calcula la clasificación de ventas de cada producto en el canal de Internet.
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))