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

求Excel公式:将A列相同值对应B列数量以‘+’合并至D列

Excel 合并相同A列对应B列内容的公式方案

适用于Excel 365/2021及以上版本

利用TEXTJOIN函数可直接实现需求,分两种场景:

场景1:合并所有相同A列对应的B列内容

在D2单元格输入以下公式,Excel 365/2021动态数组版本直接回车,稍旧版本按Ctrl+Shift+Enter执行数组运算,之后下拉填充:

=TEXTJOIN("+",TRUE,IF($A$2:$A$100=A2,$B$2:$B$100,""))
  • $A$2:$A$100和$B$2:$B$100替换为你实际的数据范围
  • TRUE参数表示忽略空值

场景2:仅合并C列标识为a/b/c等的对应B列内容

调整公式加入C列的条件判断,同样按对应方式执行:

=TEXTJOIN("+",TRUE,IF(($A$2:$A$100=A2)*($C$2:$C$100={"a","b","c"}),$B$2:$B$100,""))
  • {"a","b","c"}可根据实际需要添加更多标识值

适用于旧版Excel(无TEXTJOIN函数)

方法1:辅助列+PHONETIC函数(仅支持文本型B列内容)

  1. 新增辅助列E,E2输入公式并下拉:
    =IF(A2=A1,E1&"+"&B2,B2)
    
  2. D2输入公式并下拉,仅显示每个A列分组最后一行的合并结果:
    =IF(COUNTIF(A2:A$100,A2)=1,E2,"")
    

方法2:自定义VBA函数

  1. 按Alt+F11打开VBA编辑器,插入模块后粘贴以下代码:
    Function JoinSameA(rngA As Range, rngB As Range, rngC As Range, key As Variant, Optional delimiter As String = "+") As String
        Dim i As Long
        Dim result As String
        result = ""
        For i = 1 To rngA.Rows.Count
            ' 可根据需求调整C列的标识判断条件
            If rngA.Cells(i, 1).Value = key And (rngC.Cells(i, 1).Value = "a" Or rngC.Cells(i, 1).Value = "b" Or rngC.Cells(i, 1).Value = "c") Then
                If result <> "" Then result = result & delimiter
                result = result & rngB.Cells(i, 1).Value
            End If
        Next i
        JoinSameA = result
    End Function
    
  2. 返回Excel,D2输入公式并下拉:
    =JoinSameA($A$2:$A$100,$B$2:$B$100,$C$2:$C$100,A2)
    

内容的提问来源于stack exchange,提问作者August's Leo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:03:19