如何统计指定年和月后,汇总对应产品的销售数据 No272
优秀创作者
某张表格中,表1是某工厂的产品每日销售日报表,里面有三列,一列是销售日期,一列是产品名称,一列是对应的销售额,源数据的行数比较多,有几万行,这里截取部分数据作为演示。
需要设计一个查询表,表2中在日期查询处录入对应的日期,下方自动显示录入日期对应的年和月销售的产品以及这些产品对应的销售金额的汇总。
效果如下图1所示:
图1
需求分析
这个需求是一个非常经典的筛选汇总需求,这里因为查询条件只有一个日期,所以需要用到筛选函数的多条件筛选,在用多条件筛选前还需要对日期进行提取年和月的函数嵌套。
因为是产品汇总,所以不能有重复项,在筛选得到对应查询日期的产品后,还需要进行对产品去重,这里用到删除重复项函数。
最后用这个去重后的产品进行多条件筛选后求和,就可以得到录入查询日期,得到录入日期对应的年和月销售的产品以及这些产品对应的销售金额的汇总。
提取日期
多条件筛选的核心就是判断条件,这里的需求是录入一个日期,得到对应的年和月,所以第一步先把日期提取出来,为了方便大家理解,这里分步写函数,
录入函数1:=YEAR(B3:B19),提取销售源数据中日期的年
录入函数2:=MONTH(B3:B19),提取销售源数据中日期的月
录入函数3:=YEAR(I2),提取查询条件中日期的年;
录入函数4:=MONTH(I2),提取查询条件中日期的月;
效果如下图2所示:
图2
筛选产品
上面已经把销售源数据的日期和查询日期都用辅助列的形式提取出来了,现在需要把查询日期对应的产品筛选出来,因为已经提前做了好了辅助列,筛选条件就是,查询的日期对应的年和月等于源数据年和月。
录入函数:
=FILTER($C$3:$C$19,(E3#=H3)*(F3#=I3))
函数释义:
筛选条件等于查询的日期对应的年和月等于源数据年和月的产品明细
效果如下图3所示:
图3
上面的数据用了辅助列,并且还有重复项,此时需要外嵌套一个删除重复项函数,并把辅助列的公式代入。
录入函数:
=UNIQUE(FILTER($C$3:$C$19,(YEAR($B$3:$B$19)=YEAR($I$2))*(MONTH($B$3:$B$19)=MONTH($I$2))))
函数释义:
对符合查询日期条件的年和月对应的销售的产品,并删除重复项,保留唯一值。
效果如下图4所示:
图4
汇总产品销售额
上面已把产品筛选查询出来了,所以可以根据这个产品再加上对应的查询日期的年和月,形成三个条件的筛选,得到表1的销售额。
录入函数:
=SUM(FILTER($D$3:$D$19,(YEAR($B$3:$B$19)=YEAR($G$2))*(MONTH($B$3:$B$19)=MONTH($G$2))*($C$3:$C$19=$F5)))
函数释义:
公式看起来很长,其实就是三个条件筛选,一个条件是年、一个条件是月、一个条件是产品,把对应三个筛选的结果筛选出来的销售额,最后用求和函数SUM进行求和,就得到了产品的汇总销售额。
效果如下图5所示:
图5
最后总结
上面的案例可以看出筛选函数FILTER的强大之处,在没有这个函数以前,可能需要用SUMPRODUCT函数进行多条件汇总求和,相对于FILTER函数来说,这个函数可能难以理解。
新手可以多学习FILTER函数配合其它函数的一些固定组合:
ROWS+FILTER: 筛选后统计数量
SUM+FLTER:筛选后求和
SORT+FLTER:筛选后排序
UNIUQE+FLTER:筛选后去重
TOROW+FLTER:筛选后转成行(水平方向)一般用于一维数据与二维数据相互转换
和古哥一起学习PMC生产计划运营,一辈子够不够?
关注古哥计划
WPS新函数:巧妙利用DROP 去重UNIQUE函数留下的“0” NO 270
WPS 新函数 EXPAND 实现工单快速分拆 No 266
WPS 新函数 CHOOSECOLS 快速对齐错乱列 No 265
WPS 新函数 WRAPROWS 把错乱的数据整理成标准二维数据 NO 261