2014-01-14 106 views
1

我想要使用INDIRECT()設置基於定義的數值的VLOOKUP()函數的範圍。當逐步通過VLOOKUP()公式時,INDIRECT()函數返回出於我的目的似乎是可接受的範圍。但是,運行公式時,將返回「#N/A」錯誤,我不知道爲什麼。爲了提供更多風味,我使用LEFT()和ADDRESS()來確定基於頂部行中單獨值的MATCH()的列標題字母。使用固定的偏移量,MATCH()函數返回正確的列標題,並提供範圍大小的常量。下面是我的公式:使用INDIRECT()設置動態範圍與VLOOKUP()

=VLOOKUP(J2,INDIRECT("$"&LEFT(ADDRESS(1,MATCH($H2,ZAS_Lookup,0)+8,4),1+(MATCH($H2,ZAS_Lookup,0)+8>26))&"$1:$"&LEFT(ADDRESS(1,MATCH($H2,ZAS_Lookup,0)+9,4),1+(MATCH($H2,ZAS_Lookup,0)+9>26))&"$29"),2,TRUE) 

正如我提到的,通過對最終計算之前的最後一步步進時,公式看起來好像它會下來凝結於以下內容:

=VLOOKUP(5,$DW$1:$DX$29,2,TRUE) 

這不是這種情況,但是,因爲它返回#N/A。任何想法爲什麼?我是否需要使用不同的功能來動態設置範圍?

+0

如果直接使用'= VLOOKUP(5,$ DW $ 1:$ DX $ 29,2,TRUE)',你會得到什麼? –

+0

「如果_lookup_value_小於_table_array_第一列中的最小值,則VLOOKUP會從MS文檔返回錯誤值」#N/A'「。這是真的嗎? http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx –

+0

使用它直接工作,因此我爲什麼如此困惑。但是,我忽略了這樣一個事實,即當您使用INDIRECT時,需要包含選項卡名稱,即使該表與查找在同一個選項卡上,我也相信。 – Nate

回答

0

我意識到我需要命名錶所在的選項卡。簡單地設置範圍是不夠的 - 我還需要告訴Excel表格的表格。