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

Google Sheets中按另一列唯一ID对指定列数值求和问题咨询

Google Sheets 实现方案

假设你的user_id存在A列,total_paid存在B列,推荐两种稳定的实现方式:

  • 方案1:QUERY函数(逻辑和后续SQL迁移完全对齐,推荐优先用)
    直接输入公式:
    =SUM(QUERY(A:B, "SELECT MAX(B) WHERE A IS NOT NULL GROUP BY A", 1))
    
    逻辑说明:先按user_id分组提取每个用户唯一的total_paid(同个用户的total_paid数值一致,用MAX/MIN/AVG均可),再对提取后的数值求和,和示例结果一致返回72。
  • 方案2:纯函数组合实现
    如果你更习惯用基础函数组合,可以用:
    =SUM(BYROW(UNIQUE(A:A), LAMBDA(id, XLOOKUP(id, A:A, B:B))))
    
    逻辑说明:先提取所有唯一的user_id,再逐个匹配对应用户的total_paid,最后求和。

你之前用SUMIFS搭配COUNTUNIQUE失败的原因是COUNTUNIQUE只能返回唯一用户的数量,无法关联每个用户对应的total_paid数值,自然无法完成求和计算。

原生SQL 实现方案

和上面Google Sheets的QUERY逻辑完全对齐,支持绝大多数SQL方言(MySQL/PostgreSQL/BigQuery等均可直接运行),迁移零成本:

SELECT SUM(total_paid) AS total_paid
FROM (
    SELECT DISTINCT user_id, total_paid
    FROM 你的表名
) AS distinct_user_pay

如果你的业务场景中存在同个user_id对应不同total_paid的情况,可以用和Google Sheets完全一致的分组逻辑:

SELECT SUM(paid_per_user) AS total_paid
FROM (
    SELECT user_id, MAX(total_paid) AS paid_per_user
    FROM 你的表名
    GROUP BY user_id
) AS user_grouped_pay

内容的提问来源于stack exchange,提问作者Dar Shavit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:24:01