为何Sumifs在ID组合首次出现前仍得出求和值1?
问题原因分析
首先,咱们拆解下你的SUMIFS公式逻辑:从你提供的函数截图能看出来,你用的是固定的整个数据列范围(比如$D$2:$D$14、$A$2:$A$14这类绝对引用范围)来计算匹配ID1和ID2的数量总和。
在第4行,ID1=4和ID2=2的组合确实是首次出现,这意味着整个数据范围内只有当前行的数量值(1)符合匹配条件,所以SUMIFS返回1是完全正确的结果。
你可能的疑惑点大概率来自对「累计求和」的定义偏差:
- 如果你想要的是截至当前行(包含当前行)的累计求和,那当前公式在首次出现行返回1是完全合理的;
- 如果你想要的是当前行之前的同组合累计(不包含当前行),那公式需要调整范围排除当前行,更通用的写法是用
$D$2:INDEX(D:D,ROW()-1)来动态引用到上一行; - 如果你的目标是做逐行递增的累计求和(每一行计算到当前行的同组合总和),那正确的公式应该把范围的结束部分改成相对引用,比如:
=SUMIFS($D$2:D2, $A$2:A2, A2, $B$2:B2, B2)
这里的D2、A2、B2是相对引用,当你把公式下拉到第4行时,范围会自动变成$D$2:D4、$A$2:A4、$B$2:B4,既能准确计算到当前行的累计值,首次出现时就是当前行的数量,后续行也会自动累加之前的同组合数值。
内容的提问来源于stack exchange,提问作者user1543042
相关产品推荐
相关产品推荐

