2013-02-21 74 views
2

我有3個存儲爲命名範圍的表。
用戶使用下拉框選擇要搜索的範圍。命名的範圍是Table1,Table2Table 3Excel公式:從多個命名範圍查找

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

任何想法如何實現這一目標?

+2

您是否在談論「Excel表」,即您使用插入 - >表創建它?你能否粘貼一個鏈接到屏幕截圖以獲得更好的清晰度? – 2013-02-21 07:54:51

回答

1

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)) 
+0

我很接近這個,我曾嘗試使用索引與偏移量,但我得到的語法錯誤。這正是我正在尋找的。謝謝堆!!! – Benaiah 2013-02-22 01:12:59

+0

+1漂亮的解決方案。 – brettdj 2013-02-23 05:01:04

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) 
+0

謝謝,我不知道如何正確使用偏移,直到我看到這篇文章。 – Benaiah 2013-02-22 01:11:09