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

E精精
E精精 WPS资深用户KVPWPS函数专家Lv.2 潜力创作者

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是常用的组合,这里就是非数字返回空,文本直接返回!

▍推荐统计

以上其实是公司领导要求的统计样式,实际数据分析,我更推荐你这样处理!

=PIVOTBY(
A2:.A999,
IF(ISNUMBER(C2:.C999), "现金", C2:.C999),
C2:.C999,
LAMBDA(x, IF(SUM(x) = 0, COUNTA(x), SUM(x)))
)

更方便后续统计分析,如果要案例也只要遍历一下即可!

OK!以上就是今天的小案例,难度不大,但是工作中遇到统计对新手有点头疼!

更多系列教程

这样的问题你如何统计
手工,筛选,分别统计
4 (50%)
AI、函数、VBA等想办法自动化处理
7 (50%)
11人参与 截止时间:2026/09/30 01:16:27
江苏省
浏览 250
2
12
分享
12 +1
2 +1
全部评论