在 Excel 中计算累计总数的最有效方法

在 Excel 中计算累计总数的最有效方法

如果您要跟踪如下的累计总数:

A     B      C         D         E
-----------------------------------------
Type  Value  Total_AA  Total_BB  Total_CC
AA    1      1         0         0
AA    2      3         0         0
BB    30     3         30        0
BB    40     3         70        0
CC    100    3         70        100
CC    200    3         70        300

哪个公式对于 Excel 计算(例如)Total_AA 更有效?

=IF(A101="AA", C100+B101, C100)

或者

=SUMIF(A:A, "AA", B:B)

第一个需要 1 个条件测试和 1 个总和,但是直到计算出第 (N-1) 行才能计算第 N 行,而直到计算出第 (N-2) 行才能计算第 N 行,等等。

第二个需要 O(N) 条件测试和 O(N) 求和。

通常我会假设第一种方法更有效,但我不知道 Excel 是否有一些内部流程或优化会使该假设无效。例如,在 Excel 中,第 N 行的公式结果对第 (N-1) 行的公式结果的依赖性可能是一项成本高昂的操作?

就上下文而言,我的用例将有大约 20,000 行值和大约 20 种不同的类型。

答案1

您需要对 SUMIF 公式进行少许修改:

在此处输入图片描述

  • 单元格中填入公式C7,填充:

    =IF($A7<>RIGHT(C$6,2),"",SUMIF($A$7:$A7,$A7,$B$7:$B7))
    

C6:F6根据需要调整公式中的单元格引用和条件搜索( )。

相关内容