Формула Excel: поиск из нескольких именованных диапазонов

У меня есть 3 таблицы, хранящиеся в виде именованных диапазонов.
Пользователь выбирает диапазон для поиска с помощью раскрывающегося списка. Именованные диапазоны: Table1, Table2 и Table 3.

Таблица 1

    0.7     0.8     0.9
50  1.08    1.06    1.04
70  1.08    1.06    1.05
95  1.08    1.07    1.05
120 1.09    1.07    1.05

Таблица 2

    0.7     0.8     0.9
16  1.06    1.04    1.03
25  1.06    1.05    1.03
35  1.06    1.05    1.03

Таблица 3

    0.7     0.8     0.9
50  1.21    1.16    1.11
70  1.22    1.16    1.12
95  1.22    1.16    1.12
120 1.22    1.16    1.12

Затем они выбирают значение из строки заголовка и значение из первого столбца.
т. е. пользователь выбирает Table3, 0.8 и 95. Моя формула должна возвращать 1.16.

Я на полпути, используя indirect (table1), однако мне нужно извлечь строку заголовка и первый столбец, чтобы я мог использовать что-то вроде

=INDEX(INDIRECT(pickedtable),MATCH(picked colref,INDIRECT(pickedtable:1)), MATCH(picked rowref,INDIRECT(1:pickedtable)))

Есть идеи, как этого добиться?


person Benaiah    schedule 21.02.2013    source источник
comment
Вы говорите о таблицах Excel, т.е. вы создали их с помощью Вставка->Таблица? Можете ли вы вставить ссылку на скриншот для большей ясности?   -  person Peter Albert    schedule 21.02.2013


Ответы (2)


INDIRECT(pickedtable) должно работать нормально, чтобы получить таблицу, но для получения первого столбца или строки из таблицы вы можете использовать INDEX с этим, поэтому, следуя вашему первоначальному подходу, эта формула должна работать

=INDEX(INDIRECT(pickedtable),MATCH(pickedcolref,INDEX(INDIRECT(pickedtable),0,1),0),MATCH(pickedrowref,INDEX(INDIRECT(pickedtable),1,0),0))

или вы можете использовать HLOOKUP или VLOOKUP для сокращения в соответствии с подходом Криса Нильсена, например. с VLOOKUP

=VLOOKUP(pickedcolref,INDIRECT(pickedtable),MATCH(pickedrowref,INDEX(INDIRECT(pickedtable),1,0),0))
person barry houdini    schedule 21.02.2013
comment
Я был так близок к этому, что пытался использовать индекс со смещением, но неправильно понимал синтаксис. Это именно то, что я искал. Большое спасибо!!! - person Benaiah; 22.02.2013

Попробуй это

=HLOOKUP(pickedcolref,
  IF(pickedtable=1,Table1,IF(pickedtable=2,Table2,IF(pickedtable=3,Table3,""))),
  MATCH(pickedrowref,
    OFFSET(
      IF(pickedtable=1,Table1,IF(pickedtable=2,Table2,IF(pickedtable=3,Table3,""))),
    0,0,,1)
  ,0)
 ,FALSE)
person chris neilsen    schedule 21.02.2013
comment
спасибо, я не знал, как правильно использовать смещение, пока не увидел этот пост. - person Benaiah; 22.02.2013