我将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)))
知道如何实现这个目标吗?
答案 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的方法使用HLOOKUP
或VLOOKUP
缩短,例如:与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)