Power BI. Función FILTER

Función Filter Power BI

FILTER es una de las funciones más usadas en Power BI, tanto por su versatilidad, como por el hecho de que hay varias funciones en DAX, como CALCULATE o SUMX, que requieren pasarles una tabla como argumento, y esto FILTER lo hace a la perfección.

La definición de la guía de Microsoft dice que FILTER es una función que en Power BI devuelve una tabla que representa un subconjunto de otra tabla. La definición es correcta, aunque no demuestra todo el potencial de la función.

La función FILTER requiere dos argumentos, la tabla que queremos filtrar, y las condiciones para los filtros. Estas condiciones son expresiones booleanas que se evalúan fila por fila en la tabla original, y permiten que permanezcan las filas en las que el resultado es verdadero, y eliminan aquellas en las que es falso.
Aunque no es lo habitual, FILTER puede usarse de forma independiente para crear tablas nuevas a partir de otras. Para crear una nueva tabla, desde la pestaña Modelado, pulsaremos el botón Nueva tabla, y escribiremos la fórmula correspondiente en la ventana de fórmulas. Vamos a crear una tabla filtrada a partir de la tabla de siguiente imagen.

Escribiremos una expresión para filtrar en la tabla Productos, por aquellas filas que contengan “verde” en la columna Producto.

El resultado es una tabla nueva, en la que únicamente aparecen las filas que cumplen la condición que hemos impuesto.

Filtros complejos

La función FILTER, en su segundo argumento, permite escribir más de una condición para evaluar en las filas de la tabla. La forma de unir estas expresiones es mediante el operador lógico &&, en el caso de conjunciones, o ||, en el caso de disyunciones. También se puede escribir las expresiones dentro de las funciones AND() y OR(). Por ejemplo:

Disyunción:

Conjunción:

Filtro de búsqueda de texto

Hay ocasiones en las que el filtro que queremos aplicar no es un filtro de igualdad, si no que queremos filtrar todas aquellas filas que contengan o no cierto valor.

Realizar filtros de búsqueda de texto, es decir, buscar que un campo contenga un texto o unos caracteres en concreto, sería muy sencillo si existiera alguna función que devolviera TRUE o FALSE en función de que se halle o no una cadena de texto que se escribiera dentro de la función. No obstante, a día de hoy, no existe una función así en Power BI. Existen las funciones FIND y SEARCH para buscar texto, pero el valor de retorno no es TRUE o FALSE, sino la posición del primer carácter a partir del cual se encuentra el texto buscado. Aun así, se pueden usar estas funciones para construir expresiones booleanas que podamos usar como filtros.

Las dos funciones requieren los mismos argumentos. El cuarto de ellos, es el valor de retorno si no se encuentra el texto buscado dentro del texto que se especifica. De esta forma, se puede construir una expresión de verdadero o falso si se escribe un valor en este cuarto argumento, y, a continuación, una igualdad o desigualdad con ese valor.

A modo de ejemplo, vamos a filtrar en la siguiente tabla por aquellos valores que contengan “Azul”.

En este caso, usaremos la función FIND, ya que distingue entre mayúsculas y minúsculas, y haremos que devuelva un 0 cada vez que no lo encuentre. La ventaja de la función SEARCH es que admite caracteres especiales.

La expresión que hemos escrito devuelve TRUE en cada fila en la que el resultado de FIND es distinto de 0, y solamente devuelve 0 cuando no se encuentra el texto buscado. De esta forma, hemos construido un filtro que realiza una búsqueda de texto dentro de una columna.

FILTER junto a otras funciones

Como dijimos antes, el uso de FILTER por separado no es lo habitual. Es más común su uso en funciones como CALCULATE o SUMX. En esta entrada ya vimos cómo se usaba la función CALCULATE.

Estas funciones requieren tablas en sus argumentos para aplicar ciertas operaciones. Al emplear FILTER dentro de estas funciones, aunque no lo veamos, se están creando tablas como las que hemos visto en los ejemplos anteriores.

Por ejemplo, vamos a aplicar la función SUMX en una medida para sumar las cantidades de la primera tabla.

Al escribir esta fórmula, se evalúa una expresión, los valores que hay en la columna Cantidad, y se suman los resultados en todas las filas de la tabla que hayamos indicado, que en este caso es la tabla Productos entera.

Ahora usaremos FILTER, para reducir la tabla a aquellas filas que contengan verde nada más, como hicimos al principio.

Ahora, el motor de cálculo de Power BI, está evaluando fila por fila en la tabla Productos qué filas cumplen la condición escrita, para posteriormente crear una tabla filtrada en la que sólo aparecen las filas que contienen Verde, y, en esta nueva tabla, está sumando, uno por uno, los valores de la columna Cantidad.

Este es sólo un ejemplo de cómo se usa FILTER junto a la función SUMX. Para conocer más usos de esta función, como junto a las funciones ALL y ALLEXCEPT y descubrir todo el potencial de FILTER, puedes consultar nuestros cursos de Power BI o nuestro canal en YouTube.

¿Te ha sido útil este artículo? Deja tu opinión en los comentarios.

 

También te puede interesar:

DEJA UNA RESPUESTA

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *