好吧,我想弄清楚下面是否可能,以便我可以在以後的項目中使用它。我一直在示例工作簿中測試和處理此代碼,這就是文件名稱爲垃圾的原因。所以不要評價我。Vlookup函數的動態table_array值
我有一個VLOOKUP
:
=VLOOKUP(A6,[dfhdfh.xlsx]Sheet1!$A:$B,2,FALSE)
此功能目前的偉大工程。但我想將函數中的靜態值table_array
替換爲單元格引用,其中我可以隨意輸入不同的文件名。
東西線沿線的:
=VLOOKUP(A3,CONCATENATE("[",F2,"]","Sheet1!$A:$B"),2,FALSE)
凡F2包含文件名和擴展名dfhdfh.xlsx
但每當我試圖執行我的VLOOKUP
與它的嵌套CONCATENATE
功能,我得到一個#VALUE!
錯誤。是什麼賦予了?
如果您的工作簿'dfhdfh.xlsx'始終是敞開的,你可以使用'= VLOOKUP(A3,INDIRECT( 「[」 F2& 「] Sheet 1中$ A:$ B」),2,0)'。但是如果你的wb關閉了,'INDIRECT'不起作用。在這種情況下,你需要vba –
謝謝,我很欣賞解決方法。你能解釋爲什麼concatenate函數在這裏不起作用嗎?這就是我真正想要的 – FluffyKittens
首先,「CONCATENATE(A1,A2)」與「A1&A2」相同。其次,實際上concatenation的作品和'CONCATENATE(「[」,F2,「]」,「Sheet1!$ A:$ B」)的結果是''[dfhdfh.xlsx] Sheet1!$ A:$ B「 ',但是excel不會將這個字符串識別爲引用,所以你需要爲此使用'Indirect':'INDIRECT(CONCATENATE(「[」,F2,「]」,「Sheet1!$ A:$ B」) )'給出正確的參考,整個公式將爲:'= VLOOKUP(A3,INDIRECT(CONCATENATE(「[」,F2,「]」,「Sheet1!$ A:$ B」)),2,FALSE)。但是,使用第一點,你可以使這個公式更短:'= VLOOKUP(A3,INDIRECT(「[」&F2&「] Sheet1!$ A:$ B」),2,FALSE)' –