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

Excel如何编写公式将带数量标注的单元格内容转为重复值逗号分隔串

Excel单元格内容批量重复转换公式方案

默认原始数据存放在A1单元格,你可根据自己使用的Excel版本选择对应方案:

适用Excel 365/2021及以上版本(支持动态数组)

单个公式即可完成全部转换:

=TEXTJOIN(",",TRUE,
  LET(
    arr,TEXTSPLIT(TRIM(A1),","),
    num,IFERROR(TEXTBEFORE(arr,"("),arr),
    cnt,IFERROR(--TEXTBEFORE(TEXTAFTER(arr,"(",,"",1),"pcs"),1),
    exp,REPT(num&",",cnt),
    LEFT(exp,LEN(exp)-1)
  )
)

公式逻辑说明:

  • 先用TRIM去除原始内容首尾多余空格,再用TEXTSPLIT按逗号拆分为数组
  • 提取每个元素中(前面的数字编号,无括号的元素直接返回本身作为编号
  • 提取括号内的数字(去除pcs后缀)作为重复次数,无括号的元素默认重复次数为1
  • 按次数重复编号+逗号的组合,最后删除每个组合末尾多余的逗号
  • TEXTJOIN第二个参数设为TRUE,自动忽略所有空值后拼接成完整字符串

适用旧版Excel(无动态数组功能)

需搭配辅助列实现:

  1. B1单元格输入内容拆分公式,下拉到足够覆盖所有拆分结果的行数:
=TRIM(MID(SUBSTITUTE($A$1,",",REPT(" ",999)),ROW(A1)*999-998,999))
  1. C1单元格输入编号提取公式,下拉:
=IF(B1="","",IFERROR(LEFT(B1,FIND("(",B1)-1),B1))
  1. D1单元格输入重复次数提取公式,下拉:
=IF(B1="","",IFERROR(--LEFT(MID(B1,FIND("(",B1)+1,99),FIND("pcs",MID(B1,FIND("(",B1)+1,99))-1),1))
  1. E1单元格输入重复内容生成公式,下拉:
=IF(B1="","",REPT(C1&",",D1))
  1. 最终拼接所有结果,删除末尾多余逗号:
=LEFT(PHONETIC(E:E),LEN(PHONETIC(E:E))-1)

注:如果旧版Excel不支持PHONETIC函数,可自行编写VBA自定义拼接函数实现最终合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:15:03