|
发表于 2014-1-24 18:02
|
显示全部楼层
本楼为最佳答案
6w个随机数测试的结果vlookup的精确匹配比sumif要快的多.
根据测试值出现的位置不同,vlookup消耗的时间差异较大.但一定比sumif用时少.
测试代码如下- Sub test()
- Randomize
- For n = 1 To 10
- With Range("a1:b60000")
- .Formula = "=rand()"
- .Value = .Value
- End With
-
- With Application.WorksheetFunction
- t = .Large(Range("a:a"), Int(60000 * Rnd + 1))
- t1 = Timer
- For i = 1 To 1000
- x = .VLookup(t, Range("a:b"), 2, 0)
- Next
- t2 = Timer
- Debug.Print "vlookup:" & t2 - t1;
-
- t1 = Timer
- For i = 1 To 1000
- x = .SumIf(Range("a:a"), t, Range("b:b"))
- Next
- t2 = Timer
- Debug.Print " sumif:" & t2 - t1
- End With
- Next
- End Sub
复制代码 结果如下
测试环境
笔记本i7+8G
win7 64 +excel 2010 |
|