【发布时间】:2019-07-12 16:31:21
【问题描述】:
如何在查找表数组是动态的情况下使用 vlookup 函数?我找到需要使用 MATCH 函数查找值的列。您能否建议如何将来自 MATCH 的整数值放入查找数组函数中。
【问题讨论】:
-
您可以使用间接函数。使用 InDirect 函数中的变量构造地址。
标签: excel vba excel-formula
如何在查找表数组是动态的情况下使用 vlookup 函数?我找到需要使用 MATCH 函数查找值的列。您能否建议如何将来自 MATCH 的整数值放入查找数组函数中。
【问题讨论】:
标签: excel vba excel-formula
我不确定这是否就是您要问的全部内容,但如果您要尝试匹配列,则可以只包含电子表格的整个范围。或者您可以使用索引函数来调整大小。很多选择。
为了直接回答您的问题,这里有一个动态的 vlookup,它将包括任何可能的行(因为它一直延伸到电子表格的底部),并使用 Match 来查找列标题 DONKEY。不是很优雅,但它会让你开始。在这种情况下,公式将返回 49。
如果你想要,这里是公式:=VLOOKUP("California",$I$5:$XFD$1048576,MATCH("Donkey",i4:$XFD$4,0),0)
更新不知何故,上面的答案得到了两个赞,所以我将通过解释Index Function 可能是比 Vlookup 更好的方法来做出更大的努力来增强这个答案。公式如下所示:=INDEX(J5:M7,MATCH("Cobra Kia",I5:I7,0),MATCH("Donkey",J4:M4,0),1)
此外,OP 标记了VBA,尽管它似乎不需要这样做。但是,如果使用 VBA 并尝试进行 MATCH,请始终使用 Application.Match 方法,即使它不会像 Application.WorksheetFunction.Match 那样自动填充。我也写过in this answer...(仍然不如我的SHA256!)
【讨论】: