Partilhar via


RANKX

Aplica-se a:Coluna calculadaTabela calculadaMeasureCá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 retorne uma única valueescalar . A expressão é avaliada para cada linha de table, para generateall possível values 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 value escalar cuja rank deve ser encontrada. Consulte a seção de comentários para entender o comportamento da função quando value é not encontrado na expressão.

Quando o parâmetro value é omitido, o value de expressão na linha atual é usado.

order (Opcional) Um value que especifica como rankvalue, baixo para alto or alto para baixo:

value value alternativo Description
0 (zero) FALSE Classifica-se por ordem decrescente de values de expressão. If value é igual ao maior número em expressão, então RANKX retorna 1.

Este é o value padrão quando o parâmetro order é omitido.
1 TRUE Classifica-se por ordem crescente de expressão. If value é igual ao menor número na expressão, então RANKX retorna 1.

ties (Opcional) Uma enumeração que define como determinar a classificação quando há empates.

enumeração Description
Skip O nextrankvalue, após um empate, é o rankvalue do empate mais o count do empate values. Por exemplo, if cinco (5) values estiverem empatados com um rank de 11, o nextvalue receberá um rank de 16 (11 + 5).

Este é o value padrão quando ties parâmetro é omitido.
Dense O nextrankvalue, depois de um empate, é o nextrankvalue. Por exemplo, if cinco (5) values estiverem empatados com um rank de 11, o nextvalue receberá um rank de 12.

Regresso value

O número rank de value entre allvalues possível de expression avaliado para all linhas de números table.

Observações

  • If expression or value avalia para BLANK é tratado como um 0 (zero) para all expressões que resultam em um número, or como um texto vazio para all expressões de texto.

  • If value é not entre allvalues possíveis de expression então RANKX adiciona temporariamente value ao values a partir de expressionand reavalia RANKX para determinar a rank adequada de value.

  • Os argumentos opcionais podem ser ignorados colocando uma vírgula vazia (,) na lista de argumentos, como RANKX(Inventory, [InventoryCost],,,"Dense").

  • Igualdade related comparações (=, <, >, >=and<=) entre values com o número decimal tipo de dados podem potencialmente retornar resultados inesperados ao usar RANKX função. Resultados incorretos podem ocorrer porque values com tipo de dados de número decimal são armazenados como números de ponto flutuante IEEE Standard 754 and têm limitações inerentes em sua precisão. Para evitar resultados inesperados, altere o tipo de dados para Fixed Número decimalor faça um arredondamento forçado usando ROUND.

  • Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).

Exemplo

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

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