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

Cómo calcular el porcentaje del total en DAX: paso a paso

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

Mostrar cada valor como porcentaje del total es uno de los análisis más solicitados en cualquier informe: cuánto pesa cada categoría, región o producto dentro del total general. En DAX, el secreto está en comparar el valor de la fila actual con un total que ignore los filtros de esa misma fila. Cuando esa comparación está bien hecha, los porcentajes siempre suman 100% — y eso es exactamente lo que vamos a construir aquí, desde cero y de forma reutilizable.

Requisitos previos

  • Power BI Desktop instalado, o el Power BI Service con un modelo que puedas editar.
  • Una tabla de hechos con valores numéricos — usaremos una tabla Ventas con la columna Importe.
  • Al menos una columna para agrupar los datos, como Ventas[Categoría].
  • Saber crear una medida sencilla con SUM. No hace falta nada más.

Paso 1: Crear la medida base del total

Antes de pensar en porcentajes, necesitamos una medida que sume los valores. Esta medida reacciona al contexto de filtro: en una matriz por categoría devuelve el total de cada categoría; en una fila de total, devuelve el total de todo.

Total Ventas = SUM ( Ventas[Importe] )

Crea la medida con el botón Nueva medida y arrástrala a una matriz que tenga Ventas[Categoría] en las filas. Deberías ver un valor distinto por categoría.

Paso 2: Calcular el total general con ALL

El porcentaje necesita un denominador que no cambie de fila en fila: el total general. La función ALL elimina los filtros de una columna o tabla, y CALCULATE vuelve a evaluar la medida en ese nuevo contexto sin filtros. El resultado es el total de todas las categorías, incluso cuando estamos dentro de la fila de una sola.

Total General =
CALCULATE (
    [Total Ventas],
    ALL ( Ventas[Categoría] )
)

Si añades esta medida a la matriz, verás que muestra el mismo número en todas las filas. Parece extraño al principio, pero es justamente el denominador que buscamos: el "todo" con el que se comparará cada categoría.

Paso 3: Dividir para obtener el porcentaje

Ahora combinamos las dos ideas en una sola medida. Usamos DIVIDE en lugar de la barra de división porque DIVIDE devuelve un valor en blanco (en vez de un error) cuando el denominador es cero. Las variables VAR hacen la fórmula más legible y más rápida, porque cada valor se calcula una sola vez.

% del Total =
VAR TotalCategoria = [Total Ventas]
VAR TotalGeneral =
    CALCULATE ( [Total Ventas], ALL ( Ventas[Categoría] ) )
RETURN
    DIVIDE ( TotalCategoria, TotalGeneral )

Por último, selecciona la medida y dale formato de Porcentaje, con uno o dos decimales. Ahora cada categoría muestra su peso real en el total.

Consejo: pon nombres claros a las medidas. "% del Total" se entiende de inmediato para quien abre el informe meses después.

Paso 4: Respetar los filtros con ALLSELECTED

Hay un detalle que marca toda la diferencia. Como ALL elimina todos los filtros, también ignora las segmentaciones (slicers) que el usuario ha elegido. Si filtras por un año y quieres que 100% represente solo ese año, necesitas ALLSELECTED, que respeta los filtros que vienen de los visuales y las segmentaciones.

% del Total (Seleccionado) =
DIVIDE (
    [Total Ventas],
    CALCULATE ( [Total Ventas], ALLSELECTED ( Ventas[Categoría] ) )
)

Regla práctica: usa ALL cuando 100% deba ser siempre el total absoluto; usa ALLSELECTED cuando 100% deba reflejar lo que el usuario ha filtrado en el informe.

Verificar el resultado

Coloca Ventas[Categoría] en una matriz con las medidas [Total Ventas] y [% del Total] y busca dos señales de que todo está correcto:

  • La columna de porcentajes suma 100% en la fila de total.
  • Al añadir una segmentación por año, la versión con ALLSELECTED sigue sumando 100%, mientras que la versión con ALL pasa a sumar menos de 100%, porque compara con el total de todos los años.

Esta "prueba del 100%" es la forma más rápida de confirmar el resultado y de decidir qué función usar en cada caso.

Conclusión

Con solo tres piezas — una medida base, un denominador con ALL o ALLSELECTED, y DIVIDE para evitar errores — ya puedes calcular cualquier porcentaje del total en DAX y aplicar el mismo patrón a regiones, productos o clientes. El siguiente paso es calcular el porcentaje dentro de una jerarquía, mostrando el peso de cada producto dentro de su categoría. ¿Qué argumento crees que tendrías que cambiar en la función ALL para lograr ese efecto?