1

比如我怎么能找到什么公式为快?如何衡量Excel的计算时间

=SUMPRODUCT((Data!D:D="RC Corp")*(Data!AD:AD="Expected Allowances/Provisions")) 

Vs的

=COUNTIFS(Data!D:D,"RC Corp",Data!AD:AD,"Expected Allowances/Provisions") 

Vs的Concatinating的2场到一个新的栏目,做

Z1 = D1&AD1 
=Countif(Data!Z:Z,"RC CorpExpected Allowances/Provisions") 

Vs的VBA

Dim i as integer 
Dim Total as integer 
Total = 0 
i=0 
While i < 1000 
    IF Range("D"&i).Value = "RC Corp" AND Range("AD"&i).Value = "Expected Allowances/Provisions" Then 
Total = Total + 1 
End If 
Wend 
Range("$A$1").Value = Total 
+0

我会做以下操作:使用说明(这里)的方法(http://www.codematic.net/excel-development/excel-vba/excel-vba-performance.htm)和[这里](HTTP: //msdn.microsoft.com/en-us/library/office/ff700514(v=office.14).aspx)来加速性能。由定时重复循环关闭自动重计算的,书写的字符串(或其它恒定到细胞中,并重新打开重计算设定的基准;做同样为您的公式,即,关闭重计算,写式:为了测试式性能细胞,并recalc'ing细胞或片。没有尝试这样做自己,所以把这个作为评论。 – chuff 2013-03-06 16:31:24

回答

4

沃金,我想出了这个基本代码。

time1 = Timer 
Range("A1").Calculate ' Or the cell containing the Formula I want. OR use Sheets("Sheet1").Calculate for the calculation including concated columns 
time2 = Timer 

CalculationTime = Time2-Time1 

为了这个工作,我不得不隔离样本数据新的空白工作表,并在Excel中禁用自动刷新,以确保它没有任何其它时间计算。

2

在VBA中,你可以用户Timer

4:24 evocandy的回答

time1 = Timer 
'Your code 
time2 = timer 

totaltime = time2-time1 
+0

我站下如何为VBA代码做到这一点,但我怎么衡量forumlas出侧做过测算VBA? – user2140261 2013-03-06 16:08:11

+0

我发现这个页面上MSDN http://pages.citebite.com/c1t1t5u0w4fvu – evoandy 2013-03-06 16:32:23

+0

[** **这里(http://sites.mcpher.com/share/Home/excelquirks/optimizationlink)是另一种资源从上各种先进的技术,Excel的一个伟大的现场测量公式性能。 – chuff 2013-03-06 16:42:34