Lenguaje DAX: fundamentos y buenas prácticas esenciales

El lenguaje DAX (Data Analysis Expressions) desempeña un papel fundamental en el trabajo con Power BI, proporcionando una manera poderosa de crear cálculos y análisis complejos.
A través de DAX, somos capaces de definir las reglas de negocio necesarias para nuestros proyectos, desde la creación de medidas simples hasta cálculos más complejos.
En este artículo, conoceremos los conceptos básicos de DAX, incluyendo la creación de fórmulas, tipos de datos, funciones, operadores, referencia a objetos del modelo, variables y formatos.
¡Acompáñame en esta lectura y exploremos juntos el lenguaje DAX!
Cómo escribir fórmulas DAX
Las fórmulas DAX se escriben utilizando expresiones que pueden ser simples o complejas, dependiendo de las necesidades del análisis.
Las fórmulas comienzan con un signo igual (=) y pueden incluir funciones, operadores, referencias a columnas y tablas, además de variables.
Supongamos que queremos analizar las ventas de una empresa y necesitamos determinar si el valor de la venta es alto o bajo.
Para ejemplificar, vamos a explorar la creación de una columna que realice esta clasificación.
Consulta el siguiente código DAX:

En este ejemplo, ClasificaciónVenta es una nueva columna que clasifica las ventas como "Alta" o "Baja" en función del valor de la columna ValorVenta de la tabla Ventas.
¿Con qué tipos de datos trabaja DAX?
De acuerdo con Microsoft, DAX trabaja con varios tipos de datos, incluyendo:
Tipo de dato en el Modelo | Tipo de dato en DAX | Descripción |
Número entero | Entero de 64 bits | -2^63 hasta 2^63-1 |
Número decimal | Real de 64 bits | Negativo: -1,79 × 10^308 hasta -2,23 × 10^-308, cero (0), positivo: 2,23 × 10^-308 hasta 1,79 × 10^308 - limitado a 17 dígitos decimales |
Booleano | Booleano | TRUE o FALSE |
Texto | String | Secuencia de caracteres Unicode |
Fecha | Fecha/Hora | Fechas válidas a partir del 1 de enero de 1900 |
Moneda | Moneda | -9,22 × 10^14 hasta 9,22 × 10^14 - limitado a cuatro dígitos decimales de precisión fija |
N/D | BLANK | En algunos casos, es equivalente a un NULL en bases de datos (SQL) |
Funciones
Las funciones son esenciales para las expresiones DAX y se utilizan para realizar cálculos complejos, manipulaciones de datos y agregaciones.
Existe una amplia variedad de funciones que pueden clasificarse en varias categorías. Vamos a revisar algunas de ellas a continuación:
- Funciones de Agregación: SUM, AVERAGE, MIN, MAX.
- Funciones de Fecha y Hora: DATE, YEAR, MONTH, NOW.
- Funciones Lógicas: IF, AND, OR, SWITCH.
- Funciones de Texto: CONCATENATE, LEFT, RIGHT, MID.
- Funciones de Filtro: FILTER, ALL, RELATED.
Ejemplo de uso de una función de agregación:

Con una amplia gama de funciones matemáticas, lógicas, de texto, de fecha y hora, de información, de filtro y de agregación, DAX ofrece la flexibilidad necesaria para crear cálculos complejos y efectivos.
Operadores
Los operadores son símbolos que especifican la operación que debe realizarse entre los elementos de una expresión.
Pueden clasificarse en varias categorías, incluyendo operadores aritméticos, relacionales y lógicos:
- Aritméticos: +, -, *, /
- Relacionales: =, <>, <, <=, >, >=
- Lógicos: AND, OR, NOT
Ejemplo de uso de operadores:

Referencia a Objetos del Modelo
A menudo, durante la creación de cálculos, necesitamos hacer referencias a diferentes tipos de objetos de nuestro modelo/proyecto. Esto sucede con frecuencia al hacer referencia a tablas o medidas.
Pensando en esto, vamos a entender cómo podemos referenciar estos objetos en DAX.
Tabla
Las tablas son fundamentales para la creación de cálculos y visualizaciones en Power BI. Contienen datos organizados en filas y columnas, y cada tabla puede ser referenciada directamente por su nombre.
La referencia a tablas en DAX se puede hacer tanto con como sin comillas simples.
En el siguiente ejemplo, la referencia se hace entre comillas simples (').

Además, asegúrate de que los nombres de las tablas sean únicos dentro del modelo. Los nombres duplicados pueden causar errores o confusión. Utiliza nombres descriptivos y claros para tus tablas para facilitar la lectura y el mantenimiento de los cálculos DAX.
Columna
Las columnas se referencian por el nombre de la tabla seguido del nombre de la columna entre corchetes.
Aunque las columnas sean únicas dentro de una misma tabla, sus nombres pueden repetirse en tablas diferentes.
Por esta razón, agregar el nombre de la tabla antes del nombre de la columna ayuda a definir su origen y evitar confusiones.
Como ejemplo, tenemos la columna Ingreso que suma los valores de la columna Total Ventas:

En este caso, identificamos que el campo Total Ventas es una columna debido al nombre de la tabla insertado antes.
Medida
Las medidas, a diferencia de las columnas, se referencian únicamente por el nombre de la medida. En este caso, no es necesario especificar a qué tabla pertenece la medida.
Por ejemplo, podemos referenciar las medidas Ingreso y Costo de la siguiente manera:

Como las medidas pueden ser utilizadas en todo el modelo, se puede omitir la referencia a su tabla de origen.
De hecho, esta diferenciación en la referencia a columnas y medidas termina siendo una ayuda visual para identificar a qué nos estamos refiriendo en un cálculo.
Variables
Las variables son herramientas poderosas que permiten crear cálculos más eficientes, legibles y fáciles de depurar.
Para declarar una variable, se utiliza la palabra clave VAR seguida del nombre de la variable y la expresión que define su valor.
A continuación, se utiliza la palabra clave RETURN para definir el valor o la expresión final que será devuelta por la fórmula.
Sintaxis básica:

Ejemplo de uso básico de variable:

En este ejemplo, utilizamos variables para almacenar la tasa y el cálculo de la suma del costo. Al final, devolvemos el cálculo del costo utilizando esas variables.
Ventajas del uso de variables
- Legibilidad: Las variables hacen que tus fórmulas sean más fáciles de leer y entender, especialmente en cálculos complejos.
- Reutilización: Una variable puede ser referenciada múltiples veces dentro de la misma expresión, evitando la repetición de cálculos.
- Eficiencia: El uso de variables puede mejorar el rendimiento, ya que los cálculos se realizan una sola vez y se almacenan, en lugar de repetirse continuamente.
- Depuración: Las variables facilitan la depuración de expresiones complejas, permitiendo dividir los cálculos en etapas más pequeñas y manejables.
Buenas prácticas para el uso de variables
- Nombres descriptivos: Usa nombres de variables que describan claramente el propósito del valor que almacenan.
- Uso moderado: No abuses del uso de variables. Empléalas cuando realmente aporten claridad y eficiencia al cálculo.
- Ámbito (Scope): Ten en cuenta que las variables tienen un ámbito local dentro de la expresión DAX donde son declaradas. No pueden ser usadas fuera de ese contexto.
Las variables en DAX ayudan a que las fórmulas sean más legibles y eficientes, permitiendo almacenar el resultado de una expresión.
Formateo
El formateo de las fórmulas DAX es fundamental para la legibilidad y el mantenimiento. Un buen formateo facilita la lectura, depuración y organización del código, especialmente en expresiones complejas.
A continuación, considera algunas buenas prácticas para el formateo e indentación del código DAX
Utiliza espacios simples entre operadores:

Utiliza espaciado con SHIFT + Enter para separar los parámetros de las funciones:

Utiliza espaciado con TAB para indentar funciones anidadas:

Para ayudar con el formato del código DAX, puedes usar el DAX Formatter, un servicio en línea gratuito que formatea tu código DAX por ti.
En él, puedes acceder al DAX Formatter para pegar tu código y recibir una versión bien formateada.
Utilizando estas prácticas y conceptos, es posible aprovechar al máximo el poder de DAX en Power BI, creando análisis robustos y detallados.
Conclusión
En este artículo, exploramos lo básico del lenguaje DAX. Durante la lectura, fuimos capaces de:
- Entender cómo referenciar diferentes tipos de objetos en el modelo DAX, como tablas y columnas;
- Comprender el uso de variables para crear cálculos más eficientes y legibles;
- Aprender la importancia del formato y la indentación del código DAX para mejorar la legibilidad y el mantenimiento;
- Conocer los operadores disponibles en DAX, como aritméticos, de comparación, de texto, lógicos y de referencia;
- Explorar diversas funciones DAX, incluyendo matemáticas, lógicas, de texto, de fecha y hora, de información, de filtro y de agregación, con ejemplos prácticos.
Para poner en práctica los conocimientos adquiridos en este artículo, consulta la Formación en Power BI, donde podrás contar con un equipo especializado y altamente dedicado a ofrecer contenidos de calidad que te ayudarán a desarrollar tus habilidades.
¡Un abrazo!
Créditos
- Contenido: Marcelo Cruz
- Producción técnica: Daniel Siqueira
- Producción didactica: Cláudia Machado
- Designer gráfico: Alysson Manso
- Apoyo: Rômulo Henrique
- Adaptación: Samantha Faustino