2

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

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

我使用indirecttable1)到了一半,但是我需要提取标题行和第一列,这样我就可以使用类似的东西

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

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

4

2 回答 2

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))
于 2013-02-21T15:32:24.147 回答
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)
于 2013-02-21T08:52:51.330 回答