
Fórmula genérica
=TRANSPOSE(FILTER(data,logic))
Resumen
Para filtrar datos dispuestos horizontalmente y mostrar el resultado en formato vertical, puede utilizar la función FILTRO junto con TRANSPONER. En el ejemplo que se muestra, la fórmula en B10 es:
=TRANSPOSE(FILTER(data,group="fox"))
donde los datos (C4: L6) y el grupo (C5: L5) se denominan rangos.
Explicación
El objetivo es filtrar los datos horizontales en el rango C4: L6 para extraer miembros del grupo "fox" y mostrar los resultados con los datos transpuestos a un formato vertical. Para mayor comodidad y legibilidad, tenemos dos rangos con nombre para trabajar: datos (C4: L6) y grupo (C5: L5).
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. La fórmula en B5 es:
=TRANSPOSE(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 registro 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, donde realiza el filtrado real:
FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))
Solo los datos de las columnas que corresponden a VERDADERO pasan por el filtro, por lo que el resultado son los datos de las seis personas del grupo "zorro". FILTER devuelve estos datos en la estructura horizontal original. Debido a que queremos mostrar los resultados del FILTRO en formato vertical, la función TRANSPONER se envuelve alrededor de la función FILTRO:
=TRANSPOSE(FILTER(data,group="fox"))
La función TRANSPONER transpone los datos y devuelve una matriz vertical como resultado final en la celda B10. Dado que FILTER es una función de matriz dinámica, los resultados se extienden al rango B10: D15. Si los datos en los datos (C4: L6) cambian, el resultado de FILTRO se actualiza automáticamente.