就这统计汇总,难倒办公室一群同事,透视表玩不了



Lv.2潜力创作者
大家好,我是小编E精精!
今天我们分享的是一个网友的实际工作问题,大家看看,你是否有更好的解法!想学习的可以看看公式解读,但是我更推荐你使用最后的推荐解法!
▍案例背景
公司销售部门搞活动,按周结算,不同的周奖品不同,有现金、5g黄金、1K加油卡等!
现在N周活动结束了,你需要统计一个每个人的汇总数据,每种奖励的合计!实务中其实还有一个活动类型的维度,案例我们降低难度了!
你有处理思路吗?这种一开始很多同学直接数据透视表处理,发现其中有非数值的,只能计数,无法分类求和!
▍函数初步处理
这种特殊的,透视表无能为力,我们只能上函数了,数据量也不是很大,可以轻松搞定!
这里没有活动维度,我们直接使用GROUPBY函数即可,如果多一个维度,可以考虑使用PIVOTBY函数处理!
下面我们一起来看一下!
如果我们直接使用SUM函数求和,那么文本内容会被忽略掉,这个不符合我们的要求!
那么,我们要做呢?换个思路,利用PIVOTBY二维透视,统计每个人每种奖金类型的数量,然后二次处理!
金额、油卡和黄金按人维度都计数好了,下面我们就逐行(按人遍历处理)
但是这样处理起来还是问题较多,有兴趣的可以试试,我决定采用二次分组应该更简洁!
▍二次分组思路
使用GROUPBY函数分组后的待聚合结果,本案例中你可以理解为按对应的姓名筛选的奖金明细,所以我们可以对这个再进行分组!
结果大体如下!
=GROUPBY(
A:.A,
C:.C,
LAMBDA(x,
LET(
S, GROUPBY(x, x, COUNTA, 0, 0),
V, IFERROR(
TAKE(S, , 1) * TAKE(S, , -1),
TAKE(S, , 1) & "*" & TAKE(S, , -1)
),
TEXTJOIN("+", , SUM(V), REPT(V, 1 - ISNUMBER(V)))
)
),
3,
0
)公式如何理解呢?
▍公式解读
内部的S,就是对按姓名分组后的数据,也就是奖金,再次分组,结果是两列一列是奖金类型,一些是计数结果!
比如拿姓名B来说,二次汇总的结果大体如下!
然后就是变量V,就是用第一列乘以第二列,如果是金额,会得到每种金额的合计,如果是文本会报错,所以使用IFERROR容错,出现用*号理解,很多新手应该可以理解是否添加引用的区别了!
最后我们对整体求和,文本忽略掉,然后单独处理处理5g黄金这种非数字的奖金,
TEXTJOIN("+", , SUM(V), REPT(V, 1 - ISNUMBER(V)))REPT+ISNUMBER是常用的组合,这里就是非数字返回空,文本直接返回!
▍推荐统计
以上其实是公司领导要求的统计样式,实际数据分析,我更推荐你这样处理!
A2:.A999,
IF(ISNUMBER(C2:.C999), "现金", C2:.C999),
C2:.C999,
LAMBDA(x, IF(SUM(x) = 0, COUNTA(x), SUM(x)))
)
更方便后续统计分析,如果要案例也只要遍历一下即可!
OK!以上就是今天的小案例,难度不大,但是工作中遇到统计对新手有点头疼!