You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中对唯一名称分组,实现含0则返回0否则求和?

分组计算解决方案

原始数据

NAMEPOINT A
JOHN98
JOHN0
HARRY115
HARRY75

需求说明

按NAME列的唯一值分组,执行以下规则:

  • 若分组内POINT A列存在0,该分组结果为0
  • 若分组内POINT A列无0,对该分组的POINT A数值求和

期望结果

NAMEPOINT A
JOHN0
HARRY190

实现方法

电子表格(Excel/Google Sheets)

分步公式

  1. 提取唯一姓名:在空白单元格输入 =UNIQUE(A2:A5)(假设数据在A2:B5区域),生成唯一NAME列表
  2. 计算对应结果:在结果列表旁的单元格输入公式,下拉填充:
    =IF(COUNTIFS(A$2:A$5,D2,B$2:B$5,0)>0,0,SUMIF(A$2:A$5,D2,B$2:B$5))
    (D2为唯一姓名所在单元格)

动态数组公式(一键生成结果)

  • Excel:
=LET(
    names, UNIQUE(A2:A5),
    results, BYROW(names, LAMBDA(x, IF(COUNTIFS(A2:A5,x,B2:B5,0)>0,0,SUMIF(A2:A5,x,B2:B5)))),
    HSTACK(names, results)
)
  • Google Sheets:
=ARRAYFORMULA(
    HSTACK(
        UNIQUE(A2:A5),
        BYROW(UNIQUE(A2:A5), LAMBDA(name, IF(COUNTIFS(A2:A5, name, B2:B5, 0) > 0, 0, SUMIF(A2:A5, name, B2:B5))))
    )
)

SQL实现

如果是数据库表,可通过以下SQL语句完成分组计算:

SELECT 
    NAME,
    CASE 
        WHEN SUM(CASE WHEN POINT_A = 0 THEN 1 ELSE 0 END) > 0 THEN 0
        ELSE SUM(POINT_A)
    END AS POINT_A
FROM your_table
GROUP BY NAME;

内容的提问来源于stack exchange,提问作者Esat Kurtul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:37:25