DSUM函数一拖就出错?两招克服老函数的缺点,Excel 2003也能多条件求和



Lv.3 优质创作者
大家好,我是墨云轩,一名中职教师,平时喜欢研究办公小技巧。边学习,边分享,每天进步一点点。
有网友问了这样一个问题:单位电脑还在用 Excel 2003,做条件求和的时候,SUMIFS 函数压根没有,听说 DSUM 函数可以实现,可公式一往下拖就出错,结果不是 0 就是莫名变大,到底怎么回事?
说实话,这个问题我以前也没怎么留意过。这两年新函数用顺手了,反倒把老函数给冷落了。正好借这个问题,我把 DSUM 函数的两个“坑”和对应的解法,一次给大家讲清楚。
一、DSUM函数的基本用法
先看数据源。A 列到 C 列分别是日期、产品、数量,条件区域放在 E1:F2——E1 写“日期”,E2 写条件“<2013-1-16”;F1 写“产品”,F2 写“电脑”。意思很明白:求 2013 年 1 月 16 日之前、产品为电脑的数量之和。
在 G2 输入:
=DSUM(A:C,3,E1:F2)
回车,得到 82,和 SUMIFS 算出来的完全一致。
DSUM 一共三个参数,很好记:
第一参数:数据源。注意,必须带标题,而且一列是一列,条理分明;
第二参数:要返回第几列的结果。我们对“数量”求和,数量在第 3 列,所以写 3;
第三参数:条件区域。它和数据源一样必须带标题,标题下的单元格放具体条件。
顺便说明:Excel 2003 没有函数提示,也没法按 Tab 键补全,只能老老实实手敲,这一点和现在的版本不一样。
二、坑一:公式一拖就变0
公式写好了,很多人习惯性地往下拖,结果第二个条件(<2013-1-17 电视机)算出来是 0。
问题出在哪呢?我们选中公式看一下:数据源 A:C 选的是整列,拖动不会变;但条件区域 E1:F2 是相对引用,往下拖一格,就变成了 E2:F3——标题“日期”“产品”被甩掉了,条件区域没了标题,DSUM 自然返回 0。
解法很简单:把条件区域的起始行锁住,改成:
=DSUM(A:C,3,$E$1:F2)
E1 加上绝对引用,拖动时它不动;F2 保持相对引用,往下拖变成 F3,条件区域就变成了 E1:F3,标题永远都在。
三、坑二:条件重合,结果越拖越大
先别急着高兴,这里还有第二个坑。
拖到第三行的时候,条件区域变成了 E1:F4,里面同时装着“小于 2013-1-16 电脑”和“小于 2013-1-17 电视机”两个条件。DSUM 会把两个条件的结果加在一起,比如算出 101,而我们要的其实只是 82。上一步的结果被重复累计进来了。
最直接的办法,是手动把上面的结果减掉:
=DSUM(A:C,3,$E$1:F3)-82
结果对了,但新的问题又来了:拖一行就得减一次,三行五行还好,要是几十行,这公式就没法用了。那有没有一劳永逸的写法呢?答案是肯定的,这就是第二节课要讲的内容。
四、通用解法:DSUM减去SUM
这次换了一份销售数据,A 到 D 列是销售人员、商品、销售量、销售额,条件区域在 F1:G2(销售人员、商品)。正确结果放在 I 列做对照:曹泽鑫-彩电 108100,刘敏堃-冰箱 111800,周德宇-电脑 344000。
按老办法写:
=DSUM(A:D,4,$F$1:G2)
第一行 108100,没问题。往下拖,第二行变成了 219900——比正确答案 111800 正好多出 108100,还是条件重合、结果累计的问题。
这里分享一个思路:用一个会自动“长大”的 SUM,把上面累计的结果减掉。完整公式是:
=DSUM(A:D,4,$F$1:G2)-SUM($G$1:H1)
拆开看很有意思:
$F$1:G2 前面讲过了,锁住标题行,让条件区域自动扩展;
SUM($G$1:H1) 才是点睛之笔。第一行时,G1:H1 里全是“销售人员”“商品”这些文字标题,文字按 0 算,所以减了个寂寞,结果不受影响;
拖到第二行,SUM 变成 $G$1:H2,恰好把上面累计进来的 108100 减掉;
拖到第三行,变成 $G$1:H3,把前两个累计的都减掉。
也就是说,减数跟着公式一起“长大”,永远只多减上面新增的那一块。这样随便怎么拖,结果都是对的。
我们用第五行的郝宗泉-彩电验证一下,结果 52900,再用 SUMIFS 核对:
=SUMIFS(D:D,B:B,G5,A:A,F5)
两边完全一致,说明这个写法是靠谱的。
五、写在最后
方法对比一下:
说实话,DSUM 减 SUM 这套逻辑确实绕,理解起来要费点脑子。但如果手头只有 Excel 2003,它就是多条件求和为数不多的出路。当然,我的建议还是:条件允许的话,尽量升级到高版本或者下载WPS个人免费版,SUMIFS 一把梭,何必跟自己过不去呢?
这个思路是我从教学视频里学来又亲手验证过的,如果您有更好的办法,欢迎留言交流,先谢过各位大佬。
我是墨云轩,边学习,边分享,每天进步一点点。我们下期见!
Lv.3 优质创作者
Lv.3 优质创作者
Lv.3 优质创作者