¿Por qué aprender DAX resulta tan complicado?
Si has empezado a
trabajar con Power BI , tarde o temprano te vas a encontrar con
DAX y la frustración. Al principio parece todo muy sencillo, cargas los datos, construyes un modelo sencillo, creas algunas medida y colocas gráficos y tablas en la página. Ya está: has construido un informe en Power BI y con orgullo lo presentarás a tus compañeros y a la dirección.
Al poco tiempo empiezas a recibir llamadas y correos «Oye, que estos datos no están bien», «Mira esta suma», «Las ventas de este departamento no pueden ser esas». Te pones a revisarlo, es verdad, los datos no están bien. Revisas las fórmulas, todas parecen correctas ¿Qué esta pasando?, revisas el origen de datos y es correcto, vas a las tablas y haces algunos cálculos de prueba utilizando Excel, pues no, no cuadran con lo que sale en Power BI.
Llevas años utilizando Excel y nunca habías tenido este tipo de problema, sí es un engorro copiar y pegar y a veces se te escapan datos en el proceso de copia y pega, pero los cálculos en Excel no fallan. Y ese es precisamente el problema, creer que DAX es como las fórmulas de Excel pero más avanzado, y no, el proceso de cálculo de DAX no es igual que el de Excel, en Excel trabajamos con celdas, en DAX trabajamos con tablas y columnas. En Excel las fórmulas se calculan a nivel de celda, en DAX las fórmulas son sólo un algoritmo que se utilizará en el contexto de cálculo, o contexto de evaluación, algo que resulta difícil de asimilar al principio. Hablaremos del Contexto de Cálculo en próximos posts.
Las funciones de DAX son simples, fáciles de entender, lo cual no quiere decir que sea fácil programar en DAX. DAX se parece al GO (juego chino de estrategia), las reglas son muy simples, el juego es muy complicado.
Como dice
Alberto Ferrari, uno de los mayores expertos en DAX, DAX es simple pero no es fácil, y nos da 7 razones para justificarlo:
1. Es un lenguaje funcional. No es un lenguaje imperativo. Si has programado en otros lenguajes no funcionales, tienes que «cambiar el chip» y eso sólo se consigue a base de practicar y practicar.
2. Requiere práctica constante. Si no lo practicas, perderás habilidades. Si no puedes especializarte en DAX en tu trabajo, al menos deberás asignar unas horas al día para practicarlo.
3. Hay cuatro conceptos básicos que debes dominar:
-
-
Contextos de evaluación
-
Iteraciones
-
Transición de contextos
-
Tablas expandidas
No tienes que conocer todas las funciones de DAX de memoria, si dominas estos cuatro conceptos, dominas DAX.
4. DAX es extremadamente lógico. Es como un puzzle
5. Los detalles son muy importantes. Tienes que tener en cuenta el origen de datos, las transformaciones, el modelo que has construido, las relaciones, el tipo de relación, las medidas, el contexto de evaluación, el contexto de fila, la transición de contextos. Y aparte de todo eso, tienes que tener en cuenta qué pregunta te estás haciendo y qué quieres contestar en un informe de Power BI. Por ejemplo: quieres mostrar en una medida el número de clientes nuevos que ha hecho la empresa. Vale. ¿Qué es un cliente nuevo para ti? . Si un cliente está en la base de datos de la empresa, no ha comprado nada en 20 años y ahora vuelve a comprar ¿Es un cliente nuevo?
6. Necesitas un buen editor. Ya te habrás dado cuenta que escribir código DAX complejo en el
editor de Power BI Desktop es bastante frustrante. Power BI Desktop se creó como una ampliación de Excel y conserva la barra de fórmulas como editor de código. Hasta el día de hoy Microsoft no ha publicado ninguna herramienta que permita editar DAX de forma cómoda, pero existen herramientas de terceros como DAX STUDIO o TABULAR EDITOR que permiten hacerlo.
7. «Cacharrear» no sirve. Muchas personas, sobre todo aquellas acostumbradas a programar o a trabajar con consultas de SQL piensan que «cacharreando», mediante prueba y error conseguirán dominar el lenguaje. Y nada más lejos de la realidad, DAX requiere estudio y comprensión. Cuando programas en VBA , en cualquier otro lenguaje o trabajas con Excel, siempre puedes abrir un buscador , escribir tu problema y en algún foro podrás encontrar el trozo de código o la fórmula que necesitas, cortas, pegas y si el resultado es correcto ya no tienes que pensar más, ni siquiera entender la fórmula o el código. En DAX no es así, no basta con la fórmula, la fórmula DAX es sólo un algoritmo, que se aplica contra un modelo, en un contexto de evaluación
DAX parece complicado y lo es, pero es un lenguaje muy potente para analizar datos y si te gusta puede convertirse en un hobby , incluso puede llegar a ser adictivo.
En nuestro curso de Introducción a DAX tratamos estos conceptos: