Lección 15 de 16 · Nivel 4: Experto

Power Pivot y modelo de datos en Excel: relaciones y medidas DAX

  • ⏱ 9 min de lectura
  • ❓ 3 preguntas de repaso
  • ✍️ Ejercicio con solución
En esta lección
  1. El caso: tres tablas de una tienda de café
  2. Paso 1: cargar las tablas al modelo
  3. Paso 2: relacionar las tablas (modelo en estrella)
  4. Paso 3: medidas con DAX
  5. Paso 4: analizar con tablas dinámicas
  6. Resumen
Lo que lograrás en esta lección
  • Entender qué es el modelo de datos de Excel y cuándo te conviene más que BUSCARV.
  • Relacionar varias tablas en un modelo en estrella.
  • Crear medidas con DAX: SUM, DIVIDE, SUMX, RELATED y CALCULATE.
  • Construir tablas dinámicas y reportes libres con datos de varias tablas.

Hasta ahora, cuando necesitabas combinar dos tablas, traías columnas con BUSCARV o BUSCARX (lección 6). Funciona, pero tiene límites: duplica datos, hace pesado el archivo y una hoja no admite más de 1.048.576 filas. Power Pivot y el modelo de datos resuelven esos tres problemas: cargas cada tabla una sola vez, las relacionas como en una base de datos y calculas con un lenguaje creado para eso, DAX. Es el mismo motor que usa Power BI, así que lo que aprendas aquí te servirá en el curso de Power BI.

¿Lo tiene tu Excel?

El modelo de datos está en Excel 2016 o posterior y en Microsoft 365 para Windows. Para ver la ventana de Power Pivot, activa el complemento en Archivo › Opciones › Complementos › Administrar: Complementos COM › Microsoft Power Pivot for Excel. En Excel para Mac y en la versión web puedes usar tablas dinámicas sobre el modelo, pero no la ventana de Power Pivot.

El caso: tres tablas de una tienda de café

Una tienda tiene sus datos en tres tablas de Excel (con formato de tabla, lección 4):

TablaColumnasTipo
VentasFecha, IdCliente, IdProducto, Cantidad, PrecioHechos: una fila por venta, crece cada día
ProductosIdProducto, Producto, Categoría, CostoDimensión: describe los productos
ClientesIdCliente, Nombre, CiudadDimensión: describe a los clientes

Datos de ejemplo para seguir la lección:

FechaIdClienteIdProductoCantidadPrecio
02/03C1P11020
05/03C2P2518
09/03C1P3280
12/03C3P1820
20/03C2P1420
28/03C3P3185

Productos: P1 Café molido (costo 12), P2 Taza (costo 9), P3 Prensa francesa (costo 45). Clientes: C1 y C3 son de Lima; C2, de Arequipa.

Paso 1: cargar las tablas al modelo

  1. Haz clic en la tabla Ventas y ve a Power Pivot › Agregar al modelo de datos. Repite con Productos y Clientes.
  2. Si los datos vienen de archivos externos, mejor aún: impórtalos con Power Query (lección 11) y elige Cerrar y cargar en… › Solo crear conexión con la casilla Agregar estos datos al modelo de datos. Así no ocupan ninguna hoja y pueden superar el millón de filas.

Paso 2: relacionar las tablas (modelo en estrella)

En la ventana de Power Pivot, pulsa Vista de diagrama y arrastra Ventas[IdProducto] sobre Productos[IdProducto], y Ventas[IdCliente] sobre Clientes[IdCliente]. También puedes hacerlo desde Datos › Relaciones.

El resultado es un modelo en estrella: la tabla de hechos en el centro y las dimensiones alrededor, cada relación de "uno" (la dimensión, donde cada Id aparece una vez) a "varios" (Ventas, donde se repite). Ya no necesitas copiar el nombre del producto ni la ciudad en la tabla de ventas: el modelo los encuentra a través de las relaciones.

Las claves deben coincidir exactamente

Si en una tabla el código es "P1" y en otra "P1 " (con un espacio) o "p1", la relación no encuentra la fila y esas ventas aparecen en una categoría "(en blanco)". Limpia las claves con Power Query antes de relacionar: recortar espacios y unificar mayúsculas.

1. En un modelo en estrella, ¿qué lado de la relación es el "uno"?

  • La tabla Ventas, porque tiene más filas.
  • La tabla de dimensión (Productos, Clientes), donde cada Id aparece una sola vez.
  • Da igual, Excel lo decide al azar.

La dimensión tiene una fila por producto o cliente (clave única); la tabla de hechos repite esas claves en muchas ventas.

Paso 3: medidas con DAX

Una medida es un cálculo que se evalúa según los filtros de la tabla dinámica: el mismo "Ventas totales" da el total general, el de Lima o el de marzo, según dónde lo pongas. Créalas en Power Pivot › Medidas › Nueva medida o con clic derecho sobre la tabla en la lista de campos de la tabla dinámica › Agregar medida.

Ventas Totales := SUMX(Ventas, Ventas[Cantidad] * Ventas[Precio])

Costo Total := SUMX(Ventas, Ventas[Cantidad] * RELATED(Productos[Costo]))

Margen := [Ventas Totales] - [Costo Total]

% Margen := DIVIDE([Margen], [Ventas Totales])

Ventas Lima := CALCULATE([Ventas Totales], Clientes[Ciudad] = "Lima")

Qué hace cada función:

  • SUMX recorre la tabla fila por fila, calcula la expresión y suma los resultados. Aquí multiplica cantidad por precio en cada venta.
  • RELATED trae un valor de la tabla del lado "uno" siguiendo la relación: el costo del producto de cada venta. Es el reemplazo de BUSCARV dentro del modelo.
  • DIVIDE divide y devuelve vacío en lugar de error si el denominador es 0.
  • CALCULATE evalúa una medida cambiando los filtros: "las ventas totales, pero solo de Lima".

Con los datos de ejemplo: Ventas Totales = 775, Costo Total = 444, Margen = 331, % Margen = 42,7% y Ventas Lima = 605.

Comas o punto y coma

Los nombres de las funciones DAX están siempre en inglés (SUM, CALCULATE…), aunque tu Excel esté en español. El separador de argumentos sigue la configuración regional: si tus fórmulas normales usan punto y coma, escribe DIVIDE([Margen]; [Ventas Totales]).

¿Medida o columna calculada?

Columna calculadaMedida
Se calculaUna vez por fila, al actualizarAl usarla, según los filtros
Ocupa memoriaSí, cada fila guarda su valorNo
Úsala paraClasificar o segmentar (tramo de precio, tipo de cliente)Sumar, promediar, porcentajes, comparaciones

Regla práctica: si lo vas a poner en filas, columnas o segmentaciones, columna calculada; si lo vas a poner en Valores, medida.

2. Con los datos de ejemplo, ¿cuál es el margen del producto P1 (café molido)?

  • 440
  • 176
  • 264

P1 se vendió 22 unidades a 20 (440) con un costo de 12 por unidad (264): 440 − 264 = 176. Es lo que muestra la medida Margen al filtrar por ese producto.

Paso 4: analizar con tablas dinámicas

Inserta una tabla dinámica y elige Usar el modelo de datos de este libro. En la lista de campos verás las tres tablas. Arrastra Productos[Categoría] a filas, Clientes[Ciudad] a columnas y las medidas a valores. Las segmentaciones y escalas de tiempo funcionan igual que en la lección 9, pero ahora pueden filtrar por campos de cualquier tabla.

Reportes con formato libre: las funciones CUBO

Si necesitas un informe con un diseño fijo que la tabla dinámica no permite, usa las funciones de cubo, que leen el modelo celda por celda:

=VALOR.CUBO("ThisWorkbookDataModel"; "[Measures].[Ventas Totales]")
=VALOR.CUBO("ThisWorkbookDataModel"; "[Measures].[Margen]"; "[Clientes].[Ciudad].&[Lima]")

El atajo: crea la tabla dinámica y usa Analizar tabla dinámica › Herramientas OLAP › Convertir en fórmulas. Cada celda se transforma en una fórmula VALOR.CUBO que puedes mover a donde quieras.

3. ¿Qué ventaja tiene el modelo de datos frente a traer columnas con BUSCARV?

  • Ninguna, solo cambia la forma de escribir.
  • Cada tabla se guarda una vez, admite más de un millón de filas y las medidas se recalculan según cualquier filtro.
  • Permite editar los datos directamente en la tabla dinámica.

El modelo comprime los datos, evita duplicarlos y separa los cálculos (medidas) de la presentación.

Ejercicio práctico: tu primer modelo

  1. Crea las tres tablas de ejemplo y agrégalas al modelo de datos.
  2. Relaciónalas en la vista de diagrama.
  3. Crea las cinco medidas de la lección y comprueba los resultados (775, 331, 42,7%, 605).
  4. Crea una medida Ventas Arequipa y otra Ticket promedio (ventas totales entre número de ventas).
  5. Arma una tabla dinámica con producto en filas y ciudad en columnas.
Ver solución
Ventas Arequipa := CALCULATE([Ventas Totales], Clientes[Ciudad] = "Arequipa")
→ 170   (90 de tazas + 80 de café)

N.º de ventas := COUNTROWS(Ventas)                  → 6
Ticket promedio := DIVIDE([Ventas Totales], [N.º de ventas])
→ 129,17

Tabla dinámica (Ventas Totales):
                    Arequipa   Lima    Total
Café molido            80      360      440
Prensa francesa                245      245
Taza                   90                90
Total                 170      605      775

Comprueba que Lima (605) + Arequipa (170) = 775: si no cuadra, revisa que todas las claves de clientes tengan su fila en la tabla Clientes.

Resumen

  • El modelo de datos guarda varias tablas relacionadas, sin duplicar datos y sin el límite de filas de una hoja.
  • Organízalo en estrella: hechos en el centro, dimensiones alrededor, relaciones de uno a varios.
  • Las medidas DAX se calculan según los filtros: SUMX, RELATED, DIVIDE y CALCULATE cubren la mayoría de los casos.
  • Columnas calculadas para clasificar; medidas para los valores.
  • Las funciones CUBO convierten el modelo en informes con diseño libre.

En la próxima lección pondrás a prueba todo el curso con los ejercicios que más se piden en las pruebas de Excel de los procesos de selección, resueltos paso a paso.

🎓 Guarda tu avance y obtén tu certificado gratis

Crea tu cuenta en 30 segundos, marca tus lecciones y descarga el certificado al terminar.

Inscribirme gratis