Excel公式:从多个命名范围查找

时间:2013-02-21 07:50:12

标签: excel excel-formula excel-indirect excel-match

我将3个表存储为命名范围 用户使用下拉框选择要搜索的范围。命名范围为Table1Table2Table 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

然后他们从标题行中选择一个值,从第一列中选​​择一个值 即,用户选择Table30.895。我的公式应该返回1.16

我在那里使用indirecttable1),但我需要提取标题行和第一列,以便我可以使用类似

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

知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

INDIRECT(pickedtable)应该可以正常工作以获取表格但是要从表格中获取第一列或第一行,您可以使用INDEX,因此按照原始方法使用此公式

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

或者您可以根据chris neilsen的方法使用HLOOKUPVLOOKUP缩短,例如:与VLOOKUP

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

答案 1 :(得分:0)

试试这个

=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)