有没有办法测试 Excel 中公式的速度/效率?
这可以通过显示实际的执行计划在 SQL Server 中完成,Excel 是否可以做类似的事情。
例如,下面的查询都会给我相同的结果,
{=SUM(SUMIF(A:A,D1:D3,B:B))}
=SUMPRODUCT(ISNUMBER(MATCH(A1:A25,D1:D3,0))*B1:B25)
=SUMIF(A1:A25,D2,B1:B25)+SUMIF(A1:A25,D3,B1:B25)+SUMIF(A1:A25,D1,B1:B25)
如果我要在 1000 行以上使用这些公式,我的工作表将花费越来越长的时间来计算。
我怎样才能确定哪个是最有效的使用?
问题不仅仅与这些示例有关,是否有一般方法可以找出执行/性能?
在一些手册中,我发现SUMIF或SUMIFS比SUMPRODUCT快,因此我决定测试哪个更快,我使用了如下所示的 VBA 代码,计算两个公式所用的运行时间。
结果:
SUMPRODUCT 花费的时间:
SUMIF 花费的时间:
注意事项
我发现SUMIF花费的时间更少。**
在某些测试中,经过的时间可能会有所不同,因为还取决于CPU的速度。
如果使用大量数据范围,如果想以分钟为单位获取经过时间,则可以使用此代码。