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

如何在QUERY函数中用GROUP BY子句对多列姓名单元格分组求和?

解决方法

你可以通过构造「姓名-数值」对应数组后再分组求和的方式实现需求,具体公式如下:

=QUERY(
  {
    FLATTEN(Data!A2:D),
    FLATTEN(IF(Data!A2:D<>"", Data!E2:E, ))
  },
  "SELECT Col1, SUM(Col2) 
   WHERE Col1 IS NOT NULL 
   GROUP BY Col1 
   ORDER BY SUM(Col2) DESC 
   LABEL Col1 '姓名', SUM(Col2) '数值总和'"
)

公式说明:

  • FLATTEN(Data!A2:D):将4列姓名数据扁平化为单列,所有非空姓名依次排列
  • FLATTEN(IF(Data!A2:D<>"", Data!E2:E, )):为每个姓名匹配对应行的数值——仅当姓名单元格非空时,提取该行的数值,空姓名位置留空,最终扁平化后与姓名列一一对应
  • 外层QUERY函数:
    1. 筛选出非空的姓名条目
    2. 按姓名分组,对对应数值求和
    3. 按数值总和降序排序
    4. 自定义表头为「姓名」和「数值总和」

执行后会直接生成你需要的结果:

姓名数值总和
Becky8
Andy7
Dorothy6
Edith5
Carl5

内容的提问来源于stack exchange,提问作者Herr Jemine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:35:26