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

Excel多值匹配求和:单个单元格多B ID对应A ID求B Value总和

解决多B ID对应A ID的分组求和问题

针对A ID对应多个空格分隔B ID、需匹配B Value求和的场景,以下是三种实用解决方案,覆盖不同Excel版本和数据量需求:


一、Excel函数法(适用于Excel 365/2021及以上版本)

利用TEXTSPLIT拆分空格分隔的B ID,结合SUMIF批量求和,直接在目标单元格输入公式即可:
假设右侧A ID对应表为Sheet2!A:B(A列存A ID,B列存空格分隔的B ID),左侧表B ID和B Value在Sheet1!A:B,待填充的Grouped Value列在Sheet1!C:

  1. 选中Sheet1!C2(首个待填充单元格)
  2. 输入公式:
=SUM(SUMIF(Sheet1!A:A, TEXTSPLIT(VLOOKUP(A2, Sheet2!A:B, 2, FALSE), " "), Sheet1!B:B))
  1. 下拉填充公式至整列

旧版本Excel兼容方案(无TEXTSPLIT)

用FILTERXML替代TEXTSPLIT拆分字符串,公式改为:

=SUM(SUMIF(Sheet1!A:A, FILTERXML("<t><s>"&SUBSTITUTE(VLOOKUP(A2, Sheet2!A:B, 2, FALSE)," ","</s><s>")&"</s></t>","//s"), Sheet1!B:B))

二、Power Query法(适用于大数据量,高效稳定)

数据量极大时函数易卡顿,Power Query批量处理更顺畅:

  1. 选中右侧A ID对应表的数据区域,点击数据选项卡 → 从表格/区域,加载到Power Query编辑器
  2. 在编辑器中选中B ID列,点击转换选项卡 → 拆分列 → 按分隔符,选择空格并勾选拆分为行
  3. 关闭编辑器,选择仅创建连接(无需加载到工作表)
  4. 选中左侧表数据区域,同样加载到Power Query编辑器
  5. 点击合并查询 → 合并为新查询,用左侧表的B ID列和右侧拆分后的B ID列匹配,合并类型选左外部
  6. 展开合并后的列,仅保留A ID列
  7. 添加分组依据:点击转换 → 分组依据,分组列为A ID,新列名设为Grouped Value,操作选求和,目标列选B Value
  8. 将处理后的查询加载回原工作表,替换或追加到左侧表的Grouped Value列

三、VBA自定义函数法(灵活通用,适配全版本)

编写自定义函数,直接在单元格调用:

  1. 按Alt+F11打开VBA编辑器
  2. 右键工作簿 → 插入 → 模块,粘贴以下代码:
Function GetGroupedSum(aID As String, aRange As Range, bRange As Range) As Double
    Dim bIDs As Variant
    Dim sumVal As Double
    Dim i As Integer
    ' 查找对应A ID的B ID字符串
    Dim bIDStr As String
    bIDStr = Application.VLookup(aID, aRange, 2, False)
    ' 拆分B ID数组
    bIDs = Split(bIDStr, " ")
    ' 遍历求和
    sumVal = 0
    For i = LBound(bIDs) To UBound(bIDs)
        sumVal = sumVal + Application.SumIf(bRange.Columns(1), bIDs(i), bRange.Columns(2))
    Next i
    GetGroupedSum = sumVal
End Function
  1. 返回Excel,在Sheet1!C2输入公式:
=GetGroupedSum(A2, Sheet2!A:B, Sheet1!A:B)
  1. 下拉填充即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:42:18