跳至主要内容

如何根据条件在Excel中轻松合并文本?

Author: Xiaoyang Last Modified: 2025-07-31

在Excel中根据特定条件合并文本是一项非常有价值的技术,有助于简化数据分析,尤其是在处理庞大或复杂的数据集时。此操作使用户能够根据条件或关键字合并单元格值,从而使报告更易读,并有助于深入洞察分组数据。例如,假如你想列出与每个国家相关的所有名称;通过条件合并文本可以简洁地完成这一任务。下面,你将找到几种在Excel中实现这一目标的实用方法,适用于不同版本和用户偏好。

concatenate text based on criteria

使用TEXTJOIN函数根据条件合并文本

TEXTJOIN函数结合IF函数提供了一种高效的解决方案,可以根据给定条件在Excel中合并文本。该方法适用于Excel 2019、Excel 2021和Excel 365。当你希望在满足特定条件的情况下合并值时,这种方法特别有用,例如将属于某个特定国家的所有名称进行分组。该方法是动态的,并且易于适应数据的变化。

这项技术的一大优势在于其速度和基于公式的灵活性,非常适合实时数据更新或大型数据集。但需要注意的是,它仅适用于较新版本的Excel。如果你使用的是旧版本,请考虑以下替代方案。

1. 在目标单元格(例如E2)中输入以下公式:

=TEXTJOIN(", ", TRUE, IF($A$2:$A$15=D2, $B$2:$B$15, ""))

2在Excel 2019中,输入公式后,使用组合键 Ctrl + Shift + Enter 将其作为数组公式应用。在Excel 365/2021及更高版本中,只需按 Enter。然后,向下拖动填充柄以填充代表不同条件的其他单元格的公式。见下图:
concatenated based on the criteria by TEXTJOIN function

此公式的解释:
  • TEXTJOIN: 将多个单元格中的文本连接在一起,用指定的分隔符(如“,”)分隔每个文本。
  • IF函数:检查A2:A15范围内的每个值,看是否与D2中的条件匹配,并在匹配时返回另一范围内的相应值。

提示:如果你正在处理非常大的数据集,启用手动计算模式或限制计算区域可以帮助保持性能。仔细检查你的范围,确保它们完全对齐;否则,公式可能会返回错误或意外结果。

如果你的Excel不支持TEXTJOIN,或者你需要更多灵活性(例如忽略错误、使用不同的分隔符或处理空白),请继续阅读以了解更多通用方法。


使用Kutools for Excel根据条件合并文本

对于Excel版本未提供“TEXTJOIN”功能或偏好界面驱动方法而非公式的用户,Kutools for Excel为根据条件合并文本提供了直接的解决方案。此方法无需复杂的公式,适用于所有版本的Excel,使其可广泛应用于各类用户。Kutools与Excel无缝集成,非常适合那些在日常工作中重视可靠性和节省时间的用户。

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

要使用此功能,首先安装Kutools for Excel。安装完成后,执行以下操作:

  1. 打开工作表,然后转到“Kutools”选项卡,选择“高级LOOKUP”,接着选择“一对多查找(返回多个结果)”。
  2. 在出现的对话框中,指定显示结果的“输出至”区域,以及作为唯一关键字或条件的“待检索值区域”。
  3. 选择完整的数据集作为源表。
  4. 使用提供的下拉菜单设置“关键列”(包含你条件的列,例如国家)和“返回列”(包含要合并值的列,例如名称)。
  5. 点击“确定”以执行操作。
    specify the options in the dialog box

结果:Kutools将立即根据你指定的条件合并相关文本,并在输出区域中显示结果,如下所示:
concatenated based on the criteria by kutools

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

使用Kutools的优势:

  • 适用于任何版本的Excel
  • 无需输入公式或进行数组操作
  • 减少因复杂单元格引用而导致的错误风险
  • 适合不熟悉高级公式的用户

使用FILTER和TEXTJOIN函数根据条件合并文本(适用于Excel365/2021或更高版本的替代方法)

在Excel 365或Excel 2021及以上版本中,FILTERTEXTJOIN的结合提供了另一种高效且动态的方式来根据条件合并文本值。这对于希望避免数组公式但仍想利用最新Excel功能的用户来说尤其方便。

1. 在结果单元格(例如E2)中,输入以下公式:

=TEXTJOIN(", ", TRUE, FILTER(B$2:B$15, A$2:A$15=D2))

2. 按Enter确认公式,然后使用填充柄向下拖动公式,以覆盖所需的行数。

此方法无需按Ctrl + Shift + Enter,并且在数据变化时自动适应,因此对于动态表格非常稳健。在上述公式中,B$2:B$15是要合并的列,A$2:A$15是条件引用,D2是具体的条件值。根据你的数据集替换相应的范围。请注意,FILTER需要兼容的Excel版本。


使用用户自定义函数根据条件合并文本

对于寻求定制灵活方法的用户——尤其是在缺乏动态数组函数的Excel版本中——用VBA编写的用户自定义函数(UDF)为根据给定条件合并文本提供了一个强大解决方案。此方法允许你根据需要调整分隔符或逻辑,在传统Excel环境或特定定制工作流中非常实用。然而,这需要对Excel VBA编辑器和宏安全设置有基本了解。

1. 按ALT + F11键启动“Microsoft Visual Basic for Applications”窗口。

2. 在VBA窗口中,点击“插入”>“模块”。接下来,将以下代码复制并粘贴到出现的模块面板中:

VBA代码:根据条件合并文本

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. 粘贴代码后,保存并关闭代码窗口。返回到你的Excel工作表。要使用此UDF,请在E2单元格中输入类似以下的公式,然后使用填充柄向下拖动公式以覆盖其他值:

=CONCATENATEIF($A$2:$A$15, D2, $B$2:$B$15, ",")

 User Defined Function formula to concatenate names based on criteria

注意:在上述公式中,A2:A15表示带有条件的范围(例如国家),D2是要匹配的条件,B2:B15是要合并文本的范围。默认分隔符为逗号(“,”),但可以更改为任何你喜欢的字符或字符串。确保你的条件和合并范围大小相同,否则函数将返回错误。

UDFs小提示:

  • 必须启用宏才能使UDFs正常工作。
  • 当源数据发生变化时,UDFs不会自动重新计算——如有必要,请按F9刷新。

这种基于VBA的方法最适合熟悉宏的用户,或在原生Excel功能不可用时使用。修改VBA代码的灵活性支持高级合并逻辑或定制格式。


在选择最适合在Excel中根据条件合并文本的方法时,请考虑你的Excel版本、操作频率(一次性 vs. 反复性)以及你对公式或插件的熟悉程度。如果遇到公式错误,请仔细检查你的范围是否匹配,并且所有引用都指向预期的行或列。对于涉及VBA的解决方案,请确保启用了宏,对于Kutools,请验证成功安装。如果结果出乎意料或为空,请确认确实存在符合所选条件的数据。将这些方法结合到你的日常工作流程中,可以大大提高生产力,确保干净的数据摘要,并减少手动编辑。如果你需要其他数据处理任务的帮助,请访问我们的教程中心获取更多Excel见解


最佳 Office 办公效率工具

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

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


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

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!