跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在Excel中将列列表转换为逗号分隔的列表?

Author Sun Last modified

在处理Excel数据时,您可能经常需要将一个垂直的项目列表转换为一个单一的、逗号分隔的字符串。无论您是在准备数据库输入、制作报告,还是仅仅整理工作表,都有多种方法可以实现这一目标。下面我们将探讨四种优化的方法:

使用公式将列列表转换为逗号分隔的列表

使用 Kutools for Excel 将列列表转换为逗号分隔的列表

使用 VBA 代码将列列表转换为逗号分隔的列表

convert a column list to a comma-separated list


使用公式将列列表转换为逗号分隔的列表

Excel 不包含列到逗号列表的功能,但您可以轻松实现它:在 Office 365/2019+ 中使用 TEXTJOIN,或在任何版本中使用 CONCAT+IF 来简化您的数据。

公式 1: TEXTJOIN 函数(Excel 2019 及更高版本,Office 365)

作为Excel最先进的连接函数,TEXTJOIN通过其双重功能——灵活的分隔符选择和自动空单元格管理——简化了流程,为现代Excel用户提供最简单的解决方案。

1. 选择要显示逗号分隔列表的单元格,然后输入以下公式:

=TEXTJOIN(", ", TRUE, A2:A10)

2. 按 Enter 键获取逗号分隔值。

convert a column list to a comma-separated list with textjoin function

此公式的解释:
  • ", " 是分隔符(逗号加空格)。
  • TRUE 告诉 Excel 跳过空单元格。
  • A2:A10 是您的源区域。
专业提示: 如果您只想获得唯一项,可以嵌套 UNIQUE:
=TEXTJOIN(", ", TRUE, UNIQUE(A2:A10))
优点:
  • 🔹简单实施:只需一个函数即可。
  • 🔹灵活的分隔符:可以根据需要使用 ", " (逗号加空格)或仅使用 ","。
  • 🔹自动处理:当 ignore_empty 设置为 TRUE 时会跳过空白单元格。
缺点:
  • 🔸需要 Excel 2019 及更高版本 / Office 365。

公式 2: CONCAT 和 IF 函数(所有 Excel 版本)

在 TEXTJOIN 出现之前,您可以结合 CONCAT 和 IF 函数来组装列表,然后去掉前导分隔符。

1. 选择要显示逗号分隔列表的单元格,然后输入以下公式:

=CONCAT(IF(A2:A10<>"", A2:A10 & ", ", ""))

2. 同时按下 Ctrl + Shift + Enter 键以获取结果。

convert a column list to a comma-separated list with CONCAT function

此公式的解释:
  • IF(A2:A100<>"", A2:A100 & ",", ""):检查 A2:A100 中的每个单元格。如果单元格不为空,则返回其值加上逗号;否则返回空字符串。
  • CONCAT(...): 将该数组的所有元素连接成一个连续的字符串。
优点:
  • 🔹广泛的兼容性:适用于支持数组公式的任何 Excel 版本,无需依赖新函数。
  • 🔹忽略空白单元格:IF 检查会自动跳过空白单元格。
缺点:
  • 🔸操作繁琐:必须作为数组公式输入,要求用户按下 Ctrl + Shift + Enter——这是许多初学者容易忘记的操作。
  • 🔸性能差:在处理大数据集(数万行)时,计算速度可能会显著减慢甚至挂起。
  • 🔸固定结果:如果要去掉最后一个分隔符,您需要额外的步骤来删除尾随逗号。

使用 Kutools for Excel 将列列表转换为逗号分隔的列表

Kutools for Excel 包含一个强大的“合并行、列或单元格而不丢失数据”工具,让您只需点击几下,就可以将整个列的内容合并到一个单元格中。通过选择您的源区域并指定分隔符(无论是逗号、分号、空格还是任何自定义符号),您可以立即生成一个整合的、带分隔符的列表,而无需手动复制和粘贴每一项。该工具还提供了忽略空白单元格、保留原始格式的选项,使其成为快速将垂直数据转换为整洁的逗号分隔列表的理想解决方案。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1. 选择要转换为逗号分隔列表的列列表,并单击 Kutools > 合并与拆分 > 合并行、列或单元格而不丢失数据。

click Combine Rows, Columns or Cells without Losing Data feature of kutools

2. 在打开的“合并列或行”对话框中,您需要:

  • (1) 在“根据以下选项合并所选单元格”部分中勾选“合并到单个单元格”选项。
  • (2) 在“指定分隔符”部分中,勾选“其他分隔符”选项,并输入逗号 ", "。
  • (3.) 选择如何处理原始单元格数据。(您可以保留原始单元格的内容,也可以从原始单元格中删除内容。)
  • (4.) 在“放置结果到”部分指定输出单元格,选择“其他单元格”选项并单击以选择一个单元格来输出结果。
  • (5.) 最后,单击确定按钮。
    set options in the dialog box

结果将插入到您指定的目标单元格中。

convert a column list to a comma-separated list with kutools

优点:
  • 🔹极其用户友好。
  • 🔹无需公式或代码。
  • 🔹顺利处理大范围。
  • 🔹合并行、列或区域,使用任意分隔符,保留格式,并选择输出位置。
缺点:
  • 🔸需要安装。

使用 VBA 代码将列列表转换为逗号分隔的列表

另外,如果您希望自动化任务或需要处理更大、动态变化的范围,您可以编写一个 VBA 宏,该宏遍历指定列中的每个单元格,将其非空值后接逗号(或您选择的任何分隔符)追加起来,去掉末尾多余的分隔符,并将完全连接的、逗号分隔的字符串输出到目标单元格中。

1. 按住键盘上的 Alt F11 键以打开 Microsoft Visual Basic for Applications 窗口。

2. 单击 插入 > 模块,并将 VBA 复制到模块中。

VBA:将列列表转换为逗号分隔的列表

Sub ChangeRange()
    ' Updateby Extendoffice
    Dim rng As Range
    Dim InputRng As Range, OutRng As Range
    Dim outStr As String
    Dim xTitleId As String
    xTitleId = "KutoolsforExcel"
    Set InputRng = Application.Selection
    Set InputRng = Application.InputBox("Select source range:", xTitleId, InputRng.Address, Type:=8)
    Set OutRng = Application.InputBox("Output to (single cell):", xTitleId, Type:=8)
    outStr = ""
    For Each rng In InputRng
        If Len(Trim(rng.Value)) > 0 Then
            If outStr = "" Then
                outStr = rng.Value
            Else
                outStr = outStr & ", " & rng.Value
            End If
        End If
    Next rng
    OutRng.Value = outStr
End Sub

3. 单击 运行 按钮或按 F5 键运行 VBA。屏幕上会显示一个对话框,您可以选择要转换的列列表。请参见截图:

vba code to select the column list you want to convert

4. 单击 确定,然后会弹出另一个对话框供您选择一个单元格。请参见截图:

vba code to select a cell for putting the result

5. 单击 确定,列列表中的所有值都会被转换为一个由逗号分隔的列表在一个单元格中。

convert a column list to a comma-separated list with vba code


结论:

  • 为了简洁和性能,建议在 Excel 2019/365 中使用 TEXTJOIN。
  • 为了兼容性,CONCAT + IF 数组方法适用于所有版本。
  • 对于不需要公式的单次任务,Kutools 提供了一个点选式解决方案。
  • 对于完全自动化或复杂规则,VBA 宏是最灵活的选择。

选择适合于您的 Excel 版本、任务频率以及对插件或 VBA 的熟悉程度的方法。有了这些优化的技术,将任何列转换为整齐的逗号分隔列表变得轻而易举。如果您有兴趣了解更多 Excel 技巧和窍门,我们的网站提供了数千个教程,帮助您精通 Excel


相关文章:

最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠