Performance Microsoft Excel累积计算性能

Performance Microsoft Excel累积计算性能,performance,excel-formula,excel-2010,Performance,Excel Formula,Excel 2010,我知道在Excel中计算累积值的两种方法 第一种方法: 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)

我知道在Excel中计算累积值的两种方法

第一种方法:

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个问题:

  • 当数据集变得非常大(比如100k行)时,哪种方法的性能更好?第一种方法似乎开销较小。因为在a列(值)中添加新值时,B列中的新单元格只需执行“
    B(n-1)+a(n)
    ”。在第二种方法中,做类似的事情是否足够聪明?或者它将从
    A1:A(n)
    添加10万行

  • 计算累积值的最佳方法是什么?我发现第二种方法更受欢迎,尽管我怀疑它的性能。我现在看到的第二种方法的唯一优点是B列单元格中的公式更加一致。在第一种方法中,B列中的第一个单元格必须事先确定


  • 数字序列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行时,您的第一种方法仍然不可测量,您的第二种方法在我的笔记本电脑上花费的时间略少于8秒(Dell Latitude E6420,Win7,Office2010-平均每个测量3次)。因此,对于大量行,我更喜欢方法1


    关于你的第一季度。。。是的,它将增加10万个不断增长的范围。。。Excel不应该是聪明的,它应该计算你要求它计算的任何东西。如果是这样的话,它将解释运行时一组公式的意图,我认为这是非常危险的

    这不应该在超级用户上吗?