有数据如下图左侧,求不同业务员3月份的产品A、C、D销售额之和
可能第一反应是,将横向的产品数据转置为纵向的,比如用PQ的逆透视功能,今天我们不用这些,来讲讲2种用公式实现的求和办法
方法一:SUM+SUMIFS+INDIRECT
这个方法的实现主要依靠INDIRECT的引用功能
公式=SUM(SUMIFS(INDIRECT({"$i$2:$i$13","$k$2:$k$13","$l$2:$l$13"}),$G$2:$G$13,N3,$H$2:$H$13,"3月"))
将求和的三列数据提取出来作为一个区域=INDIRECT({"$i$2:$i$13","$k$2:$k$13","$l$2:$l$13"})
条件求和=SUMIFS(上一步得到的结果,$G$2:$G$13,N3,$H$2:$H$13,"3月")
此时得到的是符合条件的三个数,所以还需要将它们求和,外层嵌套一个SUM函数
方法二:SUM+FILTER+SWITCH/HSTACK
如果方法一不太熟悉,那么方法二看过我之前文章的朋友就不陌生了,主要就是利用SWITCH/HSTACK将求和区域合并为一个区域,然后用FILTER或者SUMIFS条件得到结果都可以,之后用SUM将得到的结果求和
这里用FILTER的时候,所用的公式
SUM+FILTER+SWITCH=SUM(FILTER(SWITCH({1,2,3},1,$I$2:$I$13,2,$K$2:$K$13,3,$L$2:$L$13),($G$2:$G$13=N3)*($H$2:$H$13="3月")))
将产品A/C/D数据列合并为一个数据区域=SWITCH({1,2,3},1,$I$2:$I$13,2,$K$2:$K$13,3,$L$2:$L$13)
同时满足业务员姓名和3月的条件=($G$2:$G$13=N3)*($H$2:$H$13="3月")
SUM+FILTER+HSTACK=SUM(FILTER(HSTACK($I$2:$I$13,$K$2:$L$13),($G$2:$G$13=N3)*($H$2:$H$13="3月")))
将产品A/C/D数据列合并为一个数据区域=HSTACK($I$2:$I$13,$K$2:$L$13)
所以遇到不连续的列求和,第一反应是将它们变成连续的列,之后求和
完结,撒花✿✿ヽ(°▽°)ノ✿