2016-12-15 1 views
0

J'utilise actuellement un indice/formule de correspondance dans ExcelDans Excel retour colonne entière au milieu d'une formule

=index(P:P,Match(1,B:B="text")*(F:F="text2"),0)) 

au lieu de savoir à l'avance que les données sont dans la colonne P:P, peut-il être mis en place alors la formule trouvera la bonne colonne de son titre? Par exemple, pour trouver que la colonne nommée SAMPLES qui est généralement dans la colonne P:P a été déplacée vers la colonne Q:Q, la formule utiliserait plutôt Q:Q?

EDIT: J'ai fait quelques progrès, j'ai maintenant 1 colonne étant flexible avec

=index(A:Z,match(1,(B:B="text")*(F:F="text2"),0)match("samples",1:1,0)) 

Maintenant, comment pourrais-je faire des colonnes B: B et F: F flexibles connaissent la colonne b sera toujours dirigée par "couleur" et colonne F par "type"

+0

En faisant référence à des colonnes entières, que la construction est rendu incroyablement ressources lourdes. Avez-vous vraiment des données qui s'étendent jusqu'à la rangée 1048576? –

+0

Non, seulement environ 10k lignes. Mais c'est très variable. –

+0

Mais vous pouvez certainement choisir une limite supérieure plus petite, mais suffisante? Cette formule doit traiter plus de deux millions de cellules, une quantité étonnante pour une formule unique. –

Répondre

1

Oui - c'est l'idiome Index-Match-Match.

=Index(LookupRange, Row, Column) 

C'est la syntaxe complète de Index. Dans votre formule, Index est à la recherche de la colonne P, Match est le choix de la ligne, et vous n'êtes pas le choix d'une colonne de sorte que vous obtenez la colonne P.

=Index(P:P, Match("text2", F:F, 0)) 

Vous devez changer P: P pour désigner la feuille entière (ou les parties qui ont des données), et ajouter une seconde Match pour trouver la colonne:

=Index(A:Z, Match("text2", F:F, 0), Match("SAMPLES", 1:1, 0)) 
     ^^^      ^^^^^^^^^^^^^^^^^^^^^^^^^^ 
+0

Je devrais effectivement faire correspondre pour chaque colonne, dans mon exemple P: P, B: B, et F: F, pourriez-vous me donner un exemple de ce que la structure correcte pour ce serait. Merci –