RANKX
aplica-se a:coluna calculada
tabela calculada
medida
cálculo visual
Retorna a classificação de um número em uma lista de números para cada linha no argumento table
.
Sintaxe
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Parâmetros
table
qualquer expressão DAX que retorna uma tabela de dados sobre a qual a expressão é avaliada.
expression
qualquer expressão DAX que retorna um único valor escalar. A expressão é avaliada para cada linha de table
, para gerar todos os valores possíveis para a classificação. Consulte a seção comentários para entender o comportamento da função quando expression
é avaliada como BLANK.
value
(opcional) Qualquer expressão DAX que retorna um único valor escalar cuja classificação deve ser encontrada. Consulte a seção comentários para entender o comportamento da função quando value
não for encontrado na expressão.
Quando o parâmetro value
é omitido, o valor da expressão na linha atual é usado.
order
(opcional) Um valor que especifica como classificar value
, baixo a alto ou alto para baixo:
valor | valor alternativo | Descrição |
---|---|---|
0 (zero) | FALSE |
Classifica em ordem decrescente de valores de expressão. Se o valor for igual ao número mais alto na expressão, RANKX retornará 1. Esse é o valor padrão quando o parâmetro order é omitido. |
1 | TRUE |
Classifica em ordem crescente de expressão. Se o valor for igual ao menor número na expressão, RANKX retornará 1. |
ties
(opcional) Uma enumeração que define como determinar a classificação quando há vínculos.
enumeração | Descrição |
---|---|
Skip |
O próximo valor de classificação, após um empate, é o valor de classificação do empate mais a contagem de valores vinculados. Por exemplo, se cinco (5) valores estiverem empatados com uma classificação de 11, o próximo valor receberá uma classificação de 16 (11 + 5). Esse é o valor padrão quando ties parâmetro é omitido. |
Dense |
O próximo valor de classificação, após um empate, é o próximo valor de classificação. Por exemplo, se cinco (5) valores estiverem vinculados com uma classificação de 11, o próximo valor receberá uma classificação de 12. |
Valor de retorno
O número de classificação de value
entre todos os valores possíveis de expression
avaliados para todas as linhas de table
números.
Comentários
Se
expression
ouvalue
for avaliado como BLANK ele será tratado como um 0 (zero) para todas as expressões que resultam em um número ou como um texto vazio para todas as expressões de texto.Se
value
não estiver entre todos os valores possíveis deexpression
, RANKX adiciona temporariamentevalue
aos valores deexpression
e reavalia RANKX para determinar a classificação adequada devalue
.Argumentos opcionais podem ser ignorados colocando uma vírgula vazia (,) na lista de argumentos, como
RANKX(Inventory, [InventoryCost],,,"Dense")
.Comparações relacionadas à igualdade (
, , , e ) entre valores com o tipo de dados número decimal de podem potencialmente retornar resultados inesperados ao usar função. Resultados incorretos podem ocorrer porque valores com número decimal tipo de dados são armazenados como números de ponto flutuante IEEE Standard 754 e têm limitações inerentes em sua precisão. Para evitar resultados inesperados, altere o tipo de dados para número decimal fixo ou faça um arredondamento forçado usando ROUND. Essa função não tem suporte para uso no modo DirectQuery quando usada em colunas calculadas ou regras de RLS (segurança em nível de linha).
Exemplo
A coluna calculada a seguir na tabela Produtos calcula a classificação de vendas para cada produto no canal da Internet.
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))