Relaciones entre tablas en Power BI

Relaciones entre tablas en Power BI

Las relaciones entre tablas en Power BI permiten que un filtro aplicado a una dimensión afecte las filas de otra tabla. Son la base de un modelo semántico: una medida correcta sobre relaciones ambiguas puede devolver resultados equivocados.

Una relación une una columna de una tabla con una columna de otra. Debes definir cardinalidad, dirección de filtro y estado activo de acuerdo con la granularidad real.

Modelo de ejemplo

Una tabla Ventas contiene muchas transacciones. Productos, Clientes y Calendario tienen una fila por entidad. El diseño esperado es un esquema estrella:

Productos  1 ─── * Ventas * ─── 1 Calendario
Clientes   1 ─── *

Los filtros fluyen desde cada dimensión hacia la tabla de hechos. La guía de DAX funciona mucho mejor sobre este patrón.

Cardinalidad

  • Uno a muchos (1:*): la opción habitual; la dimensión tiene clave única.
  • Uno a uno (1:1): ambas columnas son únicas; puede indicar tablas separadas sin necesidad.
  • Muchos a muchos (:): ambas columnas repiten valores; requiere entender el puente y el cálculo.

Si Power BI detecta muchos a muchos cuando esperabas uno a muchos, no aceptes el cuadro sin investigar. Busca nulos, duplicados, espacios, tipos o granularidad incorrecta.

El concepto se relaciona con una clave primaria y foránea, aunque Power BI propaga filtros y no impone integridad referencial como una base transaccional.

Dirección de filtro

En dirección simple, el filtro suele viajar del lado uno al lado muchos. La dirección bidireccional permite ambos sentidos, pero puede crear rutas ambiguas y resultados difíciles de explicar.

Usa bidireccional solo con una necesidad concreta y pruebas. Para dimensiones compartidas, el esquema estrella con filtros simples suele ser más predecible y rápido.

Relación activa e inactiva

Entre dos tablas solo una relación puede ser la ruta activa predeterminada. Si Ventas tiene FechaPedido y FechaEntrega, puedes activar pedido y dejar entrega inactiva.

Una medida específica puede usar:

Ventas por entrega =
CALCULATE (
    [Ventas Totales],
    USERELATIONSHIP (
        Ventas[FechaEntrega],
        Calendario[Fecha]
    )
)

Nombra la medida para revelar qué fecha utiliza. Un segmentador de calendario filtrará la ruta activa salvo que el cálculo cambie el contexto.

Crear y revisar relaciones

En la vista de modelo:

  1. Confirma tipo de datos en ambas columnas.
  2. Verifica unicidad del lado uno.
  3. Arrastra o administra la relación.
  4. Declara cardinalidad.
  5. Mantén filtro simple por defecto.
  6. Decide si es activa.
  7. Prueba una medida por cada dimensión.

Oculta claves técnicas al usuario final; deben sostener relaciones, no llenar la lista de campos.

Claves y tablas puente

Una relación muchos a muchos de estudiantes y cursos se modela con una tabla puente Inscripciones que contiene una fila por pareja. Esto hace visible la granularidad y permite medidas sobre inscripciones.

Evita concatenar claves sin controlar separadores, tipos y colisiones. Si el origen puede entregar una clave estable, es preferible.

Dimensión calendario

Crea una tabla con una fila por fecha, sin huecos, y atributos de año, mes, semana y periodo fiscal. Relaciónala con la columna temporal adecuada y márcala según las necesidades del modelo.

No relaciones por nombre de mes: enero se repite cada año. Usa una fecha o clave año-mes única.

Diagnóstico de resultados

Cuando una medida repite el mismo total en todas las filas:

  • la relación puede faltar;
  • la dirección puede ser incorrecta;
  • los tipos no coinciden;
  • la medida puede eliminar filtros;
  • estás usando una columna de una tabla desconectada.

Cuando desaparecen filas:

  • la dimensión no contiene todas las claves;
  • existen valores en blanco;
  • una relación limita el conjunto;
  • el visual combina campos sin ruta válida.

Apóyate en una tabla simple con clave, etiqueta y medida antes de depurar un dashboard completo.

Rendimiento

Las relaciones regulares uno a muchos dentro del mismo grupo de origen suelen ser eficientes. Relaciones muchos a muchos, bidireccionales o entre distintos orígenes pueden añadir costo. Reduce columnas, usa tipos compactos y prueba el modelo con Power BI en condiciones reales.

Errores frecuentes

  • Confiar en autodetección sin revisar.
  • Permitir duplicados en el lado uno.
  • Activar filtro bidireccional para “hacer que funcione”.
  • Relacionar texto cuando existe una clave.
  • Crear bucles entre tablas.
  • Usar muchas relaciones directas entre hechos.
  • Mezclar granularidades.
  • No documentar relaciones inactivas.

La relación correcta es una afirmación sobre el negocio: una fila de dimensión identifica muchas filas de hechos. Si no puedes explicar esa frase, todavía no debes crearla.

Preguntas frecuentes

¿Qué es la cardinalidad en Power BI?
Describe cuántos valores pueden coincidir en cada lado: uno a muchos, uno a uno o muchos a muchos.

¿Qué dirección de filtro conviene?
Simple desde dimensión hacia hechos es un buen valor predeterminado. Bidireccional requiere una razón y pruebas.

¿Por qué Power BI crea muchos a muchos?
Porque ambas columnas contienen valores repetidos o nulos. Revisa granularidad y calidad de las claves.

¿Qué es una relación inactiva?
Es una ruta disponible que no propaga filtros por defecto y puede activarse en una medida con USERELATIONSHIP.

¿Puedo relacionar dos columnas a la vez?
Las relaciones normales usan una columna por lado. Crea una clave estable o aplica un diseño adecuado si la identidad es compuesta.

¿Qué es una tabla puente?
Es una tabla que representa asociaciones entre entidades y ayuda a modelar relaciones muchos a muchos de forma explícita.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir