Agregue más eficacia al análisis de datos creando relaciones que amezguen tablas diferentes. Una relación es una conexión entre dos tablas que contienen datos: una columna en cada tabla es la base de la relación. Para ver por qué son útiles las relaciones, imagine que realiza el seguimiento de los datos de los pedidos de los clientes de su negocio. Puede realizar un seguimiento de todos los datos de una sola tabla con una estructura como esta:
Id. de cliente |
Nombre |
Correo electrónico |
Descuento |
Código de pedido |
Fecha |
Producto |
Cantidad |
---|---|---|---|---|---|---|---|
1 |
Tercedor |
federico.tercedor@contoso.com |
0,05 |
256 |
01-07-2010 |
Compact Digital |
11 |
1 |
Tercedor |
federico.tercedor@contoso.com |
0,05 |
255 |
01-03-2010 |
SLR Camera |
15 |
2 |
Alcalá |
jorge.alcala@contoso.com |
0,10 |
254 |
01-03-2010 |
Budget Movie-Maker |
27 |
Este enfoque puede funcionar, pero implica almacenar muchos datos redundantes, como la dirección de correo electrónico del cliente para cada pedido. El almacenamiento es barato, pero si la dirección de correo cambia, tiene que asegurarse de que actualiza cada fila para ese cliente. Una solución a este problema es dividir los datos en varias tablas y definir relaciones entre esas tablas. Este es el enfoque usado en las bases de datos relacionales como SQL Server. Por ejemplo, una base de datos que importe podría representar los datos de los pedidos usando tres tablas relacionadas:
Clientes
[CustomerID] |
Nombre |
Correo electrónico |
---|---|---|
1 |
Tercedor |
federico.tercedor@contoso.com |
2 |
Alcalá |
jorge.alcala@contoso.com |
Descuentos de cliente
[CustomerID] |
Descuento |
---|---|
1 |
0,05 |
2 |
0,10 |
Orders
[CustomerID] |
Código de pedido |
Fecha |
Producto |
Cantidad |
---|---|---|---|---|
1 |
256 |
01-07-2010 |
Compact Digital |
11 |
1 |
255 |
01-03-2010 |
SLR Camera |
15 |
2 |
254 |
01-03-2010 |
Budget Movie-Maker |
27 |
Existen relaciones dentro de un modelo de datos: una que se crea explícitamente o una que Excel crea automáticamente en su nombre al importar varias tablas simultáneamente. También puede usar el complemento Power Pivot para crear o administrar el modelo. Vea Crear un modelo de datos en Excel para obtener más información.
Si usa el complemento de Power Pivot para importar tablas desde la misma base de datos, Power Pivot puede detectar las relaciones entre las tablas en función de las columnas que están entre [corchetes] y puede reproducirlas en un modelo de datos que crea en segundo plano. Para obtener más información, vea Detección automática e inferencia de las relaciones en este artículo. Si importa las tablas de varios orígenes, puede crear manualmente las relaciones según se describe en Crear una relación entre dos tablas.
Las relaciones se basan en las columnas de cada tabla que contienen los mismos datos. Por ejemplo, podría relacionar una tabla Clientes con una tabla Pedidos si cada una contiene una columna que almacena un id. de cliente. En el ejemplo, los nombres de columna son los mismos, pero no es obligatorio. Uno podría ser CustomerID y otro CustomerNumber, siempre que todas las filas de la tabla Orders contengan un identificador que también esté almacenado en la tabla Customers.
En una base de datos relacional, hay varios tipos de claves. Una clave suele ser una columna con propiedades especiales. Conocer el propósito de cada clave puede ayudarle a administrar un modelo de datos de varias tablas que proporciona datos para una tabla dinámica, un gráfico dinámico o un informe de Power View.
Aunque hay muchos tipos de claves, estos son los más importantes para nuestro propósito aquí:
-
Clave principal: identifica de forma única una fila de una tabla, como IdCliente en la tabla Clientes .
-
Clave alternativa (o clave candidata): una columna distinta de la clave principal que es única. Por ejemplo, una tabla Employees podría almacenar un identificador de empleado y un número de la seguridad social, ambos números únicos.
-
Clave externa: una columna que hace referencia a una columna única de otra tabla, como CustomerID en la tabla Pedidos , que hace referencia a CustomerID en la tabla Customers.
En un modelo de datos, la clave principal o la clave alternativa se conocen como columna relacionada. Si una tabla tiene una clave principal y una clave alternativa, puede usar cualquiera de ellas como base de una relación entre tablas. La clave externa se denomina columna de origen o simplemente columna. En nuestro ejemplo, se definiría una relación entre CustomerID en la tabla Pedidos (la columna) y CustomerID en la tabla Customers (la columna de búsqueda). Si importa datos de una base de datos relacional, Excel elige de forma predeterminada la clave externa de una tabla y la clave principal correspondiente de la otra. Sin embargo, puede utilizar cualquier columna que tenga valores únicos como columna de búsqueda.
La relación entre un cliente y un pedido es una relación uno a varios. Cada cliente puede tener varios pedidos, pero un pedido no puede tener varios clientes. Otra relación de tabla importante es uno a uno. En nuestro ejemplo, la tabla CustomerDiscounts , que define una tasa de descuento única para cada cliente, tiene una relación uno a uno con la tabla Clientes.
Esta tabla muestra las relaciones entre las tres tablas (Customers, CustomerDiscounts y Orders):
Relación |
Tipo |
Columna de búsqueda |
Columna |
---|---|---|---|
Clientes-Descuentos de cliente |
uno a uno |
Customers.CustomerID |
CustomerDiscounts.CustomerID |
Customers-Orders |
uno a varios |
Customers.CustomerID |
Orders.CustomerID |
Nota: Las relaciones de varios a varios no se admiten en un modelo de datos. Un ejemplo de relación de varios a varios es una relación directa entre Products y Customers, en la que un cliente puede comprar varios productos y el mismo producto puede ser comprado por varios clientes.
Después de crear una relación, Excel normalmente debe volver a calcular las fórmulas que usan columnas de tablas en la relación recién creada. El proceso puede tardar algún tiempo, en función de la cantidad de datos y la complejidad de las relaciones. Para obtener más información, vea Recalcular fórmulas.
Un modelo de datos puede tener varias relaciones entre dos tablas. Para crear cálculos precisos, Excel necesita una ruta única de una tabla a la siguiente. Por lo tanto, solo una relación entre cada par de tablas está activa a la vez. Aunque los demás están inactivos, puede especificar una relación inactiva en fórmulas y consultas.
En la vista Diagrama, la relación activa es una línea sólida y las inactivas son líneas discontinuas. Por ejemplo, en AdventureWorksDW2012, la tabla DimDate contiene una columna, DateKey, que está relacionada con tres columnas diferentes de la tabla FactInternetSales: OrderDate, DueDate y ShipDate. Si la relación activa es entre DateKey y OrderDate, es la relación predeterminada de las fórmulas, a menos que se especifique otra cosa.
Una relación puede crearse cuando se cumplen los requisitos siguientes:
Criterios |
Descripción |
---|---|
Identificador único para cada tabla |
Cada tabla debe tener una única columna que identifique de forma única cada fila de esa tabla. A menudo se hace referencia a esta columna como la clave principal. |
Columnas de búsqueda única |
Los valores de datos de la columna de búsqueda deben ser únicos. En otras palabras, la columna no puede contener duplicados. En un modelo de datos, las cadenas nulas y vacías son equivalentes a un objeto en blanco, que es un valor de datos distinto. Esto significa que no puede tener varios valores NULL en la columna de búsqueda. |
Tipos de datos compatibles |
Los tipos de datos de la columna de origen y de la columna de búsqueda deben ser compatibles. Para obtener más información sobre los tipos de datos, vea Tipos de datos admitidos en modelos de datos. |
En un modelo de datos, no se puede crear una relación entre tablas si la clave es una clave compuesta. También está limitado a crear relaciones uno a uno y uno a varios. No se admiten otros tipos de relaciones.
Claves compuestas y columnas de búsqueda
Una clave compuesta tiene más de una columna. Los modelos de datos no pueden usar claves compuestas: una tabla siempre debe tener exactamente una columna que identifique exclusivamente cada fila de la tabla. Si importa tablas que tienen una relación existente basada en una clave compuesta, el Asistente para la importación de tablas de Power Pivot omitirá esa relación porque no se puede crear en el modelo.
Para crear una relación entre dos tablas que tienen varias columnas que definen las claves principales y las claves externas, combine primero los valores para crear una columna de clave única antes de crear la relación. Puede hacerlo antes de importar los datos o creando una columna calculada en el modelo de datos con el complemento Power Pivot.
Relaciones varios a varios
Un modelo de datos no puede tener relaciones de varios a varios. No puede agregar simplemente tablas de unión en el modelo. Sin embargo, puede usar funciones de DAX para modelar las relaciones de varios a varios.
Autocombinaciones y bucles
Las autocombinaciones no se permiten en un modelo de datos. Una autocombinación es una relación recursiva entre una tabla y ella misma. Las autocombinaciones se usan a menudo para definir las jerarquías de elementos primarios y secundarios. Por ejemplo, podría unir una tabla de empleados a sí misma para generar una jerarquía que muestre la cadena de dirección en un negocio.
Excel no permite crear bucles entre relaciones en un libro. En otras palabras, se prohíbe el conjunto siguiente de relaciones.
Tabla 1, columna a a Tabla 2, columna f
Tabla 2, columna f a Tabla 3, columna n
Tabla 3, columna n a Table 1, columna a
Si intenta crear una relación que crearía un bucle, se generará un error.
Una de las ventajas de importar los datos mediante el complemento Power Pivot consiste en que Power Pivot puede detectar relaciones y crear relaciones nuevas en el modelo de datos que crea en Excel.
Al importar varias tablas, Power Pivot detecta automáticamente las relaciones existentes entre ellas. Además, al crear una tabla dinámica, Power Pivot analiza los datos de las tablas. Detecta posibles relaciones que no se han definido y sugiere columnas adecuadas para incluirlas en esas relaciones.
El algoritmo de detección usa datos estadísticos de los valores y metadatos de las columnas para deducir la probabilidad de las relaciones.
-
Los tipos de datos de todas las columnas relacionadas deberían ser compatibles. Para la detección automática, solo se admiten los tipos de datos de texto y números enteros. Para obtener más información acerca de los tipos de datos PowerPivot, vea Tipos de datos admitidos enmodelos de datos.
-
Para que la relación se detecte correctamente, el número de claves únicas de la columna de búsqueda debe ser mayor que los valores de la tabla del lado de "varios". Dicho de otro modo, la columna de clave del lado de "varios" de la relación no debe contener ningún valor que no esté en la columna de clave de la tabla de búsqueda. Por ejemplo, suponga que tiene una tabla de productos con sus identificadores (la tabla de búsqueda) y una tabla de ventas con las ventas de cada producto (el lado de "varios" de la relación). Si los registros de ventas contienen el identificador de un producto que no tiene un identificador correspondiente en la tabla de productos, la relación no se puede crear automáticamente, pero quizás pueda crearla de modo manual. Para que Excel detecte la relación, primero debe actualizar la tabla de búsqueda, la tabla de productos, con los identificadores de producto que falten.
-
Asegúrese de que el nombre de la columna de clave del lado varios sea similar al nombre de la columna de clave en la tabla de búsqueda. No es necesario que los nombres sean exactamente iguales. Por ejemplo, en una configuración empresarial, a menudo tiene variaciones en los nombres de las columnas que contienen básicamente los mismos datos: Id. de emp , Id. de empleado, Id. de empleado, EMP_ID, etc. El algoritmo detecta nombres similares y asigna una mayor probabilidad a las columnas que tienen nombres similares o exactamente coincidentes. Por lo tanto, para aumentar la probabilidad de crear una relación, puede intentar cambiar el nombre de las columnas en los datos que importa a algo similar a las columnas de las tablas existentes. Si Excel encuentra varias relaciones posibles, no crea una relación.
Esta información podría ayudar a entender por qué no se detectan todas las relaciones, o cómo los cambios realizados en los metadatos (por ejemplo, el nombre de campo y los tipos de datos) podrían mejorar los resultados de la detección automática de relaciones. Para obtener más información, vea Solucionar problemas de relaciones.
Detección automática para los conjuntos con nombre
Las relaciones no se detectan automáticamente entre los campos relacionados y conjuntos con nombre en una tabla dinámica. Puede crear estas relaciones manualmente. Si desea usar la detección automática de relaciones, quite cada conjunto con nombre y agregue directamente los campos individuales del conjunto con nombre a la tabla dinámica.
Inferencia de relaciones
En algunos casos, las relaciones entre las tablas se encadenan automáticamente. Por ejemplo, si crea una relación entre los dos primeros conjuntos de tablas del ejemplo siguiente, se deduce que existe una relación entre las otras dos tablas y se establece una relación automáticamente.
Productos y categorías: creadas manualmente
Categoría y subcategoría: creadas manualmente
Productos y subcategoría: se deduce la relación
Para que las relaciones se encadenen automáticamente, las relaciones deben ir en una dirección, como se mostró antes. Si las relaciones iniciales fueran entre, por ejemplo, ventas y productos, y ventas y clientes, no se deduciría una relación. Esto se debe a que la relación entre los productos y los clientes es una relación de varios a varios.