RANKX

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 potencialmente 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]))