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...