Como Filtrar todo en Power Query

脥ndice
  1. El escenario
  2. Agregar los filtros a Power Query
  3. Aplicar el filtro en Power Query
  4. Probando la soluci贸n
  5. Conclusi贸n

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.

Men煤 desplegable de filtro

  • 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

Creando rangos con nombre

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
    Datos de tabla o rango
  • Cambiar el tipo de datos a texto
  • Reemplace los valores nulos con una cadena de texto en blanco haciendo clic en Transformar Reemplazar valores
    Transformar reemplazar valores
  • Haga clic derecho en la celda en blanco y seleccione Profundizar para llegar a un valor 煤nico.
    Haga clic con el bot贸n derecho en profundizar
    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.

Filtrar por un art铆culo

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:

Despu茅s de aplicar el filtro

Si est谩 trabajando junto con el ejemplo, los pasos aplicados contienen los siguientes elementos:

Ventana de pasos aplicados

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.

Icono de FX en la ventana de Power Query

= 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:

Pasos aplicados despu茅s del segundo filtro.

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.

Opci贸n Power Query Filtrar todo

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

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

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra pol铆tica de cookies. Leer mas...