如何在Google Sheets中基于跨工作表查找实现分类求和?
Google Sheet 按类别汇总销售营收的最优方案
需求梳理
你有三张表:
- SKUs表:存储SKU与所属类别的对应关系(一个类别包含多个SKU)
- Performance表:存储各SKU的销售TOTAL值(每个SKU可能有多条记录)
- Sales表:暂未用到,核心汇总逻辑依赖前两张表
目标是:提取SKUs表中的唯一类别,汇总每个类别下所有SKU在Performance表中的TOTAL总和。
能否单个单元格完成?
可以,但仅适合小数据量场景。通过嵌套UNIQUE、SUMIFS和QUERY函数,能在单个单元格输出所有类别及其总营收:
假设SKUs表A列是SKU、B列是类别;Performance表A列是SKU、B列是TOTAL,公式如下:
=QUERY( {UNIQUE(SKUs!B:B), ARRAYFORMULA( SUMIFS(Performance!B:B, Performance!A:A, XMATCH(Performance!A:A, SKUs!A:A, 0), SKUs!B:B, UNIQUE(SKUs!B:B)) )}, "SELECT Col1, SUM(Col2) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 '类别', SUM(Col2) '总营收'" )
但这种嵌套公式逻辑复杂,数据量大时会明显卡顿,且不易排查错误。
是否需要中间表?
不是强制要求,但非常建议使用中间表,尤其是数据量较大或需要频繁更新统计时:
- 逻辑更直观,便于后续调整或排查问题
- 计算效率更高,避免大公式嵌套导致的性能损耗
- 扩展性更强,后续新增统计维度(比如时间、区域)时更易修改
最优实现方案
推荐分两步的轻量方案,兼顾效率、可读性和可维护性:
步骤1:确保SKU-类别映射唯一(可选)
如果SKUs表中存在重复的SKU记录,先在SKUs表的空白区域(比如C1单元格)提取唯一的SKU-类别对:
=UNIQUE(SKUs!A:B)
若SKUs表本身已是SKU与类别的一一对应,此步骤可跳过。
步骤2:生成类别营收汇总
新建一个「类别营收汇总」表,用两种方式实现:
方式1:分步手动填充(适合新手)
- 提取唯一类别:在A2单元格输入
=UNIQUE(SKUs!B:B),自动生成所有不重复的类别列表 - 计算总营收:在B2单元格输入
=SUMIFS(Performance!B:B, Performance!A:A, SKUs!A:A, SKUs!B:B, A2),下拉填充至所有类别行
方式2:用QUERY一键生成(高效简洁)
在汇总表的A1单元格输入以下公式,直接输出带表头的类别汇总结果:
=QUERY( SKUs!A:B, "SELECT B, SUM(Performance!B) WHERE A IS NOT NULL GROUP BY B LABEL B '类别', SUM(Performance!B) '总营收'", 1 )
注:公式中1表示表头行数,若SKUs表无表头则改为0;需根据实际列位置调整SKUs!A:B、Performance!B等引用。
这种方案逻辑清晰,计算高效,后续修改或扩展统计维度也十分方便。
内容的提问来源于stack exchange,提问作者Nolan Nordlund
相关产品推荐
相关产品推荐

