Comment retourner la tête de colonne si une cellule est appariée?

0

Dis que j'ai une table:

description de l'image

Je veux rechercher une cellule et retourner son en-tête de colonne. Par exemple, si je recherche Orange, le résultat est Fruit. Je peux y parvenir en utilisant le niché si ( E2est Orangeici):

=IF(NOT(ISERROR(MATCH(E2,A1:A4,0))),A1,IF(NOT(ISERROR(MATCH(E2,B1:B3,0))),B1,C1))

Mais dans une grande table c'est impossible. De plus, je ne peux pas savoir si une erreur survient. Y a-t-il une meilleure façon d'obtenir le résultat? Je ne sais pas combien de lignes chaque colonne a. Il n'y a pas de données dupliquées dans la table. Le tableau ne commence pas dedans A1et peut être déplacé ultérieurement dans une autre feuille de calcul.

Ooker
la source

Réponses:

3

Si Aggregate ne se trouve pas entre les fonctions que vous pouvez utiliser:
=OFFSET(A1,0,SUMPRODUCT(--(A2:C4=E2)*COLUMN(A2:C4))-1)
Sumproduct déterminera le numéro de colonne pour la valeur correspondante que vous recherchez.
Offset renverra l'en-tête de la colonne équivalente.

entrez la description de l'image ici

Yass
la source
Je trouve que changer la formule pour =OFFSET(A1,0,SUMPRODUCT(--(A2:C4=E2)*COLUMN(A2:C4))-COLUMN(A2:C4))nous permettre de déplacer la table, mais je ne sais pas pourquoi
Ooker
1

Utilisez AGGREGATE () pour renvoyer le numéro de colonne à une fonction INDEX ():

=INDEX(1:1,AGGREGATE(15,6,COLUMN($A$2:$C$4)/($A$2:$C$4=E2),1))

entrez la description de l'image ici

Scott Craner
la source