Ler em inglês

Compartilhar via


TOPN

Aplica-se a: Coluna calculada Tabela calculada Medida Cálculo visual

Retorna as N linhas superiores da tabela especificada.

Sintaxe

TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])  

Parâmetros

Parâmetro Definição
N_Value Número de linhas a ser retornado. Qualquer expressão DAX que retorna um valor escalar, em que a expressão deve ser avaliada várias vezes (para cada linha/contexto). Confira Comentários para entender melhor quando o número de linhas retornado pode ser maior que n_value.
Tabela Qualquer expressão DAX que retorna uma tabela de dados da qual extrair as primeiras 'n' linhas. Confira Comentários para entender melhor quando uma tabela vazia é retornada.
OrderBy_Expression (Opcional) Qualquer expressão DAX em que o valor de resultado é usado para classificar a tabela e é avaliado para cada linha de tabela.
Pedido (Opcional) Um valor que especifica como classificar valores OrderBy_Expression:

- 0 (zero) ou FALSE. Classifica em ordem decrescente de valores de Order. Padrão quando o parâmetro Order é omitido.

- 1 ou TRUE. Classifica em ordem crescente de OrderBy.

Valor retornado

Uma tabela com as primeiras N linhas de Table ou uma tabela vazia se N_Value for 0 (zero) ou menos. As linhas não são classificadas em nenhuma ordem específica.

Comentários

  • Se houver um empate nos valores de Order_By na enésima linha da tabela, todas as linhas vinculadas serão retornadas. Então, quando houver empates na N-ésima linha, a função poderá retornar mais de n linhas.

  • Se N_Value for 0 (zero) ou menos, TOPN retornará uma tabela vazia.

  • TOPN não garante nenhuma ordem de classificação para os resultados.

  • 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 fórmula de medida a seguir retorna os 10 principais produtos vendidos por valor de vendas.

= SUMX(
        TOPN(
            10, 
            SUMMARIZE(
                    InternetSales, 
                    InternetSales[ProductKey], 
                    "TotalSales", SUM(InternetSales[SalesAmount])
            ),
            [TotalSales], DESC
        ),
        [TotalSales]
)