Una base de datos bien hecha empieza antes de abrir Excel: se dibuja en papel como un modelo entidad–relación (MER), un plano que decide qué datos van juntos y qué datos se relacionan entre sí. Cuando ese plano está claro, pasarlo a hojas de Excel es casi mecánico: una hoja por cada entidad, una columna con un identificador único y BUSCARV (VLOOKUP) para cruzar la información.
En este tutorial se usa un caso real: una tienda que anota pedidos en una hoja plana donde se repiten nombres de clientes y de productos, y donde cualquier cambio de precio hay que tocarlo fila a fila. Al terminar, esa hoja plana se convierte en tres hojas relacionadas (Clientes, Productos y Pedidos) y los pedidos muestran, solos, el nombre del cliente, el precio del producto y el importe total.
Las funciones y herramientas que se usan —BUSCARV, formato de Tabla, Validación de datos— están en Excel 2007 y posteriores. Power Query se menciona al final como siguiente paso; viene integrado desde Excel 2016, y en 2010/2013 como complemento.
Qué es el modelo entidad–relación y para qué sirve antes de tocar Excel
El modelo entidad–relación (MER) es el plano que se dibuja antes de crear una base de datos. Una entidad es una cosa de la que guardas datos (un cliente, un producto, un pedido); un atributo es un dato concreto de esa cosa (el nombre, el precio, la fecha); una relación es cómo se conectan unas entidades con otras (un cliente hace pedidos, un pedido incluye productos). El MER obliga a decidir esto en papel para que después las hojas de Excel no se conviertan en un cajón desastre.
Imagina la hoja de la tienda: en una sola tabla se repite «Marta Ruiz» en cinco filas, aparece «Camiseta» con precios distintos según el día y, cuando un cliente cambia de ciudad, hay que buscar y cambiar todas sus filas a mano. Eso pasa porque la hoja mezcla entidades (clientes y productos) dentro de los pedidos. El MER obliga a separarlas: los datos de cada cliente viven una sola vez, los de cada producto también, y los pedidos solo guardan referencias (identificadores) a esos datos. A partir de ahí, BUSCARV se encarga de juntar la información cuando hace falta.
Las piezas del MER: entidades, atributos, relaciones y cardinalidad
Una entidad se convierte en una hoja de Excel: Clientes, Productos y Pedidos. Cada atributo es una columna de esa hoja: Nombre, Ciudad, PrecioUnitario, Fecha, Cantidad. La relación es la pista que conecta dos entidades, normalmente un identificador (Id) que aparece en las dos. La cardinalidad dice cuántas veces se relacionan: un cliente tiene muchos pedidos (1 a N), un pedido pertenece a un solo cliente (N a 1), y un pedido puede incluir varios productos y un producto puede aparecer en muchos pedidos (N a M).
| Cardinalidad | Significado | Ejemplo del tutorial |
|---|---|---|
| 1:1 | Una fila de A se relaciona con una sola fila de B | Un pedido tiene un único cliente que lo firma |
| 1:N | Una fila de A se relaciona con muchas de B | Un cliente tiene muchos pedidos |
| N:M | Muchas filas de A se relacionan con muchas de B | Un pedido incluye varios productos y un producto aparece en muchos pedidos |
Clave primaria y clave foránea: el identificador que no se repite
La clave primaria (PK, primary key) es la columna que identifica cada fila sin confusión: el IdCliente (1, 2, 3…) o el IdProducto (P-001, P-002…). No se repite, no tiene huecos y no cambia. La clave foránea (FK, foreign key) es esa misma columna copiada en otra hoja para apuntar a la fila original: en Pedidos, IdCliente es FK hacia Clientes e IdProducto es FK hacia Productos. Sin FK, BUSCARV no tendría forma de saber qué fila cruzar con cuál, por eso toda tabla relacionada necesita, al menos, una columna con el identificador de la otra tabla.
Del MER a las tablas en Excel: una hoja por entidad
La regla de oro al pasar un MER a Excel es: una hoja por entidad y una columna por atributo. La hoja Clientes, la hoja Productos y la hoja Pedidos. La hoja Pedidos no guarda el nombre del cliente ni el precio del producto: guarda los Id, y más adelante BUSCARV se encarga de traer el resto.
- Abre un libro nuevo y renombra la primera hoja como
Clientes, la segunda comoProductosy la tercera comoPedidos(clic derecho en la pestaña > Cambiar nombre). - En la hoja
Clientes, escribe en la fila 1 los encabezadosIdCliente,Nombre,CiudadyFechaAlta. - En la hoja
Productos, escribeIdProducto,ProductoyPrecioUnitario. - En la hoja
Pedidos, escribeIdPedido,Fecha,IdCliente,IdProductoyCantidad.
Clientes en la hoja Clientes con su Id como clave
Rellena la hoja Clientes con cinco clientes. La columna IdCliente es la clave primaria: no se repite y, si ordenas la tabla por ella, cada fila está en un sitio fijo.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | IdCliente | Nombre | Ciudad | FechaAlta |
| 2 | 1 | Marta Ruiz | Valencia | 02/01/2026 |
| 3 | 2 | Luis Perez | Sevilla | 15/01/2026 |
| 4 | 3 | Ana Gomez | Bilbao | 20/02/2026 |
| 5 | 4 | Pedro Soto | Madrid | 05/03/2026 |
| 6 | 5 | Clara Diaz | Zaragoza | 18/03/2026 |
Para evitar que se cuelen duplicados en IdCliente, selecciónala y abre Validación de datos.
IdCliente, Excel muestra un aviso y no deja continuar.Productos en la hoja Productos con su Id y el precio
La hoja Productos es la lista de precios de la tienda. IdProducto es la clave primaria; PrecioUnitario se guarda con dos decimales para que BUSCARV lo devuelva tal cual se va a cobrar.
| A | B | C | |
|---|---|---|---|
| 1 | IdProducto | Producto | PrecioUnitario |
| 2 | P-001 | Camiseta | 12,50 |
| 3 | P-002 | Pantalon | 8,00 |
| 4 | P-003 | Chaqueta | 20,00 |
| 5 | P-004 | Calcetines | 4,50 |
| 6 | P-005 | Gorra | 6,00 |
Selecciona C2:C6 y aplica formato moneda con dos decimales (Ctrl+1 > Número > Moneda). Así, cuando BUSCARV traiga el precio, la celda ya lo muestra como 12,50 € (o el símbolo que tengas).
Pedidos en la hoja Pedidos con los Id de las otras dos tablas
La hoja Pedidos es la más importante del modelo: no guarda nombres ni precios, solo Id que apuntan a las otras dos hojas. IdPedido es la clave primaria; IdCliente e IdProducto son claves foráneas.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | IdPedido | Fecha | IdCliente | IdProducto | Cantidad |
| 2 | PED-001 | 10/01/2026 | 1 | P-001 | 20 |
| 3 | PED-002 | 12/01/2026 | 2 | P-003 | 2 |
| 4 | PED-003 | 15/01/2026 | 1 | P-004 | 3 |
| 5 | PED-004 | 18/01/2026 | 4 | P-002 | 5 |
| 6 | PED-005 | 22/01/2026 | 3 | P-005 | 10 |
Fíjate: «Marta Ruiz» no aparece en esta hoja. Solo está su IdCliente (1). Cuando haga falta el nombre, lo traerá BUSCARV desde la hoja Clientes.
Relacionar las tablas con BUSCARV para cruzar los datos
Con las tres hojas separadas, la hoja Pedidos no muestra nada útil por sí sola. BUSCARV (en inglés VLOOKUP) es la función que va a la otra hoja, busca el identificador y devuelve el dato que le pidas. Su sintaxis es: =BUSCARV(valor_buscado; rango_tabla; núm_columna; [ordenado]).
=BUSCARV(D2;Productos!A:C;3;FALSO)
valor_buscado es el Id que tienes en la celda; rango_tabla es la hoja donde está el dato (con la columna clave la primera); núm_columna es la columna del dato que quieres traer (1 = la clave, 2 = la siguiente…); ordenado se deja en FALSO para coincidencia exacta.
Traer el precio del producto con BUSCARV
En la hoja Pedidos, añade la columna PrecioUnitario en F1 y escribe la fórmula en F2. Arrastra el controlador de relleno hasta F6.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | IdPedido | Fecha | IdCliente | IdProducto | Cantidad | PrecioUnitario |
| 2 | PED-001 | 10/01/2026 | 1 | P-001 | 20 | 12,50 |
| 3 | PED-002 | 12/01/2026 | 2 | P-003 | 2 | 20,00 |
| 4 | PED-003 | 15/01/2026 | 1 | P-004 | 3 | 4,50 |
| 5 | PED-004 | 18/01/2026 | 4 | P-002 | 5 | 8,00 |
| 6 | PED-005 | 22/01/2026 | 3 | P-005 | 10 | 6,00 |
P-001 a 12,00 en Productos, la celda F2 de Pedidos pasa a 12,00 al pulsar F9.Traer el nombre del cliente con BUSCARV
La idea es la misma, pero el rango ahora es la hoja Clientes y la columna a traer es la 2 (Nombre).
=BUSCARV(C2;Clientes!A:D;2;FALSO)
Añade la columna Cliente en G1, escribe la fórmula en G2 y arrástrala hasta G6.
| C | D | E | F | G | |
|---|---|---|---|---|---|
| 1 | IdCliente | IdProducto | Cantidad | PrecioUnitario | Cliente |
| 2 | 1 | P-001 | 20 | 12,50 | Marta Ruiz |
| 3 | 2 | P-003 | 2 | 20,00 | Luis Perez |
| 4 | 1 | P-004 | 3 | 4,50 | Marta Ruiz |
| 5 | 4 | P-002 | 5 | 8,00 | Pedro Soto |
| 6 | 3 | P-005 | 10 | 6,00 | Ana Gomez |
FALSO (o 0) es obligatorio cuando buscas por identificador. Con VERDADERO, Excel asume que la columna está ordenada y puede devolver un precio aproximados que no es el real.Calcular el importe del pedido
Con la cantidad en E y el precio en F, el importe es una multiplicación.
=E2*F2
Añade Importe en H1, escribe la fórmula en H2 y arrástrala hasta H6. Aplica formato de número con dos decimales a H2:H6.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | IdPedido | Fecha | IdCliente | IdProducto | Cantidad | PrecioUnitario | Cliente | Importe |
| 2 | PED-001 | 10/01/2026 | 1 | P-001 | 20 | 12,50 | Marta Ruiz | 250,00 |
| 3 | PED-002 | 12/01/2026 | 2 | P-003 | 2 | 20,00 | Luis Perez | 40,00 |
| 4 | PED-003 | 15/01/2026 | 1 | P-004 | 3 | 4,50 | Marta Ruiz | 13,50 |
| 5 | PED-004 | 18/01/2026 | 4 | P-002 | 5 | 8,00 | Pedro Soto | 40,00 |
| 6 | PED-005 | 22/01/2026 | 3 | P-005 | 10 | 6,00 | Ana Gomez | 60,00 |
250,00. Repite la cuenta: 20 × 12,50 = 250,00.Los errores típicos al pasar el MER a Excel y cómo arreglarlos
Un MER mal pasado se nota enseguida: BUSCARV devuelve #N/A, los totales no cuadran o un mismo producto aparece con dos precios distintos. Casi siempre la causa es un identificador mal escrito, una columna en orden distinto al esperado o una relación N:M que se ha metido a fuerza en una sola tabla.
Por qué BUSCARV devuelve #N/A al cruzar las tablas
El error #N/A (en español «no disponible») significa que BUSCARV ha buscado el Id en la primera columna del rango y no lo ha encontrado. Las tres causas más habituales son: el Id está escrito distinto en las dos hojas (un 1 y un 1 con espacio, o P-001 y p-001); la columna clave no es la primera del rango; o el Id simplemente no existe en la otra hoja.
| C | D | E | F | |
|---|---|---|---|---|
| 1 | IdCliente | IdProducto | Cantidad | PrecioUnitario |
| 2 | 1 | P-001 | 20 | 12,50 |
| 3 | 2 | P-003 | 2 | 20,00 |
| 4 | 1 | P-099 | 3 | #N/A |
El arreglo tiene dos partes. Primero, se protege la fórmula con SI.ERROR para que la hoja no muestre el error: =SI.ERROR(BUSCARV(D2;Productos!A:C;3;FALSO);"Revisar Id"). Segundo, se corrige la causa: en este caso, P-099 no existe en Productos, así que o se crea el producto o se corrige el Id en Pedidos.
=SI.ERROR(BUSCARV(D2;Productos!A:C;3;FALSO);"Revisar Id")
La relación muchos a muchos: la tabla intermedia que te falta
El error más sutil al pasar un MER a Excel es meter una relación N:M en una sola hoja. En el ejemplo, un pedido puede incluir varios productos y un producto puede aparecer en muchos pedidos. Si se añade la columna Importe a la hoja Productos, ese cálculo solo vale para un producto por pedido; cuando un pedido tenga dos productos, el modelo se rompe.
La solución es una tabla intermedia entre Pedidos y Productos. Aquí se llama DetallePedido y guarda qué productos lleva cada pedido y en qué cantidad.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | IdPedido | IdProducto | Cantidad | PrecioUnitario |
| 2 | PED-001 | P-001 | 20 | 12,50 |
| 3 | PED-001 | P-002 | 5 | 8,00 |
| 4 | PED-002 | P-003 | 2 | 20,00 |
| 5 | PED-003 | P-004 | 3 | 4,50 |
| 6 | PED-004 | P-002 | 5 | 8,00 |
PrecioUnitario se sigue trayendo con BUSCARV desde Productos, y el importe del pedido se calcula después con una tabla dinámica o con SUBTOTALES que sume las filas de cada IdPedido. La clave es que DetallePedido tiene una clave primaria compuesta (IdPedido + IdProducto) y dos claves foráneas, una a cada tabla.
IdPedido puede repetirse con distintos IdProducto sin perder información.Lo que Excel no hace como base de datos y cuándo conviene Access
Excel aguanta bien hasta unos cientos de miles de filas en una sola tabla y relaciones simples, pero tiene límites claros. Cada hoja llega a 1.048.576 filas y 16.384 columnas, las relaciones se mantienen a mano (no hay integridad referencial automática: si borras un cliente, sus pedidos se quedan huérfanos) y las búsquedas con BUSCARV se vuelven lentas cuando el rango es enorme. Access, en cambio, es una base de datos relacional de verdad: las tablas se relacionan con claves con integridad referencial, los formularios sirven para introducir datos sin tocar la tabla y varios usuarios pueden trabajar a la vez. La regla práctica es: si los datos caben en una hoja y los mantiene una persona, Excel; si pasan de eso o los tocan varios a la vez, Access.
Dentro de Excel hay dos ayudas que acercan su comportamiento al de una base de datos. Validación de datos impide escribir Id que no existen, como se ha visto en la hoja Clientes. Power Query (Datos > Obtener y transformar datos) importa datos de Access, CSV o carpetas, los limpia con pasos grabados y los une: en este ejemplo, traería las tres hojas a una sola consulta y las relacionaría por los Id. Power Query está integrado desde Excel 2016 y en 2010/2013 como complemento.
Lo que ya sabes hacer con el modelo entidad–relación en Excel
- Dibujar un MER en papel con entidades, atributos, relaciones y cardinalidad antes de tocar Excel.
- Pasar ese MER a un libro con una hoja por entidad y una columna por atributo, y marcar la clave primaria y las foráneas.
- Cruzar las tablas con BUSCARV usando
FALSOpara coincidencia exacta, y envolver la fórmula en SI.ERROR cuando un Id pueda no existir. - Detectar los errores típicos:
#N/Apor Id mal escrito o inexistente, y relaciones N:M que necesitan una tabla intermedia.
El siguiente paso es convertir cada hoja en Tabla de Excel (Insertar > Tablas > Tabla, o Ctrl+T) para que las fórmulas se expandan solas al añadir filas, y usar Validación de datos en IdCliente e IdProducto de la hoja Pedidos con listas desplegables que apunten a las otras hojas, así será imposible escribir un Id que no exista. La documentación oficial de BUSCARV, de Validación de datos y de Excel frente a Access entra en estos temas con más detalle. Datos comprobados en octubre de 2026.
Dudas al representar una base de datos con el modelo entidad-relación en Excel
1. Qué es el modelo entidad-relación
El modelo entidad-relación (MER) es una forma de dibujar, antes de tocar Excel, qué datos vas a guardar (entidades), qué describe a cada uno (atributos) y cómo se relacionan entre sí. Es el paso previo a crear tablas: primero lo piensas en el papel y luego lo llevas a una hoja de cálculo.
2. Cómo se hace un diagrama entidad-relación
Un diagrama entidad-relación se dibuja con rectángulos para las entidades, óvalos para sus atributos y rombos para las relaciones, uniendo con líneas las que se vinculan. En la práctica, antes de montarlo en Excel, lo normal es hacerlo a mano o con una herramienta gratuita como draw.io y luego pasar cada entidad a una hoja del libro.
3. Qué diferencia hay entre modelo relacional y base de datos
El modelo relacional es la teoría: organizar la información en tablas con filas y columnas relacionadas por claves. Una base de datos es la implementación real de ese modelo: el archivo de Excel, un archivo de Access o un sistema como MySQL donde ya existe esa estructura funcionando con datos dentro.
4. Qué es una entidad en una base de datos
Una entidad es cualquier cosa de la que quieras guardar información: un cliente, un producto, una venta, un alumno. En el modelo entidad-relación se representa con un rectángulo y, al pasarla a Excel, se convierte en una tabla con sus campos como columnas y cada registro como una fila.
5. Qué tipos de entidades hay en un modelo entidad-relación
En un MER se distinguen tres: entidades fuertes, que existen por sí mismas (un Cliente, un Producto); entidades débiles, cuya identidad depende de otra fuerte (las Líneas de una Factura, que no tienen sentido sin la factura); y entidades asociativas, que se usan para resolver relaciones de muchos a muchos creando una tabla intermedia.
6. Qué es la cardinalidad en una base de datos
La cardinalidad indica cuántos registros de una entidad se relacionan con cuántos de la otra: uno a uno (un empleado y su PC asignada), uno a muchos (un cliente y sus pedidos) o muchos a muchos (alumnos y cursos, que en Excel se resuelven con una tabla intermedia con las claves de ambos lados).
Fuentes
- MicrosoftFabCon y SQLCon 2026: Unificar bases de datos y Fabric en una …consultado el 06/10/2026
- MicrosoftBASE — documentación oficialconsultado el 06/10/2026
- MicrosoftExcel y Access — documentación oficialconsultado el 06/10/2026
- MicrosoftPower Query (Obtener y transformar datos) — documentación oficialconsultado el 06/10/2026
- MicrosoftIMPORTARDATOSDINAMICOS — documentación oficialconsultado el 06/10/2026