如何计算Excel表相同单号的金额?你需要一个嵌套公式!
作者:老徐来源:部落窝教育发布时间:2022-04-20 17:13:52点击:8219
编按:
今天主要给大家分享一个嵌套公式,即IF、SUM、IF的嵌套,自动将相同订单号的金额进行合并运算,赶紧来看一看吧!
Hello,大家好。今天跟大家分享一个小伙伴在工作中遇到的实际问题。如下图所示,是企业5月份的销售额情况。由于每张订单上会有多个商品,导出来的销售明细表上每个商品编码一行记录,每个订单号有多行记录。
而同一订单号有可能占两行,有可能占四行,还有可能占五行,且同一订单号到底有多少行记录是没有规律的。
在这种源数据结构基础上,领导要求我们在F列统计出来每个订单号的销售额合计,并在该订单号第一次出现的位置体现合计金额,如下图样式所示,我们应该如何写公式呢?
如果能够改变源数据的结构,统计结果能够单独放在另外一张表格上的话,处理就简单多了,我们可以使用数据透视表或者sumif函数来汇总每个订单号的金额合计。
但现在工作上要求的是在“订单号”列旁直接小计出来相同单号合计金额,这样既可以看到订单号总金额,又可以看到这一订单对应的商品明细。对于此种情况,我们可以在F2单元格输入公式 =IF(E2=E1,"",SUM(IF(E2:$E$1000=E2,D2:$D$1000,0))) 然后同时按下 ctrl+shift+enter,再下拉公式,即可。
公式讲解:
1.由于要求我们只在订单号第一次出现时返回该订单号的合计数,所以使用if函数即可实现。=IF(E2=E1,"",合计数),当我们下拉公式之后,公式会依次变为
=IF(E3=E2,"",合计数)
=IF(E4=E3,"",合计数)
=IF(E5=E4,"",合计数)
=IF(E6=E5,"",合计数)
意思是,如果E3单元格的内容等于E2单元格的内容,则返回空文本字符串,否则返回合计数。也就是说如果本行的订单号等于上一行的订单号,就返回空文本字符串,本行的订单号和上一行的订单号不相同,则返回合计数。
2.IF(E2:$E$1000=E2,D2:$D$1000,0) 返回的是一组数,这个公式将会进行999次计算:
If(E2=E2,D2,0)
If(E3=E2,D3,0)
If(E4=E2,D4,0)
If(E5=E2,D5,0)
……
比如,我们在F2单元格输入= IF(E2:$E$1000=E2,D2:$D$1000,0),然后同时按下ctrl+shift+enter,在编辑栏抹黑公式,再按F9键,可以看到这个公式中存放的数值,如下图所示。
3.由于IF(E2:$E$1000=E2,D2:$D$1000,0)返回的是类似={1686.06;525.54;0;0;0;0;0;0;0;0;0;0;0;0;……}这样的一组数,在if外嵌套一下sum函数就是求这组数的合计数了,也就是求等于E2单元格中的订单号的金额的合计。sum(if(区域<>=值1,区域,0) 是一种非常经典的应用。
例如下面这个例子,统计工资在2万元以上的员工的工资总额,可以这样写公式 =SUM(IF(B:B>20000,B:B,0)),输入完这个公式时注意不要直接按回车,而是同时按下ctrl+shift+enter
怎么样,if、sum、if的嵌套你学会了吗?
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
如何计算员工累计达标的月份,你需要一个SUBTOTAL函数!
版权申明:
本文作者老徐;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。