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

如何在Query分组时忽略D列末尾+字符并合并对应数据?

问题需求

现有Google Sheets数据,使用公式=query(A26:D64;"select B,max(C),D where A = TRUE group by B, D")进行分组统计,需调整逻辑:

  • 若D列条目末尾带有+字符,移除该+
  • 将对应C列的数据合并到移除+后的同组条目中(累加C列数值)

示例1

原始数据

ABCD
TrueCategory15Category1
TrueCategory22Category2+
TrueCategory23Category2
TrueCategory26Category2

当前Query结果

ABCD
TrueCategory15Category1
TrueCategory22Category2+
TrueCategory26Category2

期望结果

ABCD
TrueCategory15Category1
TrueCategory28Category2

示例2

原始数据

ABCD
TrueCategory15Category1
TrueCategory22Category2+

期望结果

ABCD
TrueCategory15Category1
TrueCategory22Category2

示例3

原始数据

ABCD
TrueCategory15Category1
TrueCategory21Category2
TrueCategory213Category2
TrueCategory23Category2+
TrueCategory24Category2+

期望结果

ABCD
TrueCategory15Category1
TrueCategory220Category2

解决方法

通过先预处理D列移除末尾+,再按B列和处理后的D列分组累加C列数值,可使用以下公式:

=QUERY(
  {A26:A64, B26:B64, C26:C64, ARRAYFORMULA(IF(RIGHT(D26:D64,1)="+", LEFT(D26:D64, LEN(D26:D64)-1), D26:D64))},
  "select Col1, Col2, sum(Col3), Col4 where Col1 = TRUE group by Col1, Col2, Col4 label Col1 'A', Col2 'B', sum(Col3) 'C', Col4 'D'",
  1
)

公式说明

  1. 数组预处理:用{}构造新数组,第四列通过ARRAYFORMULA批量判断并移除D列末尾的+
  2. 分组求和:基于新数组的A、B、处理后的D列分组,对C列求和
  3. 表头还原:label参数将结果列标题还原为原始的A、B、C、D
  4. 表头识别:最后一个参数1表示原始数据包含表头

若无需保留A列,可简化公式为:

=QUERY(
  {B26:B64, C26:C64, ARRAYFORMULA(IF(RIGHT(D26:D64,1)="+", LEFT(D26:D64, LEN(D26:D64)-1), D26:D64))},
  "select Col1, sum(Col2), Col3 group by Col1, Col3 label Col1 'B', sum(Col2) 'C', Col3 'D'",
  1
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:20:44