Я хотел бы знать, как использовать комбинацию Index/Match для извлечения данных из одного столбца в другой, ссылаясь на несколько критериев. Судя по приложенному изображению, столбец R должен быть автоматически заполнен (с помощью формулы) значениями из столбца A на основе соответствующей ссылки в столбце S.
Столбец S будет совпадать со строкой 1, чтобы найти положение его столбца в массиве B2:K11. Затем в соответствующем столбце Excel должен найти номер строки, содержащий любое значение, равное или большее 0 (или не пустое). Когда он находит строку со значением, он перетаскивает значение из столбца A в столбец R.
Например, в R2 он посмотрит на S2 и увидит, что ему нужно местоположение для X1. Он пойдет к массиву и найдет X1 в B1. Он пойдет вниз по столбцу и найдет значение в B3, поскольку там есть «10». Он втянет A3 в R2.
Я пытаюсь сделать это без использования VBA и максимально чисто и эффективно (т.е., если возможно, без вспомогательных столбцов и с меньшей вычислительной мощностью). Я предоставил пример изображения того, что я пытаюсь сделать, поскольку я не могу загрузить фактический файл.
Я пробовал различные комбинации индекса/соответствия, но не смог изменить массив, чтобы он не был привязан к определенному столбцу. Я также пробовал ADDRESS() для создания пользовательского массива, но это не сработало. Попытки формулы показаны ниже:
В R2, чтобы найти расположение столбца: =MATCH(S2,A1:K1)
Чтобы найти номер строки в B2: B11 (один столбец):
{=MATCH(TRUE,ISNUMBER(B2:B11),0}
{=MATCH(TRUE,B2:B11>=0,0)}
=MATCH((LOOKUP(2,1/(B$2:B$11<>""),B$2:B$11)),B$2:B$11,0)
Мне нужно объединить их, но массив столбца для просмотра должен быть адресован столбцу, который был сопоставлен.
Чтобы проиндексировать столбец A:
=INDEX($A:$A,ROW,0)
В общем и целом:
=INDEX(A:A,(=MATCH((LOOKUP(2,1/(COLUMN NUMBER MATCHED<>""),COLUMN NUMBER MATCHED)),COLUMN NUMBER MATCHED,0)),0)


Если значения в вашем массиве все числовые, вы можете использовать:
R2: =LOOKUP(9.9+307,INDEX($B:$K,0,MATCH(S2,$B$1:$K$1,0)),$A:$A)
Если значения могут быть числовыми или буквенными, попробуйте:
R2: =LOOKUP(2,1/LEN(INDEX($B:$K,0,MATCH(S2,$B$1:$K$1,0))),$A:$A)
В каждом случае формула будет соответствовать последней записи в конкретном столбце с меткой X.
Спасибо за вашу помощь! Это именно то, что я искал.