Función TOPN (DAX)

Devuelve las N filas superiores de la tabla especificada.

Sintaxis

TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])

Parámetros

  • n_value
    Número de filas que se va a devolver. Es cualquier expresión de DAX que devuelva un único valor escalar, con el que la expresión se va a evaluar varias veces (para cada fila y contexto).

    Vea la sección de comentarios para averiguar cuándo el número de filas devuelto podría ser mayor que n_value.

    Vea la sección notas para saber cuándo se devuelve una tabla vacía.

  • table
    Cualquier expresión de DAX que devuelve una tabla de datos de donde extraer las “n” filas superiores.

  • orderBy_expression
    (Opcional) Cualquier expresión de DAX en la que el valor del resultado se utiliza para ordenar la tabla y se evalúa para cada fila de table.

  • order
    (Opcional) Valor que especifica cómo ordenar los valores de orderBy_expression, en orden ascendente o descendente:

    value

    valor alternativo

    Descripción

    0 (cero)

    FALSE

    Ordena en orden descendente de valores de order_by.

    Es el valor predeterminado si se omite el parámetro order.

    1

    TRUE

    Ordena en orden ascendente de valores de order_by.

Valor devuelto

Una tabla con las N filas superiores de table o una tabla vacía si n_value es 0 (cero) o menos. Las filas no se ordenan necesariamente en ningún orden concreto.

Comentarios

  • Si hay valores que coinciden, en los valores de order_by valores, en la fila enésima de la tabla, se devuelven todas las filas con valores coincidentes. Después, si hay valores coincidentes en la enésima fila, la función podría devolver más de n filas.

  • Si n_value es 0 (cero) o menos, TOPN devuelve una tabla vacía.

  • TOPN no garantiza ningún criterio de ordenación de los resultados.

Ejemplo

En el ejemplo siguiente se crea una medida con las ventas de los 10 productos más vendidos.

=SUMX(TOPN(10, SUMMARIZE(Product, [ProductKey], “TotalSales”, SUMX(RELATED(InternetSales_USD[SalesAmount_USD]), InternetSales_USD[SalesAmount_USD]) + SUMX(RELATED(ResellerSales_USD[SalesAmount_USD]), ResellerSales_USD[SalesAmount_USD]))