⚖️ ¿DAX, fórmulas de Excel o Python?

Tienes una base de datos de ventas y te piden informes. ¿Escribes fórmulas en la hoja, creas medidas DAX en Power Pivot o lo haces con Python? Aquí aprendes cuándo usar cada uno, y cuándo no, resolviendo los mismos 12 ejercicios de las tres formas.

📖 Cuándo sí y cuándo no

📗 Fórmulas de Excel

Cálculos en las celdas: SUMA, SUMAR.SI.CONJUNTO, BUSCARX, CONTAR.SI… El resultado vive en una celda y se ve la fórmula.

Úsalas cuando
  • Los datos están en una sola tabla o en pocas.
  • El cálculo es puntual o lo revisará alguien que solo sabe Excel.
  • Necesitas ver y auditar cada fórmula en su celda.
  • El libro es liviano y se abre rápido.
Evítalas cuando
  • Debes traer datos de varias tablas con BUSCARX en cada fila: el libro se vuelve pesado.
  • Un porcentaje debe recalcularse bien con cualquier filtro de una tabla dinámica.
  • Los datos superan lo que una hoja maneja con fluidez.
  • Cada mes repites los mismos pasos con archivos nuevos.

📒 DAX en Power Pivot

Medidas sobre un modelo de datos con tablas relacionadas (esquema estrella). Se usan en tablas dinámicas y en Power BI.

Úsalo cuando
  • Tienes varias tablas relacionadas: ventas, productos, clientes, fechas.
  • Los usuarios filtran y exploran en tablas dinámicas y cada medida debe responder al filtro.
  • Necesitas razones correctas (margen %, participación %) con cualquier corte.
  • Comparas periodos: año anterior, acumulado del año.
  • Los datos son muchos: el modelo comprime y supera el límite de filas de una hoja.
Evítalo cuando
  • Hay que limpiar o transformar datos: eso es trabajo de Power Query.
  • Basta una suma sobre una tabla pequeña: es más complejo sin beneficio.
  • Debes generar archivos, enviar informes o automatizar procesos.
  • Quien lo usa tiene Excel para la web o Mac, donde no se pueden crear modelos de Power Pivot.

🐍 Python con pandas

Un programa lee los datos, los combina, calcula y entrega el resultado (tablas, archivos, gráficos).

Úsalo cuando
  • El informe se repite y debe salir igual cada vez, sin pasos manuales.
  • Hay limpieza compleja, muchos archivos o fuentes distintas.
  • Necesitas estadística, detección de anomalías, texto o modelos.
  • Hay que generar muchos archivos (uno por sucursal, por cliente…).
Evítalo cuando
  • El usuario quiere explorar con clics: una tabla dinámica es mejor.
  • Es un cálculo de una sola vez que Excel resuelve en un minuto.
  • Nadie del equipo podrá mantener el código.
¿Y SQL? Si la base de datos vive en un servidor (MySQL, SQL Server…), lo primero es pedir el resumen con una consulta SQL. Después, el resultado puede alimentar fórmulas, un modelo de Power Pivot o un programa de Python.
Sin números mágicos: no existe una cantidad de filas a partir de la cual "hay que" usar DAX o Python. Una hoja admite 1.048.576 filas; la decisión depende de cuántas tablas hay, quién usa el informe, qué tan complejo es el cálculo y si se repite.

La misma pregunta, tres respuestas

"¿Cuál es el margen % de la categoría Computadores?" — mira cómo cambia la forma de pensar:

Fórmulas de ExcelDAX (Power Pivot)Python (pandas)
Cómo se piensaCelda por celda: columnas auxiliares y una fórmula que suma con condiciones.Una medida que se evalúa en el contexto del filtro: la misma medida sirve para cualquier categoría.Pasos: unir tablas, filtrar, sumar y dividir.
Si cambias el filtroHay que cambiar el criterio de la fórmula.Se recalcula sola en la tabla dinámica.Hay que volver a ejecutar con otro valor.
FortalezaVisible y fácil de revisar.Interactiva y correcta con cualquier corte.Repetible y automatizable.

🧭 Decisor: ¿qué me conviene para mi informe?

🏋️ 12 ejercicios: el mismo resultado en Excel, DAX y Python

Descarga la base de datos, resuelve cada ejercicio en Excel (con fórmulas o con Power Pivot) y escribe tu resultado: la app lo compara con el valor correcto calculado sobre los mismos datos. Después revisa la solución en las tres herramientas y cuándo conviene cada una.

Ventas ( filas): IdVenta, Fecha, IdCliente, IdProducto, Cantidad, Descuento.
Productos (8 filas): IdProducto, Producto, Categoría, Precio, Costo.
Clientes (8 filas): IdCliente, Cliente, Ciudad, Segmento.
Antes de empezar (Power Pivot): Datos → Agregar al modelo de datos las tres tablas, y en la vista de diagrama relaciona Ventas[IdProducto] con Productos[IdProducto] y Ventas[IdCliente] con Clientes[IdCliente]. Con fórmulas: agrega a la tabla Ventas las columnas auxiliares Precio, Costo, Categoría, Ciudad, Año y Total (ver el ejercicio 1). Las medidas DAX se muestran con coma como en Power BI; si tu Excel usa punto y coma como separador, úsalo también en Power Pivot.

📚 Diccionario

Modelo de datosConjunto de tablas relacionadas dentro de Excel (Power Pivot) o Power BI.
Esquema estrellaUna tabla de hechos (ventas) en el centro unida a tablas de dimensiones (productos, clientes, fechas).
MedidaCálculo DAX que se evalúa según los filtros de la tabla dinámica. No ocupa espacio por fila.
Columna calculadaCálculo DAX que se guarda fila por fila en una tabla del modelo.
Contexto de filtroLos filtros activos (fila, columna, segmentación) con los que se evalúa una medida.
SUMXRecorre una tabla fila por fila, calcula una expresión y suma los resultados.
RELATEDTrae un valor de la tabla relacionada, como BUSCARX dentro del modelo.
CALCULATEEvalúa una medida cambiando el contexto de filtro, como un SUMAR.SI que entiende relaciones.
DIVIDEDivide y devuelve vacío si el divisor es cero, sin error.
DISTINCTCOUNTCuenta valores distintos de una columna.
ALLQuita filtros de una tabla o columna; útil para porcentajes del total.
BUSCARXFunción de Excel que busca un valor en una columna y devuelve el de otra.
SUMAR.SI.CONJUNTOSuma los valores que cumplen varias condiciones.
pandasBiblioteca de Python para trabajar tablas (DataFrames).
mergeUne dos tablas de pandas por una columna llave.
groupbyAgrupa filas de pandas para calcular por grupo, como una tabla dinámica.

🎬 Videos de apoyo

Funciones de iteración SUMX, MINX, MAXX y AVERAGEX en DAX (El Tío Tech)

¿Cuándo usar columnas calculadas y medidas en Power Pivot? (EXCELeINFO)

SUMAR.SI y CONTAR.SI con CALCULATE (datdata)

Limpieza de datos: ¿con Excel o con Python?

¿Quieres profundizar? Mira Power Pivot y Python para Excel.

📝 Cuestionario

10 preguntas aleatorias de un banco de 50. Calificación de 0 a 100.

Tu calificación: