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

如何按指定列合并行并求和指定列,QUERY函数能否实现?

方案1:调整QUERY写法

QUERY只返回你指定的列是因为SELECT语句中只声明了B、sum(E)、sum(F)三个返回项。你筛选的是同一姓名、同一项目下的行,AVS、Adresse、Projet Films这类属性的取值在符合条件的行里完全一致,直接把这些列加到SELECT中,同时补充到GROUP BY列表里即可,不会影响求和结果。
调整后公式示例(请把列序号替换成你表中对应列的实际序号,示例假设AVS为A列、Adresse为C列、Projet Films为G列):
=QUERY(BD!A1:GF6;"SELECT A, B, C, D, G, sum(E), sum(F) where D='Grand Nord' AND B='Robin Decoster' GROUP BY A, B, C, D, G")
注意:所有没有使用sum这类聚合函数的列,都必须全部放到GROUP BY列表中,否则公式会报错。

方案2:BYROW+SUMIFS组合(灵活度更高)

如果你要保留的列多,不想一个个调整QUERY的GROUP BY项,可以用这个方案,先提取符合条件的不重复基础信息,再单独对E、F列求和:

=LET(
  筛选范围,BD!A1:GF6,
  符合条件行,FILTER(筛选范围,(D:D="Grand Nord")*(B:B="Robin Decoster")),
  保留列,UNIQUE(CHOOSECOLS(符合条件行,1,2,3,4,7)), // 括号内填入所有你要保留的非求和列的序号
  求和E,BYROW(保留列,LAMBDA(x,SUMIFS(E:E,B:B,INDEX(x,2),D:D,INDEX(x,4)))),
  求和F,BYROW(保留列,LAMBDA(x,SUMIFS(F:F,B:B,INDEX(x,2),D:D,INDEX(x,4)))),
  HSTACK(保留列,求和E,求和F)
)

该方案后续调整保留列时,只需要修改CHOOSECOLS内的列序号即可,不用改动其他逻辑。

注意事项

  • 两个方案都默认同姓名+同项目的条件下,非求和列的取值唯一,如果存在同一条件下非求和列取值不同的情况,需要先确认你要保留的取值规则再调整逻辑。
  • 如果你的表格公式分隔符用的是逗号而非分号,把公式里的分号全部替换为逗号即可。

内容的提问来源于stack exchange,提问作者Robin Erard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:06:03