Fórmula de Excel: filtrar y transponer de horizontal a vertical -

Tabla de contenido

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.

Articulos interesantes...