Excel возвращает весь столбец в середине формулы

В настоящее время я использую формулу индекса/соответствия в Excel

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

Вместо того, чтобы заранее знать, что данные находятся в столбце P:P, можно ли это настроить так, чтобы формула находила правильный столбец по его заголовку? Например, обнаружив, что столбец с именем SAMPLES, который обычно находится в столбце P:P, был перемещен в столбец Q:Q, формула будет использовать вместо него Q:Q?

РЕДАКТИРОВАТЬ: я добился некоторого прогресса, теперь у меня есть 1 гибкий столбец с

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

Теперь, как мне сделать столбцы B: B и F: F гибкими, зная, что столбец b всегда будет возглавляться «цветом», а столбец F - «типом».


person Tucker Rose    schedule 15.12.2016    source источник
comment
Ссылаясь на целые столбцы, эта конструкция становится невероятно ресурсоемкой. У вас действительно есть данные, простирающиеся до строки 1048576?   -  person XOR LX    schedule 15.12.2016
comment
Нет, всего около 10 тыс. строк. Но это очень изменчиво.   -  person Tucker Rose    schedule 15.12.2016
comment
Но ведь можно выбрать меньшую, но достаточную верхнюю границу? Эта формула должна обрабатывать более двух миллионов ячеек, поразительное количество для одной формулы.   -  person XOR LX    schedule 16.12.2016


Ответы (1)


Да, это идиома Index-Match-Match.

=Index(LookupRange, Row, Column)

Это полный синтаксис Index. В вашей формуле Index просматривает столбец P, Match выбирает строку, а вы не выбираете столбец, поэтому получаете столбец P.

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

Вам нужно изменить P:P, чтобы ссылаться на весь лист (или его части, содержащие данные), и добавить второй Match, чтобы найти столбец:

=Index(A:Z, Match("text2", F:F, 0), Match("SAMPLES", 1:1, 0) )
       ^^^                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
person Jack Deeth    schedule 15.12.2016
comment
На самом деле мне нужно было бы сопоставить каждый столбец, в моем примере P:P, B:B и F:F, не могли бы вы привести пример правильной структуры для этого. Спасибо - person Tucker Rose; 15.12.2016