Haga coincidir un encabezado de columna (de una ubicación no específica) con el contenido de la columna y obtenga todos los encabezados de fila

Haga coincidir un encabezado de columna (de una ubicación no específica) con el contenido de la columna y obtenga todos los encabezados de fila

Estoy usando Excel 2016 en Windows 8.1.

Quiero poder hacer coincidir dos criterios, donde un criterio es el encabezado de una columna y el otro es el contenido de la celda que puede aparecer cualquier cantidad de veces dentro de esa columna, y devolver varios encabezados de fila como resultados.

En mi ejemplo, quiero poder ingresar el nombre de una fruta (los encabezados de las columnas) y una calidad ('buena' o 'mala') en las celdas B6 y B7, y recibir las características (encabezados de las filas) que coincidan con esa fruta. y calidad. Si le doy "manzanas" y "bueno", quiero que devuelva "apariencia" y "sabor" (y no "precio"), por ejemplo.

He usado Index Match antes y he oído hablar del uso de fórmulas de matriz para trabajar con rangos de celdas. Pero no puedo entender cómo combinar todo esto, especialmente porque todos los tutoriales que he encontrado tratan sobre cómo comparar un encabezado de fila y un encabezado de columna, y encontrar las celdas resultantes. Además, no quiero "codificar" una referencia a un encabezado de columna determinado porque es posible que no siempre quiera hacer coincidir "Manzanas".

Probé una tabla dinámica y no fue muy elegante (mis datos reales tienen 5 elementos de "calidad", no solo 2).

Captura de pantalla de una tabla de ejemplo

   A           B         C        D         E        F
1            | Apples | Bananas | Lemons | Mangos | Oranges
-----------------------------------------------------------
2 Appearance | good   | good    | bad    | bad    | good
 ----------------------------------------------------------
3 Flavour    | good   | good    | bad    | good   | good
 ----------------------------------------------------------
4 Price      | bad    | good    | good   | bad    | good
----------------------------------------------------------
5            |        |         |        |        | 
----------------------------------------------------------  
6 Fruit:     | apples |         |        |        |
----------------------------------------------------------
7 Quality:   | good   |         |        |        |             
----------------------------------------------------------
8            |        |         |        |        |     
----------------------------------------------------------  
9 Results:   |        |         |        |        |         
----------------------------------------------------------

Respuesta1

Esta es una variación de lo que propuso @Scott Craner, pero puede funcionar para usted.

Contenidos de columna para encabezados de fila

Agregué marcadores de posición para cualidades adicionales. Coloque esta fórmula en B11 y luego arrastre hacia abajo varias filas para igualar la cantidad de cualidades que tiene.

=IF(INDEX($B2:$F2,,MATCH($B$8,$B$1:$F$1))=$B$9,$A2,"")

Si no le gusta el aspecto de Resultados1 y realmente desea que los valores estén en una celda, coloque esta fórmula en B18 y oculte las filas 11 a 15.

=IF(B11="","",B11&"//") & IF(B12="","",B12&"//") & IF(B13="","",B13&"//") & IF(B14="","",B14&"//") & IF(B15="","",B15&"//")

Sustituye lo que quieras como separador por "//".

Respuesta2

Esto recorrerá las celdas y devolverá todos los números de fila que coincidan con el ÍNDICE, que luego devolverá el valor.

Pon esto en B9:

=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$4)/(($B$2:$F$4=$B$7)*($B$1:$F$1=$B$6)),COLUMN(A:A))),"")

Y copie lo suficiente para tener en cuenta todas las características.

ingrese la descripción de la imagen aquí

información relacionada