VBA:来自另一个工作簿的高效Vlookup

时间:2015-11-05 15:25:39

标签: vba runtime

我需要使用Vba从另一个工作簿上进行大约400000个单元格的Vlookup。这些单元格都在一列中。并且应写入一列。我已经知道,Vlookup是如何工作的,但是通过使用自动填充我的运行时间要高得多。你有一个建议我如何批准它?

2 个答案:

答案 0 :(得分:0)

不要使用VLookup使用索引匹配:http://www.randomwok.com/excel/how-to-use-index-match/

答案 1 :(得分:0)

如果您能够调整数据的数量,您可能会对使用二进制搜索感兴趣。自从我上次使用它以来已经有一段时间了(为团体锻炼登记计划编写代码)。 https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/implementing-binary-search-of-an-array,有助于树立背后的想法。

如果您能够按顺序对它们进行排序,比如按姓氏排序(我不确定您使用的是哪种数据),然后添加一个数字顺序以用于二进制搜索。

编辑: 二进制搜索的原因是二进制搜索是指它需要的计算时间。它需要的迭代次数是log2(400000)与400000.因此,不是400000次可能的迭代,而是使用二进制搜索最多需要19次,因为您可以看到使用的数据越多,二进制搜索就会产生更多更快。

如果您能够以允许使用二进制搜索的方式操作数据,那么这只是一种有益的方式。

因此,如果您可以向我们提供有关您正在使用的数据以及您对该数据的任何限制的更多背景信息,我们将能够提供更具建设性的反馈。