GROUPBY分组实战,解决这类问题妙呀!
大家早上好、中午好、晚上好!我是小编E精精!
今天我们来看一个累计分组的案例,算是GROUPBY+SCAN函数的综合应用,文末写了一下PQ等其他的解法。直接看需求吧
▍需求说明
问题比较简单,有1月上半月的销售数据,现在要统计,每次销售超过200用时天数
▍需求分析
累加问题,我们第一个想到的函数应该是SCAN函数,ta太擅长!这里这里不能单纯的累加,我们超过200就要进入下一组,所以要加个条件,判断一下如果当前的累计值超过200,直接返回,否则继续加!
=SCAN(,B2:B16,LAMBDA(x,y,IF(x>200,y,x+y)))
▼ 好像是这么回事
那么下面我们如何确定每组数据呢?其实很简单,首次累计的时候,肯定就是数据本身,比如我们上面比较颜色的部分!关键是如何找出来!规律发现了,直接判断和原内容是否相等,然后依次累加满足条件的结果即可!这活还得SCAN来搞!
通过两次累加,我们搞定了分组依据,下面就该GROUPBY出场了!
=SCAN(0,C2#=B2:B16,SUM)
有了分组依据,最后GROUPBY函数分组就简单很多!
我们全部整合一下,看一下最后完整的函数公式!
▍参考解法
365函数目前完全可以称作为函数式编程,顺序、选择和循环,该有的都有了!
以下只是通过LET函数把上面分析的过程给整合一下,放到一个公式中!
不要感觉公式太复杂,其他思路有了,写出来就是水到渠成的事情,单纯是长了点!
▍娱乐番外
PowerQuery就不分组了,可以用 List.Accumulate,暴力堆,好久不写,生疏了,将就看看哈!有啥问题,欢迎留言交流。
今天的内容就到这里,有帮助多多三连!