Fórmula genérica
=FILTER(data,logic)
Resumen
Para filtrar datos organizados horizontalmente en columnas, puede utilizar la función FILTRO. En el ejemplo que se muestra, la fórmula en C9 es:
=TRANSPOSE(FILTER(data,group="fox"))
donde los datos (C4: L6) y el grupo (C5: L5) se denominan rangos.
Explicación
Nota: FILTRO es una nueva función de matriz dinámica en Excel 365. En otras versiones de Excel, existen alternativas, pero son más complejas.
Hay diez columnas de datos en el rango C4: L6. El objetivo es filtrar estos datos horizontales y extraer solo columnas (registros) donde el grupo es "zorro". Para mayor comodidad y legibilidad, la hoja de trabajo contiene tres rangos con nombre: datos (C4: L6) y grupo (C5: L5) y edad (C6: L6).
La función FILTRO se puede utilizar para extraer datos ordenados verticalmente (en filas) u horizontalmente (en columnas). FILTER devolverá los datos coincidentes en la misma orientación. No se requiere ninguna configuración especial. En el ejemplo que se muestra, la fórmula en C9 es:
=FILTER(data,group="fox")
Trabajando desde adentro hacia afuera, el argumento de inclusión para FILTER es una expresión lógica:
group="fox" // test for "fox"
Cuando se evalúa la expresión lógica, devuelve una matriz de 10 valores VERDADERO y FALSO:
(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE)
Nota: las comas (,) en esta matriz indican columnas. El punto y coma (;) indicaría filas.
La matriz contiene un valor por columna en los datos, y cada VERDADERO corresponde a una columna donde el grupo es "zorro". Esta matriz se devuelve directamente a FILTER como argumento de inclusión y realiza el filtrado real:
FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))
Solo los datos que corresponden a valores VERDADEROS pasan el filtro, por lo que FILTRO devuelve las 6 columnas donde el grupo es "zorro". FILTER devuelve estos datos en la estructura horizontal original. Dado que FILTER es una función de matriz dinámica, los resultados se extienden al rango C9: H11.
Esta es una solución dinámica: si algún dato de origen en C4: L6 cambia, los resultados de FILTER se actualizan automáticamente.
Transponer a formato vertical
Para transponer los resultados del filtro a un formato vertical (filas), puede ajustar la función TRANSPONER alrededor de la función FILTRO de esta manera:
=TRANSPOSE(FILTER(data,group="fox"))
El resultado se ve así:
Esta fórmula se explica con más detalle aquí.
Filtrar por edad
La misma fórmula básica se puede utilizar para filtrar los datos de diferentes formas. Por ejemplo, para filtrar datos para mostrar solo columnas en las que la edad es menor de 22, puede usar una fórmula como esta:
=FILTER(data,age<22)
FILTRO devuelve las cuatro columnas coincidentes de datos: