(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo crear un ranking con RANKX en DAX: paso a paso

João Barros 05 de July de 2026 4 min de lectura

Ordenar productos, vendedores o regiones por rendimiento es una de las preguntas más habituales en Business Intelligence. En DAX, la función RANKX permite crear un ranking dinámico que reacciona a los filtros del informe, asignando a cada elemento su posición — 1.º, 2.º, 3.º — en función de una medida. Este tutorial muestra, paso a paso y con un ejemplo, cómo crear un ranking con RANKX en Power BI.

Requisitos previos

  • Power BI Desktop instalado (versión gratuita).
  • Un modelo con una tabla de hechos (p. ej. Vendas) y una dimensión (p. ej. Produto).
  • Conocer lo básico de las medidas en DAX (cómo crear una medida con SUM).

Paso 1: Crear la medida base

Antes de ordenar, necesitamos algo que ordenar. Vamos a crear una medida sencilla que sume el valor de las ventas. Haga clic derecho en la tabla Vendas, elija Nueva medida y escriba:

Total Vendas = SUM ( Vendas[Valor] )

Esta medida devuelve el total de ventas en el contexto actual — por producto, por mes o global, según el objeto visual donde la coloque. El ranking se calculará sobre este valor.

Paso 2: Crear el ranking con RANKX

Ahora creamos la medida de ranking. La idea es comparar cada producto con todos los demás y devolver su posición. Cree una nueva medida:

Ranking Produtos =
RANKX (
    ALL ( Produto[Nome] ),
    [Total Vendas],
    ,
    DESC,
    Dense
)

Explicando cada argumento: ALL ( Produto[Nome] ) devuelve la lista completa de productos; [Total Vendas] es el valor evaluado para cada producto; el argumento vacío que sigue es el parámetro opcional value, que dejamos en blanco para que RANKX use el valor de la fila actual; DESC coloca el valor más alto en 1.er lugar; y Dense controla cómo se tratan los empates (ver Paso 4).

Paso 3: Entender el papel de ALL

Este es el paso en el que la mayoría se equivoca. Si escribe RANKX ( Produto, [Total Vendas] ) sin ALL, todos los productos muestran un ranking de 1. ¿Por qué? Porque, en una tabla o matriz, cada fila ya está filtrada a un único producto — el contexto de filtro reduce la tabla a esa única fila, y un valor solo siempre queda primero.

La función ALL elimina ese filtro y devuelve todos los productos, dando a RANKX una lista completa con la que comparar. Regla práctica: el primer argumento de RANKX debe contener toda la lista contra la que quiere ordenar.

Paso 4: Controlar empates y orden

El argumento de orden acepta DESC (valor más alto = 1.º, lo más común en un ranking de ventas) o ASC (valor más bajo = 1.º, útil para rankings de coste o de tiempo). El último argumento define los empates:

  • Dense: dos productos empatados en 2.º son ambos 2.º y el siguiente es 3.º (1, 2, 2, 3).
  • Skip: dos empatados en 2.º son ambos 2.º y el siguiente salta al 4.º (1, 2, 2, 4).

Elija Dense cuando quiera un ranking continuo sin saltos y Skip cuando quiera reflejar cuántos elementos quedaron por delante.

Paso 5: Mostrar solo el Top 5

Un uso frecuente del ranking es destacar los mejores. Puede reutilizar la medida para mostrar solo los cinco primeros productos:

Top 5 Vendas =
IF ( [Ranking Produtos] <= 5, [Total Vendas], BLANK () )

Al colocar esta medida en un objeto visual y filtrar los valores en blanco, queda solo el Top 5. Como RANKX es dinámico, el ranking se recalcula siempre que el usuario aplica filtros de año, categoría o región.

Comprobar el resultado

Cree un objeto visual de tabla con el campo Produto[Nome] y las medidas Total Vendas y Ranking Produtos. Ordene la columna del ranking de forma ascendente: el producto con más ventas debe mostrar 1, el segundo debe mostrar 2, y así sucesivamente. Si todos muestran 1, falta el ALL en el primer argumento. Aplique un filtro (por ejemplo, un año concreto) y confirme que las posiciones se recalculan.

Conclusión

Con una sola medida RANKX ya puede crear rankings dinámicos que responden a los filtros del informe, controlar el orden y gestionar los empates. El siguiente paso natural es combinar el ranking con CALCULATE para ordenar dentro de categorías (por ejemplo, el Top 3 de cada familia de producto) usando ALLEXCEPT. ¿Cuál será el primer ranking que construya en su informe — productos, vendedores o regiones?