249 WPS新函数案例:多条件统计订单数
优秀创作者
某PMC需要统计不同城市门店中商品名称包含“大型”的订单号有多少张?因数据量比较大,手动统计太麻烦了,需要设计一个公式一键统计。数据如下图1所示。
图1
需求分析
需求是统计订单号,包含两个条件,一个条件是城市,另一个条件是商品名称包含大型的。符号这两个条件的订单号可能有相同的,如订单号G1,,所以还需要对符号上述两个条件的结果进行去重。
理顺了上面的思路,公式就好写了。先多条件筛选,然后去重订单号,最后统计订单号就可以了;整体思路如下图2
图2
多条件筛选
单条件筛选广州门店的话还是比较简单,难点在于商品名称中包含大型的订单号需要筛选出来。这里有同学问,统计订单为什么不用统计函数?这里因为涉及到订单号有重复值,如果直接用统计函数:
=COUNTIFS(B3:B14,F3,D3:D14,"*"&"大型"&"*")
得到的结果就是5,所以和题目的要求不符合,需求就是统计广州店的订单有多少张?只能是G1和G2;
图3
所以这里就要用筛选,为了让大家理解模糊筛选的写法,这里先分开写,先用FIND函数来找“大型”,只要找到的话,就会返回数字,找不到就返回错误。再嵌套一个判断数字的函数ISNUMBER,这个函数的作用就是如果是数字就返回TRUE,不是就返回FALSE。
录入函数1:=FIND("大型",D3:D14);
录入函数2:=ISNUMBER(H3#);
效果如图4
图4
有了这个条件后,就可以进行多条件筛选了。格式为:
FILTER(显示的结果,(条件1)*(条件2))
录入函数:=FILTER(C3:C14,(B3:B14=F3)*(I3#)),就可以得到包含大型商品名称的订单号了。
图5
对订单去重
最难的多条件筛选都已经搞定了,对于订单号去重只需要录入函数:
=UNIQUE(FILTER(C3:C14,(B3:B14=F3)*(ISNUMBER(FIND("大型",D3:D14)))))
就可以得到广州店的订单号列表了。如下图6所示:
图6
对订单统计
对于筛选后的结果,需要统计的话,此时可以用COUNTA来统计,也可以用ROWS来统计,这里重点说一下为什么用ROWS,因为ROWS统计有多少行,数组内如果有错误,或者文本数值都不会影响返回的行数,加上本身字符串比较少(4个字符),所以优先使用这个函数来替代特定情景下的统计。
门店:=UNIQUE(B3:B14)
订单号:
=ROWS(UNIQUE(FILTER(C3:C14,(B3:B14=F3)*(ISNUMBER(FIND("大型",D3:D14))))))
图7
我是古哥:
从事制造行本业20年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!