RANKX
Aplica-se a:Coluna calculadaTabela calculadaMedidaCá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.
expressão
Qualquer expressão DAX que retorne um único valor escalar. A expressão é avaliada para cada linha de table, para gerar todos os valores possíveis para classificação. Confira a seção comentários para entender o comportamento da função quando expression é avaliado como BLANK.
value
(Opcional) Qualquer expressão DAX que retorna um valor escalar único cuja classificação deve ser encontrada. Confira a seção de 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 em vez disso.
order
(Opcional) Um valor que especifica como classificar value, do menor para o maior ou vice-versa:
valor | valor alternativo | Descrição |
---|---|---|
0 (zero) | FALSO | Classifica em ordem decrescente de valores de expression. Se value for igual ao número mais alto na expressão, RANKX retornará 1. É o valor padrão quando o parâmetro order é omitido. |
1 | VERDADEIRO | Classifica em ordem crescente de expressão. Se value for igual ao número mais baixo na expressão, RANKX retornará 1. |
empates
(Opcional) Uma enumeração que define como determinar a classificação quando há empates.
enumeração | Descrição |
---|---|
Ignorar | O próximo valor de classificação, após um empate, é o valor de classificação do empate mais a contagem de valores empatados. Por exemplo, se cinco (5) valores estiverem empatados com uma classificação de 11, o valor seguinte receberá uma classificação de 16 (11 + 5). É o valor padrão quando o parâmetro ties é omitido. |
Denso | O próximo valor de classificação após um empate é o valor da próxima classificação. Por exemplo, se cinco (5) valores estiverem empatados com uma classificação de 11, o próximo valor receberá uma classificação de 12. |
Valor retornado
O número de classificação de value entre todos os valores possíveis de expression avaliados para todas as linhas dos números de table.
Comentários
Se expression ou value 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 de expression, o RANKX adicionará temporariamente value aos valores de expression e reavaliará RANKX para determinar a classificação adequada de value.
Argumentos opcionais podem ser ignorados colocando-se uma vírgula vazia (,) na lista de argumentos, ou seja, RANKX(Inventory, [InventoryCost],,,"Dense")
Comparações relacionadas à igualdade (=, <>, >= e <=) entre valores com o tipo de dados Número Decimal podem possivelmente retornar resultados inesperados ao usar a função RANKX. Resultados incorretos podem ocorrer porque os valores com o tipo de dados Número Decimal são armazenados como números de ponto flutuante IEEE Standard 754 e têm limitações inerentes em relação à precisão deles. Para evitar resultados inesperados, altere o tipo de dados para Número Decimal Fixo ou faça um arredondamento forçado usando ROUND.
Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.
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]))