Luego de un par de meses, y experiencias vividas en el proceso de aprendizaje y enseñanza, sigo con la segunda parte sobre: Advertencias al momento de estudiar DAX
Si usted se pone a pensar, al momento de querer aprender algo nuevo, tendemos a ver lo externo como la variable más importante; digamos: ¿Quién será el instructor/a? en otros casos dejamos que el valor de la marca asuma la responsabilidad, por ejemplo: «La corporación ACME nos entrenará en el lenguaje XY».
Sin embargo, para aprender DAX de una manera que nos permita ser libres del copiar y pegar indiscriminado, o mantenernos alejados de dudas sobre el origen del problema intentando cual función se nos aparezca por delante, existen una serie de condiciones que son importantes conocerlas y, tienen un componente principalmente humano; no técnico.
Extrapolar por la similitud con Excel
Por un lado, nos ofrece un punto en común para realizar operaciones de rutina. Variedad de funciones en DAX tienen un nombre que, con solo leerlo, nos da una idea de lo que hará; pero hasta allí, porque la naturaleza del lenguaje en establecer el comportamiento de sus funciones en base a variables externas puede convertir algo «sencillo» en un vertedero de dudas si no se aprende sobre la teoría que rige al lenguaje.
![](https://sentidoanalitica.com/wp-content/uploads/2022/03/sum_contexto_dax.png)
Utilizar algo que hemos aprendido en el pasado para algo nuevo es un atajo y, como todo, tiene sus ventajas; pero también nos quita la oportunidad de vivir la experiencia completa. Con el tiempo, comprendemos el por qué la palabra más escuchada al momento de establecer un resultado es «depende».
Contextos
El mayor engaño a nuestra mente (acostumbrada a las asociaciones) es pensar que el canvas u hoja en blanco corresponde a la materialización de lo que estamos creando en DAX.
Los responsables son los contextos de fila y filtrado.
![](https://sentidoanalitica.com/wp-content/uploads/2022/03/canvas-power-bi.png)
Al tener que estar recurrentemente cambiando de contexto, nos vemos obligados a cuestionar la naturaleza de la sintaxis que estamos redactando: ¿Deberá ser ejecutada en un contexto de fila o de filtrado? ¿Qué tal si aprovechamos la transición de contexto?
Mentalmente salimos de lo estructurado, por ejemplo: en Excel tenemos celdas que ofrecen una dirección sobre los límites del análisis; que, si lo vemos en lo didáctico, nos permiten establecer la relación entre sus partes de manera consecutiva. En cambio, en los modelos analíticos no existen una estructura única «más allá de las practicas adoptadas por la industria» para determinar si lo que vamos a realizar dará resultado (por eso copiar y pegar en DAX es fútil en muchos casos).
Por ello, el grado de complejidad se incrementa desde el comienzo porque debes cultivar buenos cimientos para afrontar escenarios avanzados donde todo se entremezcla.
Filtros y más filtros
DAX es un lenguaje que se ejecuta en un universo de tablas atadas entre si bajo relaciones (a veces virtuales), donde aplicamos filtros para ir reduciendo su tamaño hasta alcanzar el resultado deseado. Los filtros provienen no solamente del lenguaje en sí mismo, sino de características del programa, por ejemplo: filtros a nivel de objeto visual, filtros a nivel de página o filtros a nivel de todas las páginas.
Esto implica que, de manera recurrente nos encontremos con cálculos que deberán sobrescribir o ignorar una serie de filtros presentes en el reporte.
Si ejecuto «A» funciona bien; pero si agrego «B» deja de funcionar. Solvento «B» y, de repente aparece «C», que tiene que funcionar, pero solo cuando «A» lo decida.
![](https://sentidoanalitica.com/wp-content/uploads/2022/03/vista-de-modelo-power-bi.png)
A medida que nos adentramos en cálculos complejos, se hace más evidente que la manera de filtrarse/propagarse los datos en todo el entramado de tablas «con sus propias reglas» obliga a prestarle más atención a la estructura del modelo que a cualquier otra cosa.
De hecho, uno de los aspectos más importantes que debe aprender un analista en Power BI sería modelado de datos. En comparación al usuario final «quien consume el reporte y toma la decisión» siendo la interpretación de los datos a partir de la visualización, para llegar a la epifanía/visión e iniciar el proceso mental de toma de decisiones (heurística) llevándolo a ejecutar una acción humana.
Pensando en los demás (empatía)
Cuando se desarrollan modelos analíticos se toman en cuenta variedad de comportamientos entre las personas que tendrán acceso a los reportes o conexiones en vivo a la capa semántica.
A veces, algo tan banal como un porcentaje puede aumentar la complejidad de un cálculo. Esto se debe a los requerimientos que obligan a considerar el contexto en el que se está ejecutando la división, para realizar una operación no necesariamente sobre el todo, sino de una parte o porción de lo que se ve en el contexto de filtrado (una matriz expandida con subtotales).
Pensar en los demás requiere un set mental diferente. Implica elaborar ideas sobre posibles escenarios de consumo del reporte, o como mínimo, establecer lo adecuado para seguir adelante. Algo normal es dejar fluir las interacciones «que los usuarios vivan la experiencia» cuestionando los comportamientos establecidos y, de ser necesario, realizar ajustes según los nuevos descubrimientos.
Se podría pensar que es el reflejo de nuestra planificación al no considerar todos los escenarios; pero créeme, te sorprenderás de la variabilidad en los tipos de consumo que puede adquirir una (1) sola métrica a medida que aumenta la audiencia. La actitud es afinar e hilar fino en cada iteración hasta cubrir los requerimientos de los usuarios.
No obstante, si lo llevado a cabo en DAX es para uso personal; las respuestas son fáciles de identificar. En contraste, si estas involucrado/a en despliegues empresariales a distintas audiencias, lo común, normal o esperado es que tú mente se desdoble y te coloques en los pies de los demás.
Lo no negociable
En lo personal, sigo la siguiente premisa: entender, aprender y dominar.
Al estudiar sobre DAX podríamos pensar que todo tiene que dominarse. Y, a decir verdad, podría funcionar para quien se encuentre en toda la jornada laboral trabajando en el editor del lenguaje. Pero, los usuarios de negocio, desarrolladores con funciones mixtas o especialistas que tienen que mezclar variedad de responsabilidades, puede no ser viable; hasta contraproducente.
En cambio, la recomendación es dominar toda la teoría, la base o tronco conceptual del lenguaje, e ir adentrándose en aquellos temas o ramas donde harás más énfasis en lo laboral.
Con el tiempo y los proyectos, aspectos que en el pasado no se habían utilizado entran en escena, al igual que funciones o características. Por el contrario, los cimientos no son negociables al ser el equivalente de ir a la farmacia sin conocer que medicina debes comprar. Y de verdad, eso ocurre en DAX, porque podemos estar horas, días sin conseguir un resultado por el simple hecho de no comprender lo que lo genera.
Al menos con un diagnóstico, podemos consultar nuestros libros, cursos, buscar en internet o llamar a un amigo/a.
Gracias, muy bueno
Entender, aprender y dominar la teoría. Para ponerlo en práctica.