Excel Vlookup太慢了

时间:2014-11-24 18:01:34

标签: sql excel vlookup

我有一个Excel文件,大约10000行使用vlookup,每行8 Vlookups。它的速度非常慢。

它查找了另一个位于网上的excel文件 -

=IF(ISERROR(VLOOKUP(E12,'Filepath.xlsx]Data'!$U:BV,54,0)),"None",VLOOKUP(E12,Filepath.xlsx]Data'!$U:BV,54,0))

我环顾四周,vlookup似乎非常必要。是否存在可能使其更快的结构更改,例如SQL数据库上的vlookup?

由于

1 个答案:

答案 0 :(得分:3)

根据我的评论,在这种情况下,使用具有已排序查找范围的LOOKUP公式明显快于使用VLOOKUP快100倍,例如:如果我使用这个公式做一些速度测试

=VLOOKUP(B3, $D$3:$D$10002, 1,0)

然后使用G3:G10002包含与D3:D10002相同的值但按升序排序LOOKUP公式

=IF(LOOKUP(B3, $G$3:$G$10002) = B3, LOOKUP(B3, $G$3:$G$10002), NA())

公式产生完全相同的结果,但第二个公式始终 120-140 快于第一个,因为"二元搜索的好处"

如果我使用INDEX/MATCH等价物,即

=INDEX($D$3:$D$10002,MATCH(B3, $D$3:$D$10002,0))

然后,这实际上比VLOOKUP版本略慢,尽管如Doug所说,如果你在多个计算中使用相同的MATCH公式,那么你可以计算一次仅用于多个结果,这样可能比VLOOKUP更有效

当然,您的设置中可能还有其他因素会降低计算速度......