分享

写1次公式解决不了的问题,再写几次公式依然解决不了怎么办?

 Excel不加班 2021-04-27

与 30万 读者一起学Excel

最近看到有不少VIP学员表格的布局是下面2种情况,要按项目、月份统计总金额。除了一列列写公式判断再将这4列相加,还有没其他办法?

=SUM()+SUM()+SUM()+SUM()

布局1

布局2

多行多列确实不好处理,于是,卢子采用了大胆假设,小心求证的方法,边尝试,边修改公式。

对于布局1,按照普通的单列方法处理,只不过区域选择全部。遗憾的是,结果都是错误值。

我在编辑栏选中(MONTH($B$3:$E$17)=1)*($A$3:$A$17=A3)*$F$3:$I$17这部分按F9键,发现有很多显示错误值。

有错误值是不能直接求和,于是我嵌套IFERROR函数,让错误值显示0。

=SUM(IFERROR((MONTH($B$3:$E$17)=1)*($A$3:$A$17=A3)*$F$3:$I$17,0))


现在结果出来了,于是我又手工选了几个数字验证,发现结果对的,应该没问题。

再看看布局2,隔列判断日期,我就想到了SUMIF函数的错位求和,不过现在是多条件,换成SUM函数的数组用法也用错位求和。

如果是新粉丝,可能不太清楚啥是错位求和,这里用一个简单的例子说明。在写公式的时候,条件区域是从第一列文本到最后一列文本的区域,求和区域是第一列数字的区域到最后一列数字的区域。

=SUMIF(A:C,G1,B:D)


错位求和,一般都是针对文本判断,日期跟金额采用这种可能出错。

输入完公式,有结果。为了保险起见,将布局1的结果复制过来对比,发现确实有的金额出错。

前面说过,错位求和一般针对文本判断,而日期和金额都是数字,数字在提取月份的时候有可能出错。比如下面几个金额,并不是日期,用MONTH函数依然可以提取月份,只不过是错的而已。

面对这么头疼的问题,难道只能想其他方法?

还好,表头都有标明是日期和金额,可以再借助表头来判断。这样双条件,判断出来的结果就对了。

最终结果就出来了。

=SUM(IFERROR((MONTH($B$3:$H$17)=1)*($A$3:$A$17=A3)*($B$1:$H$1="日期")*$C$3:$I$17,0))


以上,就是我写出这2个公式,解决问题全过程的思路。

一次报名成为VIP会员,所有课程永久免费学,采用录制视频+微信答疑的形式学习,仅需888元,待你加入。

推荐:吃惊!一个超级复杂的Excel公式,原来是这样写出来的!

上篇:刚挖掘出来日记账的新方法,看了都说好


在你眼中,那些高手写公式是不是手起刀落,一气呵成?

不过事实却不是如此,除了一些常用问题,其他的都是慢慢推敲,改进而成的。

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多