Vamos a explicar los Filtros Avanzados pero que posteriormente lo aplicaremos mediante un botón de comando que nos ejecutará una macro que la grabaremos.
Primero tenemos que tener tres hojas, una la llamaremos Datos, otra Criterios y la tercera Resultados, que en esta última es donde tendremos los resultados de realizar el filtro aplicado.

En este caso en la hoja Datos tenemos 40 registros, pero lo normal es que en una tabla de productos tengamos una gran cantidad de registros.
Seguidamente tenemos que copiar la cabecera de la base de datos, que en este caso es desde la celda A1 hasta la celda G1; y la copiaremos en la hoja llamada Criterios.
Luego continuaremos nombrando los rangos, es decir en la hoja Criterios desde la celda A1 hasta la celda G2 la nombraremos como Criterios. Posteriormente nos desplazaremos a la Hoja Datos y seleccionaremos toda la base de datos con los títulos y nombraremos todo el rango con el nombre BBDD. El nombramiento de ambos rangos no es necesario pero nos ayudará posteriormente.
Ahora comenzaremos con la grabación de la macro para crear el filtro avanzado, que ésto nos ayudará automatizar la tarea que queremos realizar.
Primero nos colocaremos en la hoja Criterios y en este ejemplo nos pondremos en la celda E2 de pais, y escribiremos "ESPAÑA", con esto y una vez aplicado el filtro avanzado nos saldrá en la Hoja Resultados todos los productos de España.
Continuaremos grabando una macro, por lo que nos iremos a la pestalla Desarrollador, grabar macro, le daremos un nombre en este caso le he puesto Filtro_Avanzado, pero ésto no es necesario. Continuamos haciendo click en la Hoja Resultados y en la celda A1, con el objeto que nos carge los resultados en esta hoja. Y ahora vamos a la ficha Datos y hacemos click en filtro avanzado.
Nos saldrá un formulario en el cual existen en la parte de arriba dos botones de radio, y se encuentra seleccionado "Filtrar la lista sin moverla a otro lugar", pues nosotro haremos click en el otro botón de radio que nos pone "Copiar a otro lugar".

Continuamos eligiendo el rango de la lista, que en este caso tenemos dos opciones, una de ellas es escribir BBDD que nos elegirá el rango nombrado con anterioridad o dando en la flecha arriba y nos desplazaremos a la hoja Datos y elegiremos toda la base de datos incluido los títulos. Continuamos volviendo a dar a la flecha, y veremos como nos ha introducido el rango. Seguimos escribiendo en el rango de criterios poniendo Criterios o eligiendo en la hoja Criterios desde A1 hasta G2.
Seguimos eligiendo Copiar A, y elegiremos la Hoja Resultados, la celda A1 y posteriormente le daremos al botón Aceptar y nos habrá hecho el filtro avanzado. Después daremos a stop de la macro creada.
Seguidamente nos vamos a la Hoja Criterios y crearemos un botón de comando de ActiveX, que esto lo explicamos en la anterior entrada sobre la creación de una macro. Este botón una vez creado, modificamos la propiedad Caption y le ponemos Filtro Avanzado; en el código del botón le hemos puesto simplemente el nombre de la macro y con esto nos ejecutará la macro y automatizaremos el filtro, pero tiene un fallo, ya que la macro lo primero que tendría que hacer es borrar el filtro anterior que ha podido hacer y esto lo haremos introduciendo el siguiente código después de Sheets("RESULTADOS").Select:
Range("A:G").Clear
Y así nos quedará el código de la macro. Por lo que si cambiamos los criterios y le damos al botón que hemos creado con el título de Filtro Avanzado nos desplazará a la hoja Resultados, nos borrará el filtro anterior y nos filtrará el nuevo, actualizando lo buscado.
Espero que se haya entendido correctamente, ya que para mi parecer el filtro avanzado es muy útil.