You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel多行文本合并公式需求:基于前两列值合并多行文本

Excel多行文本合并公式需求:基于前两列值合并多行文本

嘿,刚好之前帮朋友处理过几乎一模一样的Excel合并需求,给你整理了几个实用的公式方案,完美解决基于前两列(No.和Type)合并多行Comment的问题~

先看你的数据源

No.TypeLine No.CommentDate
532549Fault1000Case 32549 - No Output5/25/2021
532549Resolution1000Job - No Output5/25/2021
532549Resolution2000Problem - Firmware Mismatch5/25/2021
532549Resolution3000Repair - Update to Current Firmware (Unit Still Running Very5/25/2021
532549Resolution4000Old 1.1.15)4/24/2021
532549Resolution5000Note - If transmission fails, reboot unit and retry(假设此处为完整文本)

预期合并效果

你想要的应该是这样:把No.和Type完全相同的行对应的Comment文本合并到一起,包括像Line 3000和4000那种拆分的内容也要连起来:

No.TypeMerged Comment
532549FaultCase 32549 - No Output
532549ResolutionJob - No Output; Problem - Firmware Mismatch; Repair - Update to Current Firmware (Unit Still Running Very Old 1.1.15); Note - If transmission fails, reboot unit and retry

方案1:Excel 365/2021 专属动态数组方案(最省心)

如果你用的是新版Excel(365或2021),可以一步到位:

  1. 提取唯一的No.+Type组合:在空白单元格(比如G2)输入:

    =UNIQUE(A2:B7)
    

    回车后会自动生成所有不重复的编号+类型对,不用手动下拉。

  2. 合并对应Comment:在旁边的H2单元格输入:

    =BYROW(G2#:H2#, LAMBDA(x, TEXTJOIN("; ", TRUE, IF((A2:A7=x[1])*(B2:B7=x[2]), C2:C7, ""))))
    

    这个公式会自动遍历所有唯一组合,把匹配到的Comment用分号加空格连接起来,而且会自动忽略空值(TRUE参数的作用)。


方案2:兼容旧版Excel的数组公式

如果你的Excel版本没有动态数组功能(比如2019及更早),用这个数组公式:
在空白单元格(比如D2)输入:

=TEXTJOIN("; ", TRUE, IF((A$2:A$7=A2)*(B$2:B$7=B2), C$2:C$7, ""))

输入完后不要直接回车,按住Ctrl+Shift+Enter组合键确认,然后下拉填充到所有行。

如果你的Excel连TEXTJOIN都没有(比如2016及更早),可以用PHONETIC函数替代(仅限文本内容):

=PHONETIC(IF((A$2:A$7=A2)*(B$2:B$7=B2), C$2:C$7&"; ", ""))

同样需要按Ctrl+Shift+Enter确认数组公式,下拉填充。


小提示

  • 可以修改分隔符:把公式里的"; "改成你需要的格式,比如换行用CHAR(10),记得给单元格设置自动换行
  • 文本长度:Excel单元格支持最多32767个字符,大部分场景下完全够用。

备注:内容来源于stack exchange,提问作者dark_tribute381

火山引擎 最新活动