У меня есть формула INDEX, как это:

=INDEX(Data3,MATCH(G4,Sheet2!$A$14:$A$17,0),VLOOKUP(F4,Threshold,2,TRUE))

Однако я хочу применить это к данным, из которых таблица, для которой формула INDEX возвращает данные, может быть одной из трех таблиц Data1, Data2 или Data3 в зависимости от третьего фактора.

Я думал, что смогу решить это следующим образом:

=INDEX(VLOOKUP(D4,ChargeYear,2,TRUE),MATCH(G4,Sheet2!$A$14:$A$17,0),VLOOKUP(F4,Threshold,2,TRUE))

Первый VLOOKUP возвращает либо Data1, Data2 или Data3 из таблицы ChargeYear, но он возвращает возвращаемое значение в двойных кавычках, потому что это текстовое значение (я полагаю), и поэтому формула INDEX не распознает это как имя таблицы. Есть ли способ обойти это?

1 ответ1

0

Использование косвенного было бы вариантом -

=INDEX(INDIRECT(VLOOKUP(1,Table4,2,0)&"[#ALL]"),MATCH("c",INDIRECT(VLOOKUP(1,Table4,2,0)&"[[#All],[Column1]]")),2)

Мои картинки отображаются неправильно, поэтому здесь есть ссылки на формулы и результаты.

Table4 начинается в A1 ; Таблица 5 в A6 ; и Таблица6 в D6 .

Вы можете видеть, что =VLOOKUP(1,Table4,2,0) дает вам ссылку на одну из таблиц, перечисленных в таблице.

Итак, мы расширим это до =MATCH("c",INDIRECT(VLOOKUP(1,Table4,2,0)&"[[#All],[Column1]]")) чтобы использовать эту таблицу для соответствия "c". Работает с indirect .

Теперь разверните его до индекса / соответствия следующим образом: =INDEX(INDIRECT(VLOOKUP(1,Table4,2,0)&"[#ALL]"),MATCH("c",INDIRECT(VLOOKUP(1,Table4,2,0)&"[[#All],[Column1]]")),2)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .