2019
TOPN
Miguel Angel Franco Garcia
7-5-2019
TOPN
Devuelve las filas N superiores de la tabla especificada.
Syntaxis:
TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])
Parámetros
n_value
El número de filas a devolver. Es cualquier expresión DAX que devuelve un solo valor escalar, donde la
expresión se evaluará varias veces (para cada fila / contexto).
Por ejemplo, si tenemos una tabla compuesta de 10 elementos, si ponemos el valor 1, quiere decir que nos
devolverá el primer valor de la tabla.
table
Cualquier expresión DAX que devuelva una tabla de datos desde donde extraer las filas 'n' superiores.
orderBy_expression
Cualquier expresión DAX en la que el valor del resultado se usa para ordenar la tabla y se evalúa para cada fila
de la tabla.
orden
(Opcional) Un valor que especifica cómo ordenar los valores de orderBy_expression, ascendente o
descendente:
Página 1|6
valor valor alternativo Descripción
0 (cero) FALSO Ordena en orden descendente de valores de order_by.
Este es el valor predeterminado cuando se omite el parámetro de orden.
1 CIERTO Clasifica en orden ascendente de order_by.
Retorna una tabla con las N filas superiores de la tabla o una tabla vacía si n_value es 0 (cero) o menos. Las
filas no están necesariamente ordenadas en ningún orden en particular.
Si hay un empate, en los valores de order_by, en la N-ésima fila de la tabla, se devuelven todas las filas
vinculadas. Luego, cuando hay vínculos en la N-ésima fila, la función puede 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 orden de clasificación para los resultados.
Página 2|6
Ejemplo:
Tenemos una matriz con las ventas de distintos operadores de móviles para el mes de enero.
En total, son cinco operadores (Bitel/Claro/Entel/Movistar/Tuenti), vemos que Bitel, por ejemplo, solo tiene
ventas el día 18 de enero que es de 68, siendo el primer operador de la lista.
Página 3|6
TOPN también podemos usarlo para crear una tabla, si vamos a Modelado – Nueva tabla, y, ponemos lo
siguiente:
Operadores = TOPN (2; VALUES(Hoja3[Operador]); Hoja3[Operador]; ASC)
Nos va a crear una tabla de una sola columna con los dos primeros operadores.
Vamos a crear una medida que me calcule la cantidad vendida para el mes de enero del primer operador de la
lista, la sintaxis seria la siguiente:
Ventas Operadores = CALCULATE (
SUM(Hoja3[Cantidad]);
FILTER (Hoja3; Hoja3[Mes]=1);
TOPN (1; VALUES(Hoja3[Operador]); Hoja3[Operador]; ASC))
Como resultado, obtenemos:
Página 4|6
Si se dan cuenta es la única cantidad vendida por el operador Bitel.
Si modificamos la formula, y, cambiamos el valor 1, por dos, nos dará
la suma de las cantidades de los dos primeros operadores.
Ventas Operadores = CALCULATE (
SUM(Hoja3[Cantidad]);
FILTER (Hoja3; Hoja3[Mes]=1);
TOPN (2; VALUES(Hoja3[Operador]); Hoja3[Operador]; ASC))
Sería la suma de Bitel y Claro, es decir, 68 de
Bitel, y, 56 más 18 de Claro.
Página 5|6
Página 6|6