已解决,我犯了一个“ MATCH”错误,谢谢大家!
我每次都有不确定的工作表,名称也不确定,但是我要搜索的目标工作表始终是倒数第三名
所以在VBA中,我做了这个UDF:
Function SHEETNAME() As String
Dim L As Long
L = ThisWorkbook.Worksheets.Count
SHEETNAME = Sheets(L - 2).Name
End Function
因此,在电子表格中调用= SHEETNAME()将始终返回目标工作表的名称
然后,不幸的是,我需要的确切值比VLookup(第3列)可以达到的值低1行
=VLOOKUP($K$2,INDIRECT("'" & sheetname() & "'!"&"A2:X30"), 3, 0) <--- I need 1 row below this result
所以我将公式转换为INDEX + MATCH
=INDEX(INDIRECT("'" & sheetname() & "'!" & "A2:X30"),MATCH($K$2,INDIRECT("'" & sheetname() & "'!" & "A2:A30"),0)+1,3)
不知何故,F9中的MATCH($ K $ 2,INDIRECT(“'”&sheetname()&“'!”&“ A2:A30”),0)的结果为N / A,为什么。...
答案 0 :(得分:1)
在A:X中,您需要VLOOKUP中的第三列的值,以便它是INDEX(C:C,...)或INDEX(A:X,...,3)。 VLOOKUP始终使用第一列进行查找,因此将成为MATCH(K2,A:A,0)。
=INDEX(INDIRECT("'" & sheetname() & "'!A2:X30"), MATCH($K$2, INDIRECT("'" & sheetname() & "'!A2:A30"), 0)+1, 3)
不要将$的INDIRECT字符串复杂化。什么也不会改变字符串。