Cuando los datos de ventas, clientes y productos viven en una sola hoja repetida hasta el infinito, cualquier cambio de precio se vuelve una pesadilla: hay que buscar la cadena de texto, reescribirla y rezar para no dejarse ninguna copia. Un modelo de datos es el plano que evita ese desastre: decides qué tablas existen, qué columnas tiene cada una y cómo se conectan antes de escribir un solo número. Al terminar este tutorial tendrás un libro de Excel con un esquema dibujado, tres tablas relacionadas y una tabla dinámica que cruza clientes con productos, listo para crecer sin romperse. Funciona en Microsoft 365, Excel 2024 y 2021; en Excel 2019 y 2016 la herramienta Relaciones existe pero Power Query cambia de ubicación según la instalación.
Qué es un modelo de datos y por qué te conviene dibujarlo antes de empezar
Imagina la hoja «Ventas» típica: una columna para el cliente, otra para el nombre del producto, otra para la ciudad, otra para la categoría, y los importes repetidos fila tras fila. El día que un cliente cambia de ciudad hay que buscarla en cada fila; el día que se renombra un producto, el doble. Cuando aparecen dos clientes que se llaman igual, ya no sabes cuál es cuál.
El modelo de datos es el plano que se diseña antes de tocar el teclado para que eso no pase. Tiene tres niveles:
- Conceptual: qué entidades existen (Cliente, Producto, Venta) y cómo se relacionan en lenguaje humano.
- Lógico: cada entidad con sus atributos (Cliente: IdCliente, Nombre, Ciudad) y el tipo de cada uno (texto, número, fecha).
- Físico: las tablas tal como quedan en Excel, con sus columnas, sus tipos y las hojas en que viven.
Nivel | Qué se decide | Ejemplo
-------------- | ------------------------------ | -----------------------------------------
Conceptual | Entidades y relaciones | Cliente vende Productos
Lógico | Atributos y claves | Cliente(IdCliente, Nombre, Ciudad)
Físico | Tablas, columnas y tipos | Hoja "Clientes" con A1 como texto
Excel no es una herramienta de modelado como Erwin Data Modeler o IBM InfoSphere Data Architect, pero para modelos pequeños y medianos basta y sobra: una hoja con el esquema, tres tablas y la herramienta Relaciones.
Las piezas del modelo que vas a usar una y otra vez
Estas son las piezas que se repiten en cualquier modelo, da igual el tamaño:
- Entidad: lo que se convierte en tabla (Clientes, Productos, Ventas).
- Atributo: cada columna de la tabla (Nombre, Ciudad, Importe).
- Clave primaria: la columna que identifica la fila sin ambigüedad (IdCliente, IdProducto, IdVenta). No se repite nunca.
- Clave externa: la columna en una tabla que apunta a la clave primaria de otra (IdCliente dentro de Ventas apunta a la fila de ese cliente en Clientes).
- Relación: el vínculo entre dos tablas. Casi siempre es uno a varios (un cliente tiene muchas ventas; un producto aparece en muchas ventas). El caso varios a varios (un cliente compra varios productos y un producto lo compran varios clientes) se resuelve con una tabla intermedia, que en este tutorial es la propia tabla Ventas.
- Esquema: la forma final del modelo. En Excel aguantas bien tres:
– Plano: todo en una hoja, útil para datos pequeños o de importación. – Relacional en hojas separadas: cada entidad en su hoja, conectadas por claves. El más limpio. – Estrella: una tabla de hechos (Ventas) rodeada de tablas de dimensión (Clientes, Productos, Fechas). Es el que usan las herramientas de análisis.
Dibuja el esquema en una hoja con solo cuadro y texto
Antes de crear las tablas, dibuja el plano en una hoja aparte. Así ves de un vistazo qué falta y qué sobra.
- Añade una hoja nueva y llámala
Esquema(clic derecho en la pestaña > Cambiar nombre). - En
Insertar > Ilustraciones > Formaselige el rectángulo. - Dibuja tres rectángulos separados: «Clientes», «Productos» y «Ventas».
- Haz clic dentro de cada uno y escribe su nombre.
- En
Insertar > Ilustraciones > Formaselige la flecha recta. - Une la clave primaria con su clave externa: una flecha desde el rectángulo «Clientes» hasta «Ventas» y otra desde «Productos» hasta «Ventas».
- Mete los atributos como líneas de texto dentro de cada rectángulo, con la clave primaria subrayada o en negrita para distinguirla.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Clientes | Productos | ||||
| 2 | *IdCliente* | *IdProducto* | ||||
| 3 | Nombre | Nombre | ||||
| 4 | Ciudad | Categoría | ||||
| 5 | ||||||
| 6 | Ventas | |||||
| 7 | *IdVenta* | |||||
| 8 | Fecha | |||||
| 9 | IdCliente | |||||
| 10 | IdProducto | |||||
| 11 | Unidades | |||||
| 12 | Importe |
Tablas, columnas y tipos de dato
Antes de pasar el esquema a Excel, conviene dejar escritos los atributos y su tipo. Esto se llama diccionario de datos y es lo que más cuesta rehacer si te lo saltas.
Tabla | Columna | Tipo | Ejemplo
--------- | ------------ | ------------ | -----------
Clientes | IdCliente | Número entero| 1
Clientes | Nombre | Texto | Ana Ruiz
Clientes | Ciudad | Texto | Lima
Productos | IdProducto | Número entero| 10
Productos | Nombre | Texto | Cuaderno
Productos | Categoría | Texto | Papelería
Ventas | IdVenta | Número entero| 1001
Ventas | Fecha | Fecha | 15/03/2026
Ventas | IdCliente | Número entero| 1
Ventas | IdProducto | Número entero| 10
Ventas | Unidades | Número entero| 3
Ventas | Importe | Moneda | 12,50
La columna «Importe» se guarda como número con formato moneda; las claves, como número entero sin decimales.
Las relaciones entre tablas, una a una
Dos relaciones en este modelo:
- Cliente (1) → Ventas (varios) por
IdCliente: un cliente puede tener muchas ventas, pero cada venta pertenece a un solo cliente. - Producto (1) → Ventas (varios) por
IdProducto: un producto puede aparecer en muchas ventas, pero cada venta tiene un solo producto.
Para reflejarlas en el esquema:
- Dibuja una flecha desde el rectángulo «Clientes» hasta el rectángulo «Ventas» y etiqueta el extremo con
IdCliente. - Dibuja otra flecha desde «Productos» hasta «Ventas» y etiquétala con
IdProducto.
Crea las tablas en hojas separadas y dale forma de tabla de Excel
Ahora que el esquema está en papel (o en una hoja), se traslada a Excel. Una tabla por hoja, con sus datos, y cada bloque se convierte en tabla de Excel para que los nombres y los rangos se actualicen al crecer.
Hoja Clientes:
| A | B | C | |
|---|---|---|---|
| 1 | IdCliente | Nombre | Ciudad |
| 2 | 1 | Ana Ruiz | Lima |
| 3 | 2 | Pedro Gómez | Santiago |
| 4 | 3 | Lucía Méndez | Bogotá |
| 5 | 4 | Diego Soto | Quito |
Hoja Productos:
| A | B | C | |
|---|---|---|---|
| 1 | IdProducto | Nombre | Categoría |
| 2 | 10 | Cuaderno | Papelería |
| 3 | 11 | Lápiz | Papelería |
| 4 | 12 | Mochila | Accesorios |
| 5 | 13 | Calculadora | Electrónica |
Hoja Ventas:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | IdVenta | Fecha | IdCliente | IdProducto | Unidades | Importe |
| 2 | 1001 | 15/03/2026 | 1 | 10 | 3 | 9,00 |
| 3 | 1002 | 15/03/2026 | 2 | 11 | 5 | 2,50 |
| 4 | 1003 | 16/03/2026 | 1 | 12 | 1 | 25,00 |
| 5 | 1004 | 17/03/2026 | 3 | 13 | 2 | 40,00 |
| 6 | 1005 | 17/03/2026 | 4 | 10 | 4 | 12,00 |
Pasos para cada hoja:
- Escribe los datos como en las tablas de arriba.
- Selecciona todo el bloque con sus encabezados (por ejemplo,
A1:C5en Clientes). - Pulsa Ctrl+T para crear la tabla de Excel. Marca la casilla «La tabla tiene encabezados» y pulsa Aceptar.
- En la pestaña
Diseño de tablaque aparece, cambia el nombre aClientes,ProductosoVentassegún corresponda (campo «Nombre de la tabla», arriba a la izquierda).
Relaciona las tablas sin escribir una fórmula
Excel trae una herramienta pensada justo para esto: Relaciones. Une las tablas por sus claves y permite que las tablas dinámicas las crucen sin BUSCARV.
- Ve a la hoja
Ventasy haz clic en cualquier celda de la tabla. - Abre
Datos > Herramientas de datos > Relaciones. - Pulsa
Nuevay rellena:
- Repite para
IdProducto, eligiendoProductoscomo tabla relacionada. - Cierra el cuadro y vuelve a la hoja.
La tabla dinámica que cruza Cliente con Productos
Las relaciones no se ven hasta que las usas en una tabla dinámica.
- Haz clic en la tabla
Ventasy ve aInsertar > Tablas > Tabla dinámica. - Acepta el destino en una hoja nueva.
- En el panel de la derecha:
– Arrastra Nombre (de Clientes) a Filas. – Arrastra Nombre (de Productos) a Columnas. – Arrastra Importe a Valores.
- La tabla dinámica muestra cada cliente como fila y cada producto como columna, con la suma de importes en el cruce.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Cuaderno | Lápiz | Mochila | Calculadora | |
| 2 | Ana Ruiz | 9,00 | 25,00 | ||
| 3 | Pedro Gómez | 2,50 | |||
| 4 | Lucía Méndez | 40,00 | |||
| 5 | Diego Soto | 12,00 | |||
| 6 | Total general | 21,00 | 2,50 | 25,00 | 40,00 |
Trae un valor concreto con BUSCARV desde otra tabla
La herramienta Relaciones solo sirve para tablas dinámicas. Si necesitas el dato de otra tabla en una celda concreta, usa BUSCARV (en inglés VLOOKUP).
En la hoja Ventas, añade una columna Ciudad a la derecha de IdCliente y escribe en D2:
=BUSCARV(C2;Clientes!$A:$C;3;FALSO)
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | IdVenta | Fecha | IdCliente | Ciudad | IdProducto | Unidades | Importe |
| 2 | 1001 | 15/03/2026 | 1 | Lima | 10 | 3 | 9,00 |
| 3 | 1002 | 15/03/2026 | 2 | Santiago | 11 | 5 | 2,50 |
| 4 | 1003 | 16/03/2026 | 1 | Lima | 12 | 1 | 25,00 |
| 5 | 1004 | 17/03/2026 | 3 | Bogotá | 13 | 2 | 40,00 |
| 6 | 1005 | 17/03/2026 | 4 | Quito | 10 | 4 | 12,00 |
Cuando los datos viven en una sola hoja, modelar también cuenta
No siempre se empieza de cero. Muchas veces llega una hoja plana exportada de otro sistema, con columnas repetidas para cada cliente o cada mes: Enero, Febrero, Marzo…, o Cliente1, Cliente2, Cliente3… Esas hojas son una pesadilla: los meses deberían ser filas, no columnas, y los clientes repetidos deberían ser una sola fila en una tabla aparte.
Detectar columnas que deberían ser una tabla aparte es fácil si te haces estas preguntas:
- ¿Esta columna repite el mismo valor muchas veces? Entonces es candidata a tabla de dimensión.
- ¿Cambia su valor a menudo? Si cambia el nombre de un cliente en una fila y no en las demás, tienes un problema.
- ¿Podría tener atributos propios? Si los clientes tienen ciudad, teléfono o correo, no deberían ir en cada fila de venta.
Separa una tabla plana con Power Query
Power Query (en Excel 2016 y posteriores, en la pestaña Datos) deja grabado el proceso: lo haces una vez y se aplica con Actualizar cada vez que cambian los datos originales.
Supón esta hoja Plano:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Producto | Ana | Pedro | Lucía | Diego | |
| 2 | Cuaderno | 3 | 1 | 4 | ||
| 3 | Lápiz | 5 | ||||
| 4 | Mochila | 1 | ||||
| 5 | Calculadora | 2 |
Pasos para pasarlo a modelo:
- Selecciona la tabla y ve a
Datos > Obtener y transformar datos > Desde tabla o rango. - En el editor de Power Query, selecciona las columnas
Ana,Pedro,LucíayDiego. - Ve a
Transformar > Anular dinamización de columnas > Anular dinamización solo de las columnas seleccionadas. - Aparecen dos columnas:
Atributo(con los nombres de los clientes) yValor(con las unidades). Renómbralas aClienteyUnidades. - Quita las filas con
Unidadesen blanco (clic en la flecha del filtro de la columnaUnidadesy desmarca(En blanco)). - Cierra y carga en
Cerrar y cargar > Cerrar y cargar en... > Tabla > Hoja de cálculo existente, en la celdaA1de una hoja nueva llamadaVentasPowerQuery.
| A | B | C | |
|---|---|---|---|
| 1 | Producto | Cliente | Unidades |
| 2 | Cuaderno | Ana | 3 |
| 3 | Cuaderno | Lucía | 1 |
| 4 | Cuaderno | Diego | 4 |
| 5 | Lápiz | Pedro | 5 |
| 6 | Mochila | Ana | 1 |
| 7 | Calculadora | Lucía | 2 |
VentasPowerQuery tiene una fila por combinación de producto y cliente, sin celdas vacías. Si más adelante cambias la hoja Plano, al pulsar Datos > Consultas y conexiones > Actualizar la tabla se regenera sola.Los errores que de verdad pasan cuando el modelo está mal
Cómo encontrar los duplicados antes de que exploten
La tabla dinámica suma de más porque hay dos clientes con el mismo nombre y la misma ciudad, pero distinto IdCliente. La hoja no avisa; el modelo se rompe en silencio.
Pasos para detectarlos:
- Selecciona la columna
IdClientede la tablaClientes. - Ve a
Inicio > Estilos > Formato condicional > Resaltar reglas de celdas > Valores duplicados. - Elige el formato (relleno rojo claro) y pulsa Aceptar. Las celdas duplicadas se pintan.
- Revisa las pintadas: si son errores, bórralas; si son correctas (dos clientes con el mismo nombre por casualidad), asigna un nuevo
IdCliente.
Cuando la relación no se deja crear
El cuadro de Relaciones devuelve el mensaje «No se puede crear la relación porque las columnas contienen tipos de datos diferentes». La causa: IdCliente en Clientes es número, pero en Ventas alguien lo escribió como texto.
Arreglo paso a paso:
- En la hoja
Ventas, selecciona la columnaIdCliente(la columna C de los datos, sin el encabezado). - Ve a
Datos > Herramientas de datos > Texto en columnas. Pulsa Aceptar dos veces (sin cambiar opciones). - Vuelve a seleccionar la misma columna y, con Ctrl+1, abre
Formato de celdas > Número > Númerocon cero decimales. Aceptar. - Repite en
Clientespara asegurar el mismo formato. - Vuelve a
Datos > Herramientas de datos > Relaciones > Nuevay crea la relación: ya no dará error.
" 1" en lugar de 1), BUSCARV devuelve #N/A aunque la relación se cree. Usa BUSCARV(VALOR(C2);Clientes!A:C;1;FALSO) para limpiarlo o corrige la hoja a mano.Lo que Excel no hace y qué herramienta usar en su lugar
Excel sirve para diseñar y mantener modelos pequeños y medianos, pero hay cosas que no hace:
- No genera documentación automática del modelo a partir de las tablas. La documentación la escribes tú (la hoja
Esquemade este tutorial). - No valida reglas UML. Si necesitas que el modelo cumpla notación estándar, usa Erwin, IBM InfoSphere o Lucidchart.
- No hace ingeniería inversa desde una base de datos real (lee los nombres de tablas, columnas y tipos de un servidor y los dibuja). Para eso están Erwin Data Modeler y dbdiagram.io.
- Las relaciones de la herramienta Relaciones solo sirven para tablas dinámicas. Para cruzar tablas en celdas, necesitas BUSCARV, INDICE y COINCIDIR, o BUSCARX en Microsoft 365 y Excel 2021 en adelante.
- No escala a millones de filas en una sola hoja sin pasar por Power Query o por un modelo de datos en memoria (Power Pivot).
Para modelos grandes, las opciones más usadas son Erwin Data Modeler (pago, estándar de la industria), IBM InfoSphere Data Architect (pago, orientado a empresa), Lucidchart y dbdiagram.io (gratuitos, dibujo) y dbt (gratis, transformaciones versionadas).
Lo que ya sabes hacer con un modelo en Excel y el siguiente paso
Cinco claves para llevarte de este tutorial:
- Dibujar el esquema en una hoja antes de tocar datos, con rectángulos y flechas.
- Separar cada entidad en su hoja y darle formato de tabla de Excel con Ctrl+T.
- Crear las relaciones desde
Datos > Herramientas de datos > Relaciones, eligiendo bien clave externa y clave principal. - Cruzarlas con una tabla dinámica que combine campos de varias tablas, sin escribir BUSCARV.
- Limpiar duplicados con formato condicional antes de unir, para que los totales cuadren.
El siguiente paso es alimentar el modelo desde fuera: usa Power Query para leer un CSV, una base de datos Access o una carpeta entera, y carga cada tabla en su hoja. Así, el día que cambie el origen, basta con pulsar Actualizar y todo se regenera sin tocar el modelo.
Datos comprobados en octubre de 2026.
Fuentes
- MicrosoftIMPORTARDATOSDINAMICOS — documentación oficialconsultado el 05/10/2026
- MicrosoftValidación de datos — documentación oficialconsultado el 05/10/2026
- MicrosoftFormato condicional — documentación oficialconsultado el 05/10/2026
- MicrosoftTabla dinámica — documentación oficialconsultado el 05/10/2026
- MicrosoftPower Query (Obtener y transformar datos) — documentación oficialconsultado el 05/10/2026