Módulo 9 · 🧠
Funciones DAX II
Dominar las familias de funciones DAX más usadas en reportes profesionales.
Temas del módulo
🇩🇴 Caso dominicano
Ranking de sectores de zonas francas (farmacéuticos, tabaco, textiles…) por crecimiento.
🛠️ Práctica paso a paso
- 📥 Datos para practicar: Colmado_Modelo_2024_2025.xlsx
- 📥 Datos para practicar: Zonas_Francas_RD_CNZFE.xlsx
La guía paso a paso de esta práctica está en preparación.
Presentaciones interactivas
Guía: funciones DAX
Clase
Módulo 9: Funciones DAX II - Dominando el Análisis de Datos en Power BI
1. Introducción a la Clase
¡Saludos, equipo! Prepárense, porque hoy vamos a meter mano con la artillería pesada de Power BI. Ya pasamos por lo básico, pero ahora entraremos en las funciones que realmente separan a los que están "puyando" de los profesionales que dominan el juego.
DAX (Data Analysis Expressions) no es solo escribir fórmulas porque sí; es el motor que le da sentido y lógica a los datos. Como bien dice la filosofía de Aglaia, para que un análisis sea serio, los datos deben tener una estructura coherente. Hoy aprenderán a inyectarle esa inteligencia a sus reportes para que no solo se vean bonitos, sino que hablen la verdad del negocio con precisión quirúrgica.
2. Funciones de Fecha (Time Intelligence)
Concepto y Analogía: Imaginen que las funciones de Inteligencia de Tiempo son como el "Calendario de la Pelota Invernal". Para saber si el Licey o las Águilas van por buen camino, no basta con ver cuántos juegos ganaron anoche; hay que comparar cómo iba el equipo en la misma fecha de la temporada pasada. Pero ojo: intentar usar estas funciones sin una tabla de fechas correcta es como querer revisar el standing sin saber si el juego se suspendió por lluvia; simplemente no te va a cuadrar.
Paso a Paso:
1. Requisitos de la Tabla Calendario: Según los estándares de Grow Up, tu tabla calendario debe ser sagrada: no puede tener saltos de fecha (debe ser continua desde el 1 de enero al 31 de diciembre), los valores deben ser únicos y la columna debe ser tipo Fecha (Date).
2. Configuración: Ve al menú Modelado > Marcar como tabla de fechas. Esto le confirma a Power BI que esa es la referencia oficial del tiempo.
3. Medidas de comparación:
* SAMEPERIODLASTYEAR('Calendario'[Fecha]): Te permite viajar al mismo periodo del año anterior.
* DATESYTD('Calendario'[Fecha]): Calcula el acumulado desde el inicio del año hasta la fecha (Year to Date).
Ejemplo Dominicano: Comparar las exportaciones de tabaco de este mes vs. el mismo mes del año pasado para ver si la cosecha realmente rindió.
Error Común: El error más "novato" es tener huecos en el calendario. Si falta un solo domingo, DAX se marea y los cálculos de tiempo dejan de funcionar.
3. Funciones Lógicas y Condicionales
Concepto y Analogía: Piensen en un "Portero de Discoteca". El tipo tiene una regla clara: "Si tienes la cédula y estás en la lista (condición), pasas; si no, te quedas fuera". La función IF (SI) es ese portero que decide qué etiqueta le toca a cada dato.
Paso a Paso:
1. En la pestaña Inicio, haz clic en Nueva medida.
2. Escribe la lógica: Resultado = IF( [Condición], [Valor_si_verdadero], [Valor_si_falso] ).
Ejemplo Dominicano: Clasificar si un sector de zona franca es "Prioritario" si su crecimiento supera el 10% (como los dispositivos médicos), o "Estándar" si no llega ahí.
Error Común: Olvidar el resultado para el caso "Falso". Si no lo pones, Power BI te devuelve un blanco (blank) que ensucia tus tablas y visuales.
4. Funciones de Texto
Concepto y Analogía: Esto es como un "Salón de Belleza". A veces los datos vienen "greñú" (desordenados, con espacios locos o mayúsculas mezcladas) y estas funciones los ponen nítidos y uniformes.
Paso a Paso:
1. UPPER (MAYUSC): Todo a mayúsculas.
2. LOWER (MINUSC): Todo a minúsculas.
3. TRIM (RECORTAR): Quita esos espacios traicioneros al principio o al final.
Ejemplo Dominicano: Limpiar nombres de ciudades. Si tienes "Santiago", " SANTIAGO " y "santiago", Power BI creerá que son tres sitios distintos. Al usar TRIM y UPPER, todos se vuelven "SANTIAGO".
Consejo de Senior: Aunque DAX puede hacer esto, la buena práctica de Aglaia sugiere que estas limpiezas se hagan mejor en Power Query (Transformar datos) antes de que los datos lleguen al modelo, para que el reporte corra más ligero.
5. La función RELATED (Relacionados)
Concepto y Analogía: Es como "El primo que todo lo sabe". Si estás en una mesa y necesitas un dato que no tienes, le preguntas al primo que está en la otra mesa (otra tabla) y él te lo dice.
Paso a Paso: 1. Primero, asegúrate de que las tablas estén conectadas en la Vista de Modelo. 2. Solo funciona si vas de la tabla de "Muchos" (Ventas) a buscar un dato único en la tabla de "Uno" (Productos/Empleados).
Ejemplo Dominicano: Traer el nombre del "Gerente de Planta" desde la tabla de Empleados para que aparezca al lado de cada venta de textiles.
Error Común: Intentar usar RELATED cuando no hay una relación bien definida. Si no hay "cable" en el modelo, el primo no te oye.
6. Funciones Matemáticas y Estadísticas (Iteradores vs. Agregadores)
Concepto y Analogía: Es la diferencia entre "Comprar en el colmado". El agregador (SUM) es cuando el colmadero ve la cuenta entera y te da el total al final. El iterador (SUMX) es cuando tú vas viendo cada producto en la vitrina, multiplicas su precio por la cantidad y vas sumando fila por fila.
Paso a Paso:
1. Agregadores (SUM, AVERAGE): Trabajan sobre una columna completa.
2. Iteradores (SUMX, AVERAGEX): Crean un "Contexto de fila". Evalúan una expresión fila por fila antes de consolidar el resultado.
Ejemplo Dominicano: Usar AVERAGEX para calcular el promedio del ticket de exportación, multiplicando precio por cantidad en cada envío individual antes de sacar la media nacional.
Error Común: Usar AVERAGE cuando necesitas que Power BI calcule algo primero en cada fila. Si promedias antes de multiplicar, el número será un disparate.
7. CALCULATE a Fondo: El Cerebro de DAX
Concepto y Analogía: Es el "Filtro de una Greca de Café". De toda el agua y el café que hay, el filtro solo deja pasar lo que tú quieres que salga en la taza según el filtro que pongas. CALCULATE es la función más poderosa porque realiza una "Transición de Contexto", cambiando la forma en que los datos son filtrados.
Paso a Paso:
1. Ve a Herramientas de medición > Nueva medida.
2. Sintaxis: CALCULATE( [Medida], Filtro1, Filtro2... ).
Ejemplo Dominicano: Calcular el total de ventas, pero filtrando solo para el sector "Textiles" en la zona franca de "Santiago".
Error Común: No entender que CALCULATE tiene "rango" y puede ignorar o sobreescribir los filtros que el usuario tenga seleccionados en los segmentadores del reporte.
8. ALL y FILTER
Concepto y Analogía: ALL es como "Ignorar a todo el mundo" y FILTER es como "Hacer una lista selecta".
Paso a Paso:
1. ALL: Devuelve una tabla completa ignorando filtros. Se usa mucho como argumento dentro de CALCULATE para sacar porcentajes.
2. FILTER: Se usa para aplicar condiciones complejas que un filtro simple no puede manejar.
Ejemplo Dominicano: Para saber cuánto pesa el Tabaco en el total nacional, necesitas una división donde el denominador use ALL(Exportaciones) para que no se mueva aunque selecciones una provincia.
Error Común: Meter un FILTER en una tabla de millones de filas cuando un filtro simple de CALCULATE resolvía. Eso pone el reporte "pesado".
9. Función RANKX
Concepto y Analogía: Es la "Tabla de Posiciones de la LIDOM". Ordena a todo el mundo del 1 al final según su desempeño.
Paso a Paso:
1. Sintaxis: RANKX( ALL(Tabla), [Medida] ).
2. Senior Tip: Para que el ranking funcione nítido, la medida dentro de RANKX debe estar envuelta en un CALCULATE (o ser una medida ya creada) para forzar la transición de contexto.
Ejemplo Dominicano: Ranking de los 5 sectores de zonas francas con más crecimiento anual.
Error Común: Olvidar el ALL. Sin él, cada sector se mira al espejo y dice "yo soy el número 1", y terminas con una lista donde todos tienen el primer puesto.
10. Función SWITCH
Concepto y Analogía: Es un "Control Remoto". Es para no tener ese reguero de IF uno arriba de otro que marea a cualquiera. Si presionas el 1, sale Telemicro; si el 2, Telesistema.
Paso a Paso:
1. SWITCH( [Columna], Valor1, Resultado1, Valor2, Resultado2, ..., [Valor_por_defecto] ).
2. Puedes usar SWITCH( TRUE(), ... ) para evaluar rangos (ej. si es mayor a 100, "Alto"; si no, "Bajo").
Ejemplo Dominicano: Asignar regiones: 1 = "Norte", 2 = "Sur", 3 = "Este".
Error Común: No poner el valor por defecto al final. Si aparece un dato nuevo, te saldrá vacío.
11. Resumen y Cierre
Para ser un pro y que sus reportes no "cojeen", sigan estas mejores prácticas: * Documenten su trabajo: Cambien los nombres automáticos de los pasos y medidas para que cualquiera entienda la lógica. * Corrijan los tipos de datos: Asegúrense de que lo que es número sea número y lo que es fecha sea fecha. * Eviten operaciones lentas al final: Según datdata, dejen los ordenamientos complejos o transformaciones pesadas para el inicio del proceso (Power Query) para no poner el reporte "laggy". * Nombres concisos: No usen nombres genéricos como "Medida 1". Sean claros: "Total Ventas Santiago". * Carguen solo lo necesario: Si una tabla no se va a usar en el reporte visual, deshabiliten su carga para ahorrar memoria.
12. Preguntas de Repaso
- ¿Qué función se usa para sacar un porcentaje del total ignorando los segmentadores de usuario?
- La función
ALLdentro de unCALCULATE.
- La función
- ¿Cuáles son los 3 requisitos de una Tabla Calendario para que DAX no falle?
- Que no tenga saltos de fechas, que los valores sean únicos y que la columna sea tipo Fecha.
- ¿Qué significa técnicamente que una función sea un "Iterador" como SUMX?
- Significa que crea un "Contexto de fila" y evalúa una operación fila por fila antes de sumar el total.
- ¿Por qué es mejor limpiar el texto en Power Query que en DAX?
- Porque Power Query (Transformar datos) es más eficiente para el rendimiento del modelo y sigue el proceso ETL correcto.
- ¿Qué sucede si olvidas usar ALL dentro de una función RANKX?
- El ranking no puede comparar entre filas y asignará el número 1 a todos los elementos.