Partilhar via


RANKX

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Devolve a classificação de um número numa 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 classificação. Consulte a seção de comentários para entender o comportamento da função quando expression avalia para BLANK.

value (Opcional) Qualquer expressão DAX que retorna um único valor escalar cuja classificação deve ser encontrada. Consulte 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.

order (Opcional) Um valor que especifica como classificar value, baixo para alto ou alto para baixo:

valor Valor alternativo Description
0 (zero) FALSE Classifica-se por ordem decrescente de valores de expressão. Se o valor for igual ao maior número na expressão, RANKX retornará 1.

Este é o valor padrão quando o parâmetro order é omitido.
1 TRUE Classifica-se por 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á empates.

enumeração Description
Skip 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, então o próximo valor receberá uma classificação de 16 (11 + 5).

Este é 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 empatados 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.

Observações

  • 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 então RANKX adiciona temporariamente value aos valores de expression e reavalia RANKX para determinar a classificação adequada de value.

  • Os 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 podem potencialmente retornar resultados inesperados ao usar RANKX 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.

  • Esta função não é suportada para utilização no modo DirectQuery quando utilizada em colunas calculadas ou regras de segurança ao nível da linha (RLS).

Exemplo

A coluna calculada a seguir na tabela Produtos calcula a classificação de vendas de cada produto no canal da Internet.

= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))