Transcripción del video
Esto que vamos a ver en este tutorial es algo que me pasó una vez con un cliente, ya hace algún tiempo. Fue algo que me dio mucha pena con ella, que me pasara esto y era algo que en verdad era súper sencillo de resolver. Pero debido a que en ese momento NO tenía el conocimiento de lo que estaba pasando, tuve que dejarlo pendiente para investigarlo después de la reunión. Y te lo quiero contar para que no te pase a ti. Para que sepas qué fue lo que paso en este caso y, si en algún momento te llega a pasar, que sepas cómo solucionarlo o, incluso mejor, que evites que te pase el error desde un inicio.
El tema es que estábamos trabajando ella y yo, analizando sus tablas de datos usando DAX. Y había un paso que necesitábamos implementar. Necesitábamos saber si ciertas palabras se encontraban en una columna con texto para poder asignarles un valor y poder hacer el análisis que necesitábamos.
Veamos la información que inventé y que está súper simplificada pero que más o menos representa lo que estábamos haciendo. Haz de cuenta que necesitábamos ver si en cada celda de este se encontraba cierto comportamiento, por ejemplo “llamada a representante”. Porque si se encontraba este texto, debíamos de asignar cierta puntuación al cliente.
El caso es que estábamos haciéndolo con la función SEARCH() de DAX. Esta función busca un texto dentro de la columna que tú deseas y en caso de que la encuentre, regresa la posición donde inicia el texto.
Peeeeero el problema con esta función es que, si no encuentra el texto en alguna celda de la columna, nos regresa un error para toda la columna, a pesar de que haya encontrado el texto en las otras celdas.
Esto no es ideal y francamente no se me hace correcto que funcione de esa manera, pero así es como trabaja Power BI con esa función.
En este caso lo que se tiene que hacer es agregar el cuarto argumento, esto a pesar de que sea opcional. Lo puedes agregar con la función BLANK() y así, si no encuentra el texto, te va a regresar un valor nulo o blanco.
Ahora así ya puedes evitar este error con la función SEARCH() y así evitar que esto te pase a ti enfrente de tu jefe, de un cliente o de un compañero.
Pero además, ahora en retrospectiva y ahora que ya conozco más funciones de DAX, hubiera sido mejor que hubiéramos trabajado este caso usando las función CONTAINSSTRING() que simplemente regresa un valor TRUE o FALSE. Y el resultado que nos regresa es el que estaba esperando.
Pero ahí lo tienes. Ahora ya sabes qué hacer en este caso y espero haberte ahorrado una situación incómoda en el futuro. Eso es todo por ahora y nos vemos la próxima ocasión. ¡Hasta luego!