DAX no tiene una función de promedio ponderado, pero se escribe con una medida: DIVIDE(SUMX(Tabla, Tabla[Valor] * Tabla[Peso]), SUM(Tabla[Peso])). SUMX multiplica cada valor por su peso fila por fila y suma los productos; DIVIDE los divide entre la suma de los pesos y devuelve blanco, en lugar de un error, si los pesos suman cero. Como es una medida, se recalcula sola para cada categoría, mes o filtro del informe.
Sintaxis
Promedio ponderado =
DIVIDE (
SUMX ( Tabla, Tabla[Valor] * Tabla[Peso] ),
SUM ( Tabla[Peso] )
)
DIVIDE(numerador, denominador, [resultado_alternativo]) devuelve BLANK() cuando el denominador es 0, salvo que indiques un tercer argumento constante. Usar / en lugar de DIVIDE produce infinito o un error en esos casos.
Paso a paso
- Identifica la columna del valor (precio, calificación) y la del peso (cantidad, créditos).
- Crea una Nueva medida con la fórmula de arriba.
- Si los pesos están en otra tabla relacionada, tráelos dentro de
SUMXconRELATED. - Pon la medida en una tabla con la dimensión que te interese y compara con
AVERAGE(Tabla[Valor]). - Comprueba un total a mano o con la calculadora.
Ejemplos resueltos
Ejemplo 1: precio promedio pagado por unidad
Con la tabla Ventas de la página de AVERAGE y AVERAGEX (8 renglones, 28 unidades, 934 pesos):
Precio promedio ponderado =
DIVIDE (
SUMX ( Ventas, Ventas[Precio] * Ventas[Cantidad] ),
SUM ( Ventas[Cantidad] )
)
| Categoría | Precio ponderado | AVERAGE(Precio) |
|---|---|---|
| Abarrotes | 33.06 | 58.00 |
| Limpieza | 33.90 | 44.00 |
| Total | 33.36 | 51.00 |
En Abarrotes, el promedio simple de precios (58) lo inflan los dos renglones de café a 95, pero la mayoría de las unidades vendidas fueron galletas a 20 o 22. El ponderado, 595 / 18 = 33.06, es lo que realmente se cobró por unidad. Observa que el total (33.36) no es el promedio de 33.06 y 33.90: la medida se recalcula con todas las filas, no promedia las filas del visual.
Ejemplo 2: promedio por créditos
Tabla Kardex con una fila por alumno y materia:
| Alumno | Materia | Calificación | Créditos |
|---|---|---|---|
| Pablo | Álgebra | 8.0 | 6 |
| Pablo | Redacción | 9.5 | 4 |
| Pablo | Física | 7.0 | 8 |
| Sara | Álgebra | 9.0 | 6 |
| Sara | Redacción | 8.5 | 4 |
| Sara | Física | 9.5 | 8 |
Promedio por créditos =
DIVIDE (
SUMX ( Kardex, Kardex[Calificación] * Kardex[Créditos] ),
SUM ( Kardex[Créditos] )
)
Pablo obtiene (48 + 38 + 56) / 18 = 7.89 y Sara (54 + 34 + 76) / 18 = 9.11. Sus promedios simples son 8.17 y 9.00: a Pablo lo baja el 7 en Física, la materia de más créditos. Si la universidad trunca en lugar de redondear, aplica TRUNC([Promedio por créditos], 1) en otra medida.
Ejemplo 3: el peso está en otra tabla
Si la tabla Ventas solo tiene Cantidad y el precio de lista vive en la dimensión Productos, relacionada por producto:
Precio de lista ponderado =
DIVIDE (
SUMX ( Ventas, Ventas[Cantidad] * RELATED ( Productos[Precio lista] ) ),
SUM ( Ventas[Cantidad] )
)
RELATED trae, para cada renglón de Ventas, el precio del producto correspondiente. Funciona porque SUMX recorre la tabla del lado «muchos» de la relación. Si la relación no existe o va en la dirección contraria, DAX muestra un error que indica que la columna no existe o no tiene relación con la tabla actual.
Errores comunes
AVERAGE(Ventas[Precio])como precio promedio. Promedia renglones, no unidades. Es el error más frecuente en informes de precio y de costo promedio.SUM(Precio) * SUM(Cantidad) / SUM(Cantidad). Simplifica aSUM(Precio). El producto debe hacerse fila por fila, dentro deSUMX.- Promediar porcentajes de margen. El margen promedio correcto es
DIVIDE(SUM(Utilidad), SUM(Importe)), noAVERAGE(Ventas[Margen %]): cada venta pesa según su importe. - Usar
/y obtenerInfinityoNaN. Ocurre en filas sin peso.DIVIDEdevuelve blanco y el renglón desaparece del visual. - Crear el ponderado como columna calculada. Una columna no responde a filtros ni segmentaciones. Debe ser una medida; ver medidas o columnas.
Comprueba un caso pequeño con la calculadora de promedio ponderado. La versión de hoja de cálculo con SUMAPRODUCTO está en promedio ponderado en Excel.
Fuentes
- Microsoft Learn, SUMX (DAX). Suma de una expresión evaluada fila por fila. Consultado el 11 de noviembre de 2026.
- Microsoft Learn, DIVIDE (DAX). Resultado alternativo por omisión BLANK(). Consultado el 11 de noviembre de 2026.