如果您要跟踪如下的累计总数:
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 种不同的类型。