La Función FILTRO, normalmente no permite devolver un resultado con columnas separadas. Pero al incluir la función FILTRO en otras funciones, podemos crear un filtro dinámico en columnas separadas..
Actualizados
- Si su versión de Excel 365 tiene la Función ELEGIR COLLAS, En este artículo se explica una solución más sencilla..
Construir una matriz en la memoria
Cualquiera que sea la técnica que elijamos, tendremos que confiar en la creación de una matriz en la memoria (o también llamada matriz).
La función FILTRO ya devuelve una matriz. Y nos basaremos en esta característica para construir nuestra tabla en memoria. Pero eso no es todo, también tendremos que construir otro tipo de mesa, una matriz, para gestionar las columnas que se devolverán.
Este punto no es trivial para el futuro.. Porque dependiendo de las configuraciones de tu computadora, el delimitador puede ser:
- ya sea el punto (.)
- ya sea la coma (,)
- ya sea la barra invertida (\)
Con la computadora que uso, el separador es el punto.
= {4.0.1.2}

La única forma de saber cuál es el delimitador en su computadora es probar cada símbolo para encontrar cuál es el correcto. Si no,usar VBA y ejecute la siguiente instrucción en la ventana de ejecución.
?Application.International(xlColumnSeparator)

Ésta es la única técnica para saber qué símbolo utilizar. La información no está presente en las opciones de Excel.
Presentación del problema a abordar.
Contamos con una tabla de 5 columnas que representa las ventas que hemos realizado a nuestros clientes.

Queremos filtrar por la columna de fechas pero queremos devolver las otras 4 columnas (¿Tienda, Fruta, Cantidad y Liquidado?). Para ello existen 3 técnicas diferentes que detallaremos.
Utilice la función ELEGIR
En su uso normal, la función ELEGIR devuelve el valor n de una lista. Por ejemplo, la siguiente función devuelve el miércoles (el tercer día de la lista): =CHOISIR(3;"Lundi";"Mardi";"Mercredi";"Jeudi";"Vendredi")
Más en uso más complejo, podemos reemplazar el primer parámetro con una matriz y así devolver una matriz con un orden de columnas diferente.
=CHOISIR({1.2.3.4};A2:A16;B2:B16;D2:D16;E2:E16)

Entonces, todo lo que tenemos que hacer es usar esta fórmula como primer parámetro de la función FILTRO, para devolver nuestros datos filtrados con columnas separadas.
=FILTRE(CHOISIR({1.2.3.4};A2:A16;B2:B16;D2:D16;E2:E16);C2:C16=G2)

Si desea cambiar el orden, simplemente seleccione las columnas en el orden que desee.
=FILTRE(CHOISIR({1.2.3.4};B2:B16;D2:D16;A2:A16;E2:E16);C2:C16=G2)

Construcción con la función ÍNDICE
La función ÍNDICE Devuelve la posición de un valor en la intersección de una fila y una columna.

Pero también podemos reemplazar los parámetros 2 y 3 de la función ÍNDICE con una matriz de filas y una matriz de columnas.
- Primer parámetro: La función FILTRO sobre toda la tabla;
FILTRE(A2:E16;C2:C16=G2) - Segundo parámetro: el número de filas a devolver usando una combinación entre funciones NB.SI.ENS et SECUENCIA.
SEQUENCE(NB.SI.ENS(C2:C16;G2)) - Tercer parámetro: una matriz que representa los números de columna a devolver.
{1.2.4.5}
La fórmula completa es la siguiente:
=INDEX(FILTRE(A2:E16;C2:C16=G2);SEQUENCE(NB.SI.ENS(C2:C16;G2));{1.2.4.5})

Con esta técnica, es muy fácil intercambiar columnas simplemente cambiando el orden de las columnas que se devolverán, como {2.5.1.4}. Encontrará información adicional sobre la función ELEGIR en el sitio web de Microsoft.
07/02/2024 a las 12:08
Hola,
Simplemente recomiendo la combinación de FILTER y CHOISIRCOLS.
cordialmente
30/01/2023 a las 10:31
Hola,
Gracias por la demostración.
¿Funciona esto si uso una tabla de otra hoja?
Cdt, Salim
30/01/2023 a las 13:07
Sí, no hay ninguna razón por la que no debería funcionar.
07/05/2021 a las 11:34
Hola,
Cuando hago clic en Filtrar, el filtro solo aparece en una columna y no puedo crear un filtro en otra columna (los datos están desclasificados, solo quiero filtrar la información columna por columna). Pero cuando vuelvo a hacer clic en filtrar, me quita el filtro que puse, y no puedo seleccionar varias columnas para aplicarles un filtro simultáneamente.
¿Tienes algún consejo?
Merci d'avance,
Valérie