Como Filtrar todo en Power Query
El filtrado en Power Query reduce la tabla para incluir solo aquellos elementos que cumplen criterios espec铆ficos. Sin embargo, Power Query no tiene una opci贸n de filtrado para incluir todos los elementos. En Excel, podemos utilizar el asterisco (*) como car谩cter comod铆n para hacer coincidir cualquier texto. Por lo tanto, si queremos incluir todos los elementos en un Filtro, simplemente usamos un 煤nico asterisco. Sin embargo, Power Query no tiene una funcionalidad equivalente. Entonces, en esta publicaci贸n, veremos un m茅todo para crear algo similar para filtrar todo en Power Query.
Esta publicaci贸n es en respuesta a una pregunta de un miembro de la academia que preguntaba sobre c贸mo filtrar una tabla.
"Necesito una opci贸n 'todos'... de modo que si no seleccionan un nombre, obtendr谩n todos los registros".
Bien, veamos c贸mo podemos resolver esto.
Tabla de contenido
- El escenario
- Agregar los filtros a Power Query
- Aplicar el filtro en Power Query
- Probando la soluci贸n
- Conclusi贸n
Descargue el archivo de ejemplo: 煤nase al programa Insiders gratuito y obtenga acceso al archivo de ejemplo utilizado para esta publicaci贸n.
Nombre de archivo: 0071 Filtrar todo en Power Query.zip
Tener acceso
El escenario
Para demostrar el enfoque, he creado un libro que contiene dos filtros.
- Cuenta nos permite seleccionar un c贸digo de cuenta
- Categor铆a nos permite seleccionar una categor铆a
El libro incluye una consulta vinculada a un archivo CSV externo y cargada en una tabla. El archivo CSV est谩 incluido en el archivo de descarga. Para trabajar con el ejemplo, deber谩 volver a dirigir la consulta al archivo CSV de origen en su PC.
En el libro de ejemplo, estos filtros actualmente no hacen nada. Pero queremos crear la funcionalidad para filtrar por Cuenta o Categor铆a, pero si alguna se deja en blanco, devolver谩 todos los elementos de ese elemento.
Agregar los filtros a Power Query
El primer paso es crear dos rangos con nombre:
- Celda C4 = Filtro de cuenta
- Celda D4 = Filtro de categor铆a
Ahora agreguemos ambos rangos con nombre a Power Query como par谩metros
- Seleccione la celda D4 y haga clic en Datos de tabla/rango en la cinta
- Cambiar el tipo de datos a texto
- Reemplace los valores nulos con una cadena de texto en blanco haciendo clic en Transformar Reemplazar valores
- Haga clic derecho en la celda en blanco y seleccione Profundizar para llegar a un valor 煤nico.
Nota: Si el filtro de celda estaba en blanco, no ver谩s ning煤n valor en tu pantalla (est谩 bien, no te preocupes) - Cierre y cargue esta consulta en Excel solo como conexi贸n.
Repita estos pasos para AccountFilter en la celda D4.
Aplicar el filtro en Power Query
Vuelva a Power Query, en la consulta de origen, seleccione la columna Cuenta y aplique un filtro de texto; Usa cualquier texto, no importa.
A continuaci贸n, en la barra de f贸rmulas, cambie la cadena de texto del filtro para que sea la consulta AccountFilter. Para hacer esto, cambie lo siguiente:
= Table.SelectRows(#"Tipo cambiado", cada uno ([Cuenta] = "Cuentas por pagar" ))
A esto:
= Table.SelectRows(#"Tipo cambiado", cada uno ([Cuenta] = AccountFilter ))
Si el filtro estaba vac铆o, la pantalla ahora se ver谩 como la siguiente:
Si est谩 trabajando junto con el ejemplo, los pasos aplicados contienen los siguientes elementos:
Ahora podemos agregar l贸gica a los pasos aplicados para devolver las tablas filtradas o sin filtrar.
Haga clic en el s铆mbolo Fx para crear un nuevo paso. Ingrese la siguiente declaraci贸n en la barra de f贸rmulas.
= si AccountFilter = "" entonces #"Tipo modificado" m谩s #"Filas filtradas"
Esto simplemente significa que si AccountFilter es una cadena de texto en blanco, entonces devuelva la tabla despu茅s del Tipo modificado (que no est谩 filtrado); de lo contrario, devuelva la tabla despu茅s de las Filas filtradas (que est谩n filtradas). Esto crea el efecto de un filtro en blanco que devuelve todos los elementos.
Repita las acciones anteriores para la columna Categor铆a y la consulta CategoryFilter.
Antes de crear la segunda declaraci贸n if, los pasos aplicados ser谩n:
Por lo tanto, la declaraci贸n if ser谩:
= si CategoryFilter = "" entonces Personalizado1 sino #"Filas filtradas1"
Finalmente, cierre y cargue la consulta Fuente como una tabla de Excel.
Probando la soluci贸n
Ahora, todo lo que tenemos que hacer es probarlo. Primero, ingrese algunos valores en cualquiera de los cuadros de filtro, luego haga clic en Actualizar datos todos en la cinta.
Si una o ambas celdas est谩n en blanco, no se aplica ning煤n filtro a la tabla final para esos filtros.
La siguiente captura de pantalla muestra un filtro en la Categor铆a, pero ning煤n filtro aplicado a la columna Cuenta.
Agregu茅 un bot贸n de actualizaci贸n de macro y listas desplegables de validaci贸n de datos en el archivo de ejemplo. Sin embargo, la lista de validaci贸n de datos ilustra c贸mo podr铆a funcionar la soluci贸n; no es din谩mico, por lo que no recoger谩 ning煤n valor adicional.
Conclusi贸n
Power Query no tiene filtrado por comodines para que podamos incluir todos los elementos. Pero con un poco de l贸gica podemos crear un efecto similar.
Y tal vez en el proceso haya aprendido que puede escribir directamente en la barra de f贸rmulas y devolver f谩cilmente el estado de la consulta despu茅s de cada paso aplicado.
Deja una respuesta