2013-07-07 59 views
0

我知道2種方式在Excel計算累計值。Microsoft Excel中累計計算性能

第1種方法:

A   B 
Value  Cumulative total 
9   =A1 
8   =B1+A2 
7   =B2+A3 
6   =B3+A4 

第二個方法:

A   B 
Value  Cumulative total 
9   =SUM($A$1:A1) 
8   =SUM($A$1:A2) 
7   =SUM($A$1:A3) 
6   =SUM($A$1:A4) 

2個問題:

  1. 哪種方法當數據集變得非常大更好的性能(說10萬行)?第一種方法似乎開銷較少。因爲添加在列A(價值)的新值時,在B列新小區只需要做「B(n-1)+A(n)」。在第二種方法中,它足夠聰明地做類似的事情嗎?或者它會從A1:A(n)增加100k行?

  2. 什麼來計算累計值的最佳方式是什麼?我發現第二種方法更受歡迎,雖然我懷疑它的性能。我現在看到的第二種方法唯一的優點是B列中的公式更加一致。在第一種方法中,列B中的第一個單元格必須是預先確定的。

+0

不是這應該是超級用戶? –

+2

參見[圖6](http://msdn.microsoft.com/en-us/library/office/ff700515%28v=office.14%29.aspx)。 – pnuts

回答

1

數字序列9,8,7,6,-9,-8,-7,-6;工作簿設置爲手動計算,通過下面的代碼觸發:

Sub ManualCalc() 
Dim R As Range 

    Set R = Selection 
    [F1] = Now() 
    R.Worksheet.Calculate 
    [F2] = Now() 
    [F3] = ([F2] - [F1]) * 86400 

End Sub 

在4096行的計算時間是不可測量的兩種變體(0秒),在65536行的第一方法還是不能測定,你的第二方法需要我的筆記本電腦(戴爾Latitude E6420,Win7,Office2010 - 平均每個測量3次)少於8秒。因此,對於大量的行我會因此喜歡的方法1.

關於你Q1 ...是的,它會增加日益增長範圍的10萬個資金...... Excel中不應該是聰明的,它應該計算出任何你請它來計算。如果是的話,它會在運行時解釋一套公式的意圖,我認爲這是非常危險的!