> lección 20/34 · 18 min

Funciones iteradoras: SUMX y AVERAGEX

Concepto

SUM suma una columna que ya existe. Pero a veces lo que quieres sumar no existe como columna: el margen de cada venta, por ejemplo, sale de restar el costo al precio, y esos datos están en productos. Las funciones iteradoras recorren una tabla fila por fila, calculan una expresión en cada fila y recién al final suman o promedian.

SUMX(tabla, expresión por fila)
AVERAGEX(tabla, expresión por fila)

RELATED: traer un dato de la tabla relacionada. Dentro de SUMX(ventas, ...), cada fila es una venta. RELATED(productos[costo_unitario]) busca, por la relación, el costo del producto de esa venta. Funciona desde el lado varios (ventas) hacia el lado uno (productos).

Margen Total = SUMX(ventas, RELATED(productos[precio_unitario]) - RELATED(productos[costo_unitario]))
Margen Promedio = AVERAGEX(ventas, RELATED(productos[precio_unitario]) - RELATED(productos[costo_unitario]))

Cómo se lee. "Para cada venta, calcula precio menos costo de su producto; después suma todo". Es lo mismo que agregar una columna de margen a ventas y sumarla, pero sin crear la columna.

Atención con este ejemplo. El margen por unidad se suma una vez por venta porque en este archivo cada venta es de una unidad (el monto es igual al precio). Si una venta tuviera cantidad, la expresión sería (precio - costo) * cantidad.

Práctica. Necesitas productos.csv con la columna costo_unitario, que ya venía en el archivo desde la lección 5: no hay que descargar nada nuevo. Revisa solo que la relación entre ventas y productos siga activa.

  1. Crea en ventas la medida Margen Total con SUMX y RELATED, como arriba.
  2. Crea Margen Promedio con AVERAGEX.
  3. Pon ambas en tarjetas, y arma una tabla visual con producto y Margen Total.

> quiz

Responde con tus medidas de margen.

Cargando preguntas…

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

Aprueba las tareas de esta lección para ver el cierre.