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

如何在Google Sheets中合并不同命名规则的数据行并求和

问题描述

场景1:同编号道路的不同命名变体汇总

原始数据:

RoadAccident
I-1010
I-5310
I-10 East5
I-10/S5

期望汇总结果:

RoadAccident
I-1020
I-5310

场景2:街道名称缩写与全称的汇总

原始数据:

RoadAccident
US STREET10
US ST10
5 AVENUE5
5 AVE5

期望汇总结果:

RoadAccident
US STREET20
5 AVENUE10

此前查阅过相关讨论,但未找到合并相似行并对另一列求和的具体方法,寻求解决方案。

解决方案

针对两种场景,可通过Google Sheets的正则匹配+分组求和函数实现,以下是具体方法:

处理场景1:同编号道路变体汇总

方法1:批量自动汇总(QUERY+REGEXREPLACE)

假设原始数据在A:B列,在空白单元格输入公式:

=QUERY(
  {ARRAYFORMULA(REGEXREPLACE(A2:A, "^I-10.*", "I-10")), B2:B},
  "SELECT Col1, SUM(Col2) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 'Road', SUM(Col2) 'Accident'"
)
  • 逻辑:用REGEXREPLACE将所有以I-10开头的名称统一替换为I-10,再通过QUERY分组求和。

方法2:单条道路手动求和(SUMIF)

若仅需针对特定道路计算,可直接用:

  • I-10总和:=SUMIF(A:A, "I-10*", B:B)
  • I-53总和:=SUMIF(A:A, "I-53", B:B)
    之后手动整理成表格即可。

处理场景2:街道缩写与全称匹配汇总

方法1:批量统一名称后求和(QUERY+REGEXREPLACE)

假设原始数据在A:B列,输入公式:

=QUERY(
  {ARRAYFORMULA(REGEXREPLACE(REGEXREPLACE(A2:A, "\bST\b", "STREET"), "\bAVE\b", "AVENUE")), B2:B},
  "SELECT Col1, SUM(Col2) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 'Road', SUM(Col2) 'Accident'"
)
  • 逻辑:用两次REGEXREPLACE分别将ST替换为STREET、AVE替换为AVENUE,统一名称格式后分组求和。

方法2:自定义映射表扩展适配(VLOOKUP+SUMIF)

若有更多缩写规则,先建立映射表(例:D列存缩写,E列存对应全称):

缩写全称
STSTREET
AVEAVENUE

然后用公式统一名称:

=ARRAYFORMULA(IFNA(VLOOKUP(REGEXEXTRACT(A2:A, "\b[A-Z]{2,}\b"), D:E, 2, FALSE), A2:A))

得到统一名称列后,再用SUMIF或QUERY完成求和分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:31:10