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