⚡ Power BI — Nivel 2

DAX Intermedio · Power Query · Modelo de Datos avanzado · Visualizaciones profesionales

CALCULATE FILTER · ALL Power Query Esquema estrella Quiz 10/50 NIVEL 2

📖 Teoría

En el Nivel 2 de DAX se trabajan las funciones que permiten modificar el contexto de filtro y navegar entre tablas relacionadas. Son la base de cualquier análisis avanzado.

Función ¿Qué hace? Ejemplo de uso
CALCULATE Evalúa una expresión modificando el contexto de filtro activo Ventas solo de región Norte aunque el slicer muestre todas
FILTER Devuelve una tabla con las filas que cumplen una condición Tabla de ventas donde Monto > 1.000.000
ALL Elimina todos los filtros de una tabla o columna Calcular % del total ignorando los slicers
ALLEXCEPT Elimina todos los filtros EXCEPTO los de las columnas indicadas % del total de cada categoría, respetando el filtro de año
RELATED Trae un valor de una tabla relacionada (lado 1 de 1:N) En tabla Ventas, traer el nombre del cliente desde Clientes
RELATEDTABLE Trae una tabla de filas relacionadas (lado N de 1:N) En tabla Clientes, contar todas sus ventas
-- CALCULATE: ventas solo de Tecnología
Ventas_Tecnologia = CALCULATE(SUM(Ventas[Monto]), Ventas[Categoria] = "Tecnologia")
-- ALL: % del total global
Pct_Total = DIVIDE(SUM(Ventas[Monto]), CALCULATE(SUM(Ventas[Monto]), ALL(Ventas)))
-- RELATED: traer categoría desde dim
Categoria = RELATED(Productos[NombreCategoria])

💡 CALCULATE es la función más importante de DAX. Casi toda fórmula avanzada la usa como envoltorio para cambiar qué datos se calculan.

En DAX existen dos contextos de evaluación que determinan cómo se calculan las fórmulas:

🔵 Contexto de Filtro (Filter Context)
  • • Lo crean los slicers, filtros de página y las filas/columnas de un visual (tabla, matrix)
  • • Determina qué filas de la tabla se consideran en una medida
  • • Se puede modificar con CALCULATE
  • • Ejemplo: Slicer "Región = Norte" → la medida SUM solo suma ventas del Norte
🟡 Contexto de Fila (Row Context)
  • • Lo crean las columnas calculadas y la función SUMX / iteradores
  • • La fórmula se evalúa fila por fila, sabiendo en qué fila está
  • • Una medida NO tiene contexto de fila por defecto
  • • Ejemplo: columna calculada Margen = Ventas[Precio] - Ventas[Costo] — cada fila usa sus propios valores

⚡ La trampa clásica:

Dentro de una columna calculada existe contexto de fila, pero no contexto de filtro. Si quieres usar funciones como SUM() dentro de una columna, debes envolver con CALCULATE() para que DAX cree el contexto de filtro correcto. Esto se llama "transición de contexto".

Criterio Medida (Measure) Columna calculada
¿Cuándo se calcula? En tiempo de consulta (cuando el visual se renderiza) Al cargar o actualizar el modelo
Contexto de evaluación Contexto de filtro del visual Contexto de fila (fila por fila)
¿Ocupa espacio en disco? No — no almacena datos Sí — se guarda en el modelo comprimido
¿Se puede usar en slicer? No directamente Sí — como cualquier columna
¿Reacciona a filtros? Sí — responde dinámicamente No — valor fijo al cargar
Icono en Power BI 🧮 (calculadora) fx (función)
Ejemplo típico Ventas Totales = SUM(Ventas[Monto]) PrecioConIVA = Ventas[Precio] * 1.19
¿Cuándo usarla? Cuando necesitas un valor que cambie según el contexto del visual Cuando necesitas una columna derivada para filtrar o agrupar

💡 Regla práctica: preferir medidas para cálculos. Solo usar columnas calculadas cuando la columna se necesita como dimensión (para filtrar, agrupar o hacer jerarquías).

Power Query es el motor de preparación de datos de Power BI (y Excel). Trabaja con el lenguaje M y registra cada transformación como un Paso Aplicado que se puede editar o eliminar.

🖥️ El Editor de Power Query

  • Se abre desde Inicio → Transformar datos
  • Panel izquierdo: lista de consultas (tablas)
  • Panel derecho: Pasos aplicados — el historial de transformaciones
  • Vista previa central: los datos transformados hasta el paso actual
  • Cada paso genera código M automáticamente

📋 Pasos Aplicados

  • Se registran en orden secuencial
  • Se puede hacer clic en cualquier paso para ver el estado de los datos en ese momento
  • Se puede eliminar, reordenar o editar cualquier paso
  • El paso Source siempre es el primero (la conexión)
  • Los cambios se aplican al actualizar el modelo

Tipos de transformación principales:

✂️ Dividir columna

Separar una columna en dos por delimitador (coma, espacio) o por número de caracteres. Ej: "Apellido, Nombre" → dos columnas.

🔗 Combinar (Merge/Append)

Merge: une dos tablas como un JOIN por columna clave. Append: apila tablas con la misma estructura.

↔️ Pivotar / Despivotar

Pivotar: convierte valores de una columna en encabezados. Despivotar: convierte encabezados en filas (normalización).

🔄 Reemplazar valores

Sustituir un valor por otro en toda la columna. Útil para limpiar nulos, corregir errores tipográficos o estandarizar categorías.

🔢 Cambiar tipo

Definir el tipo de dato de una columna: texto, número entero, decimal, fecha, booleano. Fundamental antes de cargar al modelo.

🧹 Eliminar filas

Quitar filas superiores/inferiores, duplicados, errores o filas vacías. Limpia los datos antes del análisis.

El modelo de datos define cómo se relacionan las tablas. Un modelo bien diseñado es la base de todo análisis correcto y eficiente en Power BI.

Tipos de cardinalidad en relaciones:

1 : N

Uno a Muchos

La más común. Dim → Hechos. Un cliente puede tener muchas ventas. La clave principal está en el lado "1".

✅ Recomendada

N : N

Muchos a Muchos

Power BI la soporta pero puede causar ambigüedad. Se recomienda resolver con tabla puente intermedia.

⚠️ Usar con cuidado

1 : 1

Uno a Uno

Cada fila de una tabla corresponde a exactamente una fila en la otra. Poco común; indica que las tablas podrían fusionarse.

⚡ Poco frecuente

Esquema estrella vs Copo de nieve:

Criterio ⭐ Esquema Estrella ❄️ Copo de Nieve
Estructura Tabla hechos + dimensiones directas (1 nivel) Tabla hechos + dimensiones con sub-dimensiones (N niveles)
Rendimiento Mejor — menos JOINs necesarios Más lento — más tablas que relacionar
Complejidad Simple — fácil de entender Complejo — normalizado como BD relacional
Redundancia Sí — datos repetidos en dimensiones No — totalmente normalizado
Recomendación Power BI ✅ Preferido en Power BI Aceptable si viene del origen; aplanar con Power Query

Dirección de filtro en relaciones:

→ Filtro único (Single)

El filtro fluye desde el lado "1" (dimensión) hacia el lado "N" (hechos). Es el comportamiento estándar y recomendado. Evita ambigüedades.

↔️ Filtro bidireccional (Both)

El filtro fluye en ambas direcciones. Útil en relaciones N:N o para contar elementos en la dimensión. Puede crear resultados inesperados — usar con precaución.

📋 Matrix (Matriz)

Como una tabla dinámica de Excel. Muestra datos en filas y columnas con subtotales automáticos y posibilidad de expandir/contraer jerarquías. Ideal para comparar categorías cruzadas (región × trimestre).

🌳 Treemap

Rectángulos proporcionales al valor de cada categoría. Muestra jerarquías y proporciones de un vistazo. Perfecto para ver participación de mercado o distribución de ventas por producto.

✦ Scatter Chart (Dispersión)

Muestra la relación entre dos métricas numéricas. El eje X y Y son medidas; el tamaño del punto puede ser una tercera métrica. Útil para detectar correlaciones y outliers.

🌊 Waterfall (Cascada)

Muestra cómo un valor inicial llega a un valor final a través de aumentos y disminuciones intermedias. Ideal para analizar variaciones de ingresos, costos o beneficios.

🔍 Decomposition Tree (Árbol de descomposición)

Visual de inteligencia artificial que permite explorar interactivamente los factores que explican un valor. El usuario elige qué dimensión descomponer en cada nivel. Power BI puede sugerir automáticamente la dimensión que más explica la variación (High value / Low value).

📊 Simulador de Dashboard Avanzado

Dashboard "Ventas por región - Análisis avanzado". Usa los slicers para filtrar KPIs, barras, treemap y matrix simultáneamente.

📊 Ventas por Región — Análisis Avanzado 2024

Actualizado: Mayo 2024 · Modelo estrella · DAX Nivel 2

Región
Categoría
Trimestre
Ventas por Región (Barras horizontales)
Treemap — Participación por Categoría
Matrix — Ventas por Región × Trimestre ($M)

⚡ Simulador educativo — en Power BI real los filtros cruzados ocurren instantáneamente entre todas las visualizaciones de la página.

🧪 Laboratorio DAX

Haz clic en cada fórmula para expandir su explicación, código y resultado de ejemplo.

📚 Diccionario — Nivel 2

CALCULATE
Función DAX que evalúa una expresión modificando el contexto de filtro activo. La función más importante de DAX para análisis avanzado.
Contexto de filtro
El conjunto de filtros activos (slicers, filas/columnas de visual, filtros de página) que determinan qué filas se calculan en una medida DAX.
Contexto de fila
El contexto que existe al evaluar una columna calculada o dentro de funciones iteradoras (SUMX, FILTER). La fórmula "sabe" en qué fila está.
Medida
Cálculo DAX evaluado dinámicamente según el contexto de filtro activo. No almacena datos; responde a slicers y filtros en tiempo real.
Columna calculada
Columna DAX calculada fila por fila al cargar el modelo, usando el contexto de fila. Se almacena en el modelo y ocupa espacio en disco.
Power Query
Motor de preparación y transformación de datos de Power BI. Usa el lenguaje M para limpiar, combinar y dar forma a los datos antes de cargarlos al modelo.
Transformación
Cada paso aplicado en Power Query que modifica la estructura o contenido de los datos: dividir columnas, pivotar, combinar tablas, reemplazar valores, etc.
Esquema estrella
Diseño de modelo de datos con una tabla de hechos central conectada directamente a tablas de dimensiones (sin sub-dimensiones). Recomendado en Power BI.
Cardinalidad
El tipo de relación entre dos tablas según cuántas filas de una corresponden a filas de la otra: uno a muchos (1:N), muchos a muchos (N:N) o uno a uno (1:1).
Relación bidireccional
Configuración de relación en Power BI donde el filtro fluye en ambas direcciones entre las tablas. Útil en N:N pero puede causar ambigüedad si se usa en exceso.
Tabla de hechos
Tabla principal del modelo con datos transaccionales (ventas, pedidos). Contiene métricas numéricas (monto, cantidad) y claves foráneas hacia las dimensiones.
Tabla de dimensión
Tabla descriptiva (Clientes, Productos, Fechas, Regiones) que complementa la tabla de hechos con atributos para filtrar, agrupar y etiquetar los datos.
SUMX
Función iteradora DAX que recorre cada fila de una tabla, evalúa una expresión fila por fila (contexto de fila) y luego suma todos los resultados.
FILTER
Función DAX que devuelve una tabla con solo las filas que cumplen una condición. Se usa frecuentemente dentro de CALCULATE para modificar el filtro.
RELATED
Función DAX que recupera un valor de una tabla relacionada navegando desde el lado N hacia el lado 1 de una relación. Requiere que exista una relación activa entre las tablas.

🎬 Videos de Apoyo

CALCULATE en DAX — explicación completa en español

Power Query en Power BI — transformaciones desde cero en español

Modelo de datos y relaciones avanzadas en Power BI

Contexto de filtro y contexto de fila en DAX — Power BI

📊 Ver Curso Completo de Power BI

📝 Cuestionario — Nivel 2

10 preguntas aleatorias del banco de 50. Calificación de 0 a 100. Preguntas sobre DAX intermedio, Power Query y modelo de datos.