转自EXCEL不加班
学员多了以后,需求就更为复杂。通过不断满足学员的需求,卢子又发现了2个特有意思的用法。
1.不管删除行、插入行,求和都要保证正确
这是正常的删除行、插入行,操作完以后,发现求和区域错了。
![3d720087934e0fc3743535cce7a1c49c.gif](https://i-blog.csdnimg.cn/blog_migrate/0a6ec2a14a31a7fc6f793e4dd2751e6f.gif)
针对这种,卢子很久以前就想到了解决的方法。
=SUM(B2:INDEX(B:B,ROW()-1))
![0e9e1ddf2e58c8c7b651e29d4575105e.png](https://i-blog.csdnimg.cn/blog_migrate/2b30d1277f0e0e69cfa2f22644e7df2d.jpeg)
ROW()-1就是当前行的上一行号,INDEX(B:B,ROW()-1)就是当前单元格的上一个单元格。
这种可以解决99%的问题,但是还剩下1%的可能出错。就是当在第一行数字插入一行的时候,开始单元格就会出错。
![e1795a6049413639fae7e36a2fff49c0.png](https://i-blog.csdnimg.cn/blog_migrate/e4386c1efef08bd59de80b91d4ff8f43.jpeg)
这种插入方法,虽然出现概率很低,但还是有可能出现。针对这种情况又该如何解决呢?
B2改成INDIRECT("B2"),这样就固定死,不管如何删除或者插入,始终引用B2单元格。
=SUM(INDIRECT("B2"):INDEX(B:B,ROW()-1))
![7beabb724904f3846885a78136720168.png](https://i-blog.csdnimg.cn/blog_migrate/f1cc516453cf12ab9dc2dbd1a7d023f1.jpeg)
目前只是对2列进行求和,C列的就直接将B改成C就好。
=SUM(INDIRECT("C2"):INDEX(C:C,ROW()-1))
2.多行多列,条件求和
多行多列,按条件求每个发票号码的数量合计。这种输入方法好坑人,不按套路出牌,发票号码1对应数量1,发票号码2对应数量2。
![97d00bb79e2e1fbc7b5cf28cb7c63434.png](https://i-blog.csdnimg.cn/blog_migrate/e1b575f607fc070d1a0673616bd6f6ef.jpeg)
正常应该一列是发票号码,一列是数量,这种才是标准的输入法。这样求和多简单,一个SUMIF函数就搞定。
=SUMIF(A:A,E2,B:B)
![1ffe190b5fc12eb791595c46b09169ba.png](https://i-blog.csdnimg.cn/blog_migrate/6dc27cb6f3eb0fdd84c3ca46d4c2fcc4.jpeg)
好在天无绝人之路,SUMIF函数的强大超乎想象,居然如此布局也可以搞定。
=SUMIF($A$3:$G$6,A11,$H$3:$N$6)
![51aa0888643d01c98c91e0f14b004fbf.png](https://i-blog.csdnimg.cn/blog_migrate/d2406aa84c99158b816f5b314753b543.jpeg)
真的是意外惊喜!
陪你学Excel,一生够不够?