Excel公式:从多个命名区域查找



我有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)))

知道如何做到这一点吗?

INDIRECT(pickedtable)应该可以获得表,但要获得表中的第一列或第一行,可以使用INDEX,因此按照您最初的方法,这个公式应该可以使用

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

或者,您可以使用HLOOKUPVLOOKUP按照chris neilsen的方法进行缩短,例如使用VLOOKUP

=VLOOKUP(pickedcolref,INDIRECT(pickedtable),MATCH(pickedrowref,INDEX(INDIRECT(pickedtable),1,0),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)

最新更新