Filtro avanzado

Si bien es cierto que el filtro automático o autofiltro, desarrollado en la sección anterior, nos resuelve el problema de filtrar los registros de acuerdo a algún criterio, también es cierto que lo filtrado, lo muestra en la misma hoja, ocultando todos aquellos registros que no cumplen las condiciones aplicadas.

Sin embargo, en muchos casos, nuestro interés es obtener dichos resultados independiente del resto de los datos para cualquier propósito.

Esto se logra obteniendo el reporte del filtrado en otra hoja. Para ello se deberá usar el filtro avanzado.

El filtro avanzado maneja tres rangos:
- Rango de datos: que contiene todos los datos con estructura tabular y que debe incluir la cabecera.

De preferencia se debe usar nombre de rango y no el rango mismo
De esta forma se puede acceder al rango de datos desde cualquier hoja del mismo libro.

- El rango de criterios: cuya primera fila contiene los nombres de las columnas (campos) en los cuales se definen los criterios (de preferencia se debe tomar en cuenta todas las columnas).
Este rango lo debemos preparar. Lo mínimo que debe tener es dos filas.
En la primera fila se debe ingresar los nombres de los campos(columnas) a ser usado como filtro (criterio).
En la segunda, se debe ingresar el valor de dicho campo por el cual se desea filtrar. Se acostumbra copiar todos los nombres de los campos del área de datos y colocar debajo de cada uno de ellos los valores por el cual se va a filtrar.
Pero es suficiente ingresar los nombres de los campos a ser usado como filtro. No importa el orden.
Se debe tener cuidado de ingresar los nombres de los campos exactamente como aparecen en el área de datos.
- El rango de salida: rango en el cual se visualizará todos los registros que satisfacen los criterios especificados

Este rango puede ser definido en cualquier hoja, de preferencia en la misma donde se ha definido el rango de criterios.
Es suficiente fijar la primera celda superior izquierda de este rango, pues a partir de allí hacia abajo y a la derecha, se desplegará el listado.

Si quisiéramos filtrar todos los registros que cumplen una Y otras condiciones, los criterios se digitan en la misma fila; por ejemplo se puede filtrar las ventas del Lunes, realizadas en la tienda Lago Plaza y cuya forma de pago es Efectivo. En este caso, en A2 se digita Lunes, en I2, FormaPago, Efectivo y en Tienda, Lago Plaza, exactamente como aparecen en los datos (mayúscula y/o minúscula).

Vamos al primer ejemplo.

Abra el archivo "Filtro.xlsx" haciendo clic aquí


En esta hoja observamos similares datos que el archivo tratado en la sesión anterior excepto que en la última columna tenemos los nombres de diferentes tiendas.

Vamos a extraer todas las ventas del día Lunes y dejarlas en una nueva hoja que llamaremos VentasLunes.
Para ello empiece insertando una nueva hoja y cambiando su nombre por "VentasLunes".

Tome nota de lo siguiente:

Si quisiéramos filtrar todos los registros que cumplen una "Y" otras condiciones, los criterios se digitan en la misma fila; por ejemplo se puede filtrar las ventas del "Lunes", realizadas en la tienda "Lago Plaza" y cuya forma de pago es "Efectivo".
En este caso, en A2 se digita Lunes, en I2, FormaPago, Efectivo y en Tienda, Lago Plaza, exactamente como aparecen en los datos (mayúscula y/o minúscula).

Si por el contrario quisiéramos las ventas del Lunes o Sábado, cada criterio se debe colocar uno en cada fila; en este caso, en A1: Dia; en A2: Lunes y en A3: Sábado.

Por ejemplo si se desea las ventas del Lunes o Miércoles realizadas en Mega Plaza o Plaza Norte pero en Efectivo; haremos lo siguiente:

Ante todo, el rango de datos:
Según los datos, el rango es A2:K5529.
Puesto que nuestro rango de criterio va a estar en otra hoja, debemos darle nombre a dicho rango:
Seleccione el rango A2:K5529. Usemos: [Formulas] - [Nombres definidos] - [Asgnar nombre].
En la ventana que salga, ingresar RDatos en el cuadro de texto [Nombre].


Ahora pasamos a definir el rango de criterios.

Colocaremos los nombres de los campos: En A1: Tienda. En B1: Dia. En C1 FormaPago.
Según el pedido, se trata de usar varias filas:
Cuando la tienda es Lago Plaza, debemos tener dos filas: Para Lunes y Miercoles
Cuando la tienda es Plaza Norte, debemos tener otras dos filas: Para Lunes y Miercoles
En cuanto a Efectivo, todas las 4 filas de criterio deben contener Efectivo.

Según esto nuestro rango de criterios debe ser igual a como se aprecia en la siguiente imagen.


Nuestro rango de salida vamos a iniciarla en la celda A10 de esta misma hoja.

Estando preparado las tres áreas, pasamos a ejecutar el procedimiento para realizar el filtrado.


Estando en esta nueva hoja, use la secuencia: [Datos] – [Avanzadas] de [Ordenar y filtrar].
En la ventana de diálogo que salga seleccione la opción [Copiar a otro lugar]. En [Rango de la lista] Digite RDatos (nombre de rango de los datos).
En rango de criterios debemos digitar el rango A1:C3.
En [Copiar a] haga clic dentro del rectángulo en blanco y luego clic en "A10" para indicarle que el reporte debe emitirlo a partir de la celda A1 hacia abajo, en la misma hoja donde se encuentra el rango de criterio.
Aquí también podemos indicarle una nueva hoja.
La imagen muestra dicha ventana de diálogo.

Siguiente ejemplo


Extraer las ventas realizadas los días Lunes o Jueves, en efectivo, correspondientes a las tiendas Lago Plaza o Plaza Norte y cuyo monto total está entre 1800 y 2200 inclusive y fueron atendidos por Báslavi

Inserte una nueva hoja. Déle por nombre Reporte1. Copie los nombres de la cabecera de la hoja de datos y péguelos en la primera fila de la nueva hoja, empezando en A1.

Como se trata de las ventas de Lunes o Jueves y de las Tiendas Lago Plaza o Plaza Norte,
entonces habrá dos filas por Lunes y dos por Jueves. En cada par de filas Plaza Norte y Lago Plaza.

Y ¿Cómo fijamos el criterio de fijar ">= 1800" y "<=2200" ?

Este tipo de requerimientos implica duplicar un campo o columna con la misma cabecera.
En la primera ingresamos ">= 1800" y en la segunda, "<=2200".

Y en cuanto a "Efectivo" y el vendedor "Báslavi" debemos ingresarlo repetido en todas las filas.

Use el procedimiento: [Datos] - [Ordenar y Filtrar] - [Avanzadas]. La ventana emergente complete seg%uacute;n se indica en la siguiente imagen.


Al hacer clic en [Aceptar] debe obtener un listado similar a la siguiente imagen.


Guarde su archivo con el nombre "filtro-a.xlsx".


Siguiente sesión