AVERAGE y AVERAGEX en DAX

Por el equipo de promedio.net · Actualizado el

AVERAGE(Ventas[Importe]) promedia los valores de una columna tal como están en el modelo. AVERAGEX(tabla, expresión) recorre una tabla fila por fila, evalúa una expresión en cada fila y promedia los resultados. Usa AVERAGE cuando el número que quieres promediar ya existe en una columna; usa AVERAGEX cuando hay que calcularlo primero, como precio por cantidad o el total de ventas de cada día.

Sintaxis

Promedio importe = AVERAGE ( Ventas[Importe] )

Promedio calculado = AVERAGEX ( Ventas, Ventas[Cantidad] * Ventas[Precio] )

Venta diaria promedio = AVERAGEX ( VALUES ( Ventas[Fecha] ), [Ventas] )
AVERAGEAVERAGEX
RecibeUna columnaUna tabla y una expresión
PromediaLos valores de cada filaEl resultado de la expresión en cada fila de la tabla
BlancosLos ignoraIgnora los resultados en blanco
CerosLos cuentaLos cuenta
Sin filasDevuelve BLANK()Devuelve BLANK()

AVERAGE(Ventas[Importe]) es, internamente, lo mismo que AVERAGEX(Ventas, Ventas[Importe]).

Paso a paso

  1. En Power BI Desktop, en la vista de informe, selecciona la tabla y elige Nueva medida.
  2. Escribe el nombre de la medida, el signo = y la fórmula.
  3. Si el valor está en una columna, usa AVERAGE(Tabla[Columna]).
  4. Si hay que calcularlo o agruparlo antes de promediar, usa AVERAGEX con la tabla que define qué se promedia: la tabla de hechos para promediar filas, VALUES(columna) para promediar por día, cliente o producto.
  5. Arrastra la medida a un objeto visual y comprueba el total con un cálculo a mano.

Tabla de ejemplo Ventas (la columna Importe es Cantidad × Precio):

FechaProductoCategoríaCantidadPrecioImporte
05/01/2026Café molidoAbarrotes295190
05/01/2026GalletasAbarrotes522110
06/01/2026DetergenteLimpieza16868
06/01/2026Café molidoAbarrotes19595
07/01/2026CloroLimpieza32575
07/01/2026GalletasAbarrotes1020200
08/01/2026DetergenteLimpieza268136
08/01/2026JabónLimpieza41560

Ejemplos resueltos

Ejemplo 1: ticket promedio por renglón

Promedio importe = AVERAGE ( Ventas[Importe] )

En una tarjeta, el resultado es 116.75: 934 entre 8 renglones. En una tabla con Categoría en filas, la misma medida da 148.75 para Abarrotes y 84.75 para Limpieza, porque el contexto de filtro de cada fila deja solo los renglones de esa categoría. Si el modelo no tuviera la columna Importe, AVERAGEX(Ventas, Ventas[Cantidad] * Ventas[Precio]) daría exactamente lo mismo sin crear la columna.

Ejemplo 2: venta promedio por día

El dueño no quiere el promedio por renglón sino cuánto se vende en un día típico. Primero, una medida de total:

Ventas = SUM ( Ventas[Importe] )

Venta diaria promedio = AVERAGEX ( VALUES ( Ventas[Fecha] ), [Ventas] )

VALUES(Ventas[Fecha]) devuelve las 4 fechas con ventas. Para cada una, [Ventas] calcula el total del día (300, 163, 275 y 196) y AVERAGEX los promedia: 233.5. Al llamar una medida dentro de un iterador, DAX convierte la fila actual en un filtro (transición de contexto); por eso [Ventas] da el total de cada día y no el de toda la tabla. Si escribieras SUM(Ventas[Importe]) directamente, sin CALCULATE ni medida, obtendrías 934 en cada iteración.

Ejemplo 3: dos promedios de precio que no coinciden

Precio promedio simple = AVERAGE ( Ventas[Precio] )

El resultado es 51: el promedio de los 8 precios de lista. Pero esa cifra trata igual el renglón de 1 detergente que el de 10 paquetes de galletas. El precio promedio realmente pagado por unidad es 934 / 28 unidades = 33.36, y se calcula con un promedio ponderado, explicado en promedio ponderado en DAX. Antes de elegir la función, pregúntate qué cuenta como «uno»: un renglón, una unidad, un día o un cliente.

Errores comunes

Cómo afectan los blancos y los ceros, y qué hace AVERAGEA, está en AVERAGEA, blancos y ceros.

Fuentes

  1. Microsoft Learn, AVERAGE (DAX). Blancos y valores lógicos ignorados, ceros incluidos. Consultado el 11 de noviembre de 2026.
  2. Microsoft Learn, AVERAGEX (DAX). Sintaxis AVERAGEX(table, expression). Consultado el 11 de noviembre de 2026.