KutoolsforOffice — 一套方案,五大工具。事半功倍。

Excel 教程:合并列、行、单元格

作者修改日期

在日常 Excel 工作中,您可能经常需要合并列、行或单元格——例如将名字和姓氏两列合并为一列以生成全名,根据相同 ID 合并行并对对应数值求和,或将一个单元格区域合并为单个单元格等。本教程全面涵盖 Excel 中合并列、行与单元格的所有常见场景,并为您提供多样化的高效解决方案。

本教程导航

1 将合并列/行合并到一个单元格中

1.1 将合并列/行合并到一个单元格中,并以空格、逗号或其他分隔符分隔

1.11 使用 & 符号

1.12 使用 CONCATENATE 函数(Excel 2016 或更早版本)

1.13 使用 CONCAT 函数或 TEXTJOIN 函数(Excel 2019 或 Excel 365)

1.14 使用记事本(仅适用于合并列)

扩展:将合并列/行合并到一个单元格中,并以换行符作为分隔符

1.2 将合并列/行合并到一个单元格中且不包含空白

1.21 使用 TEXTJOIN 函数(Excel 2019 或 Excel 365)

1.22 使用 & 符号

1.23 使用 VBA 代码在单元格末尾添加内容

1.3 将合并列/行/单元格合并到一个单元格中且不丢失数据

1.4 如果为空则合并两列

1.41 使用 IF 函数

1.42 使用 VBA

2. 按相同 ID 合并行

2.1 按相同 ID 合并行,并以逗号或其他分隔符分隔

2.11 使用 VBA

2.12 使用 IF 函数添加辅助列

2.13 使用便捷工具 – 高级合并行

2.2 按相同 ID 合并行并进行一些计算

2.21 使用“合并计算”功能

2.22 使用 VBA

2.23 使用便捷工具 – 高级合并行

2.3 合并具有相同值的相邻行

2.31 使用 VBA

2.32 使用便捷工具 – 合并相同单元格

3. 合并单元格

3.1. 将多行多列的内容合并到一个单元格中

3.11 使用 & 符号

3.12 使用 CONCATENATE 函数(Excel 2016 或更早版本)

3。13 使用 CONCAT 函数或 TEXTJOIN 函数(适用于 Excel 2019 或 Excel 365)

3.14 使用合并列/行/单元格合并到一个单元格中且不丢失数据

3.2. 将单元格合并为单列或单行

3.21 命名区域并使用 INDEX 函数(仅适用于单列)

3.22 VBA(仅适用于单列)

3.23 使用便捷工具 – 转换区域

3.3 将多列堆叠为一列且不含重复项

3.31 复制粘贴并使用删除重复

3.32 使用 VBA

3.4. 合并单元格并保留原有格式

3.41 在公式中嵌入 TEXT 函数

3.42 使用 Microsoft Word

3.43 使用便捷工具 – 合并时不丢失数据

3.5 合并单元格生成日期

3.51 使用 DATE 函数

 

在本教程中,我精心准备了一些示例,以清晰展示相关方法的实际应用。当您使用下方的 VBA 代码或公式时,可根据实际需求灵活调整引用内容,也可直接下载示例文件,立即体验这些高效方法。

文档示例单击下载示例文件


1 将合并列/行合并到一个单元格中

1.1 将合并列/行合并到一个单元格中,并以空格、逗号或其他分隔符分隔

在 Excel 中,将多列或多行内容合并到一个单元格中,并以逗号、空格或其他分隔符分隔(如下方截图所示),是最常用的操作之一。

将合并列合并到一个单元格中
将多列合并到一个单元格中
将合并行合并到一个单元格中
将多行合并到一个单元格中

1.11 使用与符号(&)

在 Excel 中,符号 & 通常用于连接文本。

示例:将名字(A 列)和姓氏(B 列)合并为全名

选择一个用于放置合并结果的单元格,然后输入如下公式:

=A2&" "&B2

信息图标在该公式中,& 用于连接文本,A2 和 B2 是需要合并的两个文本,“ ”则作为结果单元格中分隔这两段文本的分隔符(即空格)。如果您希望改用逗号作为分隔符,只需将空格替换为双引号括起的逗号“,”即可。

Enter 键获取合并结果,然后向下拖动自动填充柄即可继续填充。

示例:将编号(第 15 行)和名称(第 16 行)合并到一个单元格中

如果您希望将合并行的内容整合到一个单元格中,请根据需要调整公式中的单元格引用和分隔符,然后向右拖动填充柄,即可快速获得合并结果。
 使用 & 符号合并行

1.12 使用 CONCATENATE 函数(Excel 2016 或更早版本)

如果您使用的是 Excel 2016 或更早版本,CONCATENATE 函数将为您提供有力支持。

CONCATENATE 函数语法
CONCATENATE (text 1,[text 2],…)

想了解更多关于 CONCATENATE 函数的详细信息?立即访问!

示例:将姓名(F 列)和地址(G 列)合并为一列

选择一个用于放置合并结果的单元格,然后输入如下公式:

=CONCATENATE(F2,",",G2)

信息图标在该公式中,F2 和 G2 是需要合并的两个文本,“,” 是结果单元格中用于分隔这两个文本的分隔符(逗号)。如果您希望使用空格作为分隔符,只需输入用双引号括起来的空格 “ ” 即可。

Enter 键获取合并结果,然后向下拖动自动填充柄即可快速填充其余合并结果。
使用 CONCATENATE 函数合并列

对于合并行,只需按需调整单元格引用和分隔符,然后向右拖动自动填充柄即可。
使用 CONCATENATE 函数合并行

1.13 使用 CONCAT 函数或 TEXTJOIN 函数(Excel 2019 或 Excel 365)

如果您使用的是 Excel 2019 或 Excel 365,CONCAT 函数和 TEXTJOIN 函数或许是更优之选。

CONCAT 函数语法
CONCAT (text 1,[text 2],…)

如需了解 CONCAT 函数的更多详细信息,请立即访问!

CONCAT 函数的用法与 CONCATENATE 函数完全相同。若要将名字和姓氏分别位于两列中的内容合并为一列,可使用以下公式:

=CONCAT(A21," ",B21)

信息图标在该公式中,A21 和 B21 是需要合并的两段文本,“ ”(空格)则是用于分隔它们的分隔符。若您希望使用其他分隔符,只需将相应字符用双引号括起并输入即可。

按 Enter 键获取合并结果,然后向下拖动自动填充柄以填充其余合并结果。
使用 CONCAT 函数合并列

与合并列不同,在合并行时,输入第一个公式后,您需要向右拖动自动填充柄,直至获得所有合并结果。

TEXTJOINT 函数语法
TEXTJOIN (delimiter, ignore_empty, text 1, [text 2], ...)

想了解更多关于 TEXTJOIN 函数的详细信息?立即访问:TEXTJOIN

使用 TEXTJOIN 合并合并列或行:

=TEXTJOIN(",",TRUE,E21:G21))

信息图标在该公式中,E21:G21 是需要合并的连续区域;“ ”(空格)是结果单元格中用于分隔文本的分隔符。若要使用其他分隔符,只需将相应字符用双引号括起即可。逻辑值“TRUE”表示合并时忽略空单元格;如需保留空单元格,请将 TRUE 替换为 FALSE。

按 Enter 键获取合并结果,然后向下拖动自动填充柄以填充其余合并结果。

忽略空值
使用 TEXTJOIN 函数合并列并忽略空单元格
包含空值
使用 TEXTJOIN 函数合并列并包含空单元格

1.14 使用记事本(仅适用于合并列)

1. 使用记事本即可实现列的合并(不支持行合并)。

选择要合并为一个单元格的区域,然后按下 Ctrl+C 键复制该区域。
复制数据区域

2. 打开记事本,然后按 Ctrl+V 即可粘贴已复制的内容。
打开记事本并粘贴数据

3. 在记事本中选择两个文本之间的制表符,然后按 Ctrl+H 启用替换功能,此时制表符已自动填入查找内容文本框中。
按 Ctrl + H 启用替换功能

4. 在替换为文本框中输入您希望用于分隔合并文本的分隔符,然后单击全部替换,随后关闭替换对话框。
在替换框中输入分隔符以分隔合并后的文本

5. 现在选中记事本中的文本,按下 Ctrl+C 复制,然后切换到 Excel,选择一个单元格并按下 Ctrl+V 粘贴合并结果。
列已合并到一个单元格中列已合并到一个单元格中

扩展:使用换行符作为分隔符合并合并列/行到一个单元格中

如果您希望将合并列或行合并到一个单元格中,并使用换行符作为分隔符(如下方截图所示):
使用换行符将列或行合并到一个单元格中

首先,您需要了解在 Excel 中,CHAR()函数可用于输入公式中难以直接键入的字符,例如 CHAR(10) 即可返回一个换行符。

然后将 CHAR(10) 应用于上述公式中,即可使用换行符作为分隔符合并合并列或行:

与符号:

=A49&CHAR(10)&B49

CONCATENATE 函数:

=CONCATENATE(A49,CHAR(10),B49)

CONCAT 函数

=CONCAT(A49,CHAR(10),B49)

TEXTJOIN 函数

=TEXTJOIN(CHAR(10),TRUE,A49:B49)

输入上述任一公式后,选中结果,然后单击开始> 自动换行
点击 开始 > 自动换行

现在,这些列已合并为一列,并以换行符分隔。
列已合并到一个单元格中,并以换行符分隔

提示图标如果您只想将某一列中的多行内容合并到一个单元格中,Excel 的“两端对齐”功能就能轻松实现!选中包含多行的列,然后点击开始> 填充> 两端对齐,这些内容便会自动合并到该区域顶部的单元格中,并以空格作为分隔符。

点击 开始 > 填充 > 两端对齐行已合并到顶部单元格中,并以空格分隔

1.2 将合并列/行合并到一个单元格中且不包含空白

本节教程将介绍如何将合并列或行合并到一个单元格中,并按如下截图所示进行忽略空白单元格:
合并列或行并跳过空单元格

1.21 使用 TEXTJOIN 函数(适用于 Excel 2019 或 Excel 365)

如果您使用的是 Excel 2019 或 Excel 365,全新函数 TEXTJOIN 能轻松搞定这项任务。

CONCATENATE 函数语法
TEXTJOIN (delimiter, ignore_empty, text 1, [text 2], ...)

有关 TEXTJOIN 函数的更多详情,请立即访问!

示例:将姓名(A 列)、编号(B 列)和域名(C 列)合并到一个单元格中,生成邮箱地址,其中部分编号可能为空。

选择一个用于放置合并结果的单元格,输入如下公式:

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

信息图标在该公式中,A2:C2 是待合并文本所在的区域;“““”表示结果单元格中用于分隔文本的分隔符(此处为空)。若您希望使用分隔符,请在双引号内输入相应字符,例如““,“”。逻辑值“TRUE”表示合并时忽略空单元格;若要保留空单元格,请将 TRUE 替换为 FALSE。

按下 Enter 键获取第一个结果,然后根据需要向右或向下拖动自动填充柄,即可快速生成所有结果。
使用 TEXTJOIN 函数合并列并跳过空单元格

1.22 使用 & 符号

如果您使用的是 Excel 2016 或更早版本,可使用 & 符号逐个连接文本,并手动跳过空单元格。

选择一个用于放置合并结果的单元格,然后输入如下公式:

=A10&C10

信息图标在该公式中,& 用于连接文本,A10 和 C10 是需要合并的两个文本。如果希望以逗号作为分隔符,只需在双引号中输入逗号(如“,”),并用 & 将两个文本连接起来。

按下 Enter 键即可获取合并结果,随后修改公式中的引用,就能获得下一个合并结果。
使用 & 符号合并列并跳过空单元格

1.23 使用自定义函数

对于使用 Excel 2016 及更早版本的用户,若需合并多个列或行并自动跳过空单元格,可通过 VBA 快速创建自定义函数轻松实现。

1. 按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 点击插入> 模块 即可插入一个新模块。
点击 插入 > 模块 以插入新模块

3. 将下方代码复制并粘贴到新模块中,然后保存。

VBA:合并单元格忽略空白单元格

Function Concatenatecells(ConcatArea As Range) As String
'updateby Extendoffice
  For Each n In ConcatArea: nn = IIf(n = "", nn & "", nn & n & "_"): Next
  Concatenatecells = Left(nn, Len(nn) - 1)
End Function

将代码复制并粘贴到模块中

4. 返回工作表,选择一个用于放置合并结果的单元格,然后输入公式。

=Concatenatecells(A15:C15)

信息图标在该公式中,A15:C15 为需要合并文本的区域。在 VBA 代码中,“_” 用作分隔合并结果中各段文本的分隔符,您可根据实际需求随时更改。
输入公式以获取结果


1.3 将合并列/行/单元格合并到一个单元格中且不丢失数据

如果您已在 Excel 中安装了 Kutools for Excel合并行/列/单元格并保留值功能将在各类合并任务中为您提供极大帮助。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

1. 请选择要合并的单元格,以及用于放置合并结果的目标单元格。
选择要合并的单元格和放置合并结果的单元格

2. 点击 Kutools > 合并和拆分 > 合并行/列/单元格并保留值
点击 Kutools 的“合并行、列或单元格而不丢失数据”功能

3. 在弹出的对话框中,请按以下方式指定选项:
在对话框中设置选项

1)指定要合并列、合并行,或将所有单元格合并为一个单元格。

合并列例如合并行例如合并到一个单元格例如
合并列 合并行合并到单个单元格

2)指定用于分隔合并结果中文本的分隔符。

3)指定合并结果的位置(选择“合并到一个单元格”选项时,此设置不可用)。

选择合并列选项时,您可以将结果放置在所选区域左侧或右侧的单元格中。

左边的单元格例如右边的单元格例如
将合并结果放在左侧单元格将合并结果放在右侧单元格

选择合并行选项时,您可以指定将结果放置在所选区域上方的单元格中,或下方的单元格中。

上面的单元格例如下面的单元格例如
将合并结果放在顶部单元格将合并结果放在底部单元格

4)指定如何处理合并结果。

4. 点击确定应用即可完成合并。

保留这些单元格的内容
保留合并单元格的内容
删除这些单元格的内容
删除合并单元格的内容
合并这些单元格
合并合并后的单元格

有关此功能的更多详情,请访问合并列、行或单元格且不丢失数据

想了解 Kutools for Excel 的更多详情,请立即访问!

如需免费试用 Kutools for Excel 30 天,请立即下载


1.4 如果为空则合并两列

有时,您可能希望在某一列包含空单元格的情况下合并两列。例如,A 列包含用户名及部分空单元格,B 列包含姓名;此时合并两列,仅用 B 列对应内容填充 A 列中的空单元格,如下图所示:
如果为空则合并两列

1.41 使用 IF 函数

IF 函数可用于测试特定条件。在此,您可以利用 IF 函数检测单元格是否为空,并在为空时用另一列的内容自动填充。

IF 函数语法
IF (logical_test, [value_if_true], [value_if_false])

有关 IF 函数的更多详情,请访问:IF

选择要放置合并结果的列的上面的单元格,然后复制或输入以下公式:

=IF(A2="",B2,A2)

然后按下 Enter 键获取第一个结果,并向下拖动自动填充柄,即可快速获取所有结果。
使用 IF 函数在为空时合并两列

现在,A 列中的空单元格已由 B 列的内容自动填充。

1.42 使用 VBA

以下 VBA 代码同样能高效完成此任务。

1. 按下 Alt+F11 键,打开 Microsoft Visual Basic for Applications 窗口,然后点击插入> 模块,即可创建一个新空白模块。

2. 将下方代码复制并粘贴到新建的模块中。

VBA:若为空则合并两列

Sub MergebyBlank()
'UpdatebyExtendoffice20220506
Dim xRg1, xRg2, xRgUser As Range
Dim xRg As Range
Dim xWsh As Worksheet
Dim xCount, xFNum  As Integer
Set xRg1 = Range("A:A")
Set xRg2 = Range("B:B")
Set xWsh = xRg1.Worksheet
Set xRgUser = xWsh.UsedRange
Set xRg1 = Intersect(xRgUser, xRg1)
Set xWsh = xRg2.Worksheet
Set xRgUser = xWsh.UsedRange
Set xRg2 = Intersect(xRgUser, xRg2)
xCount = xRg1.Count
If (xCount > xRg2.Count) Then
    xCount = xRg2.Count
End If
For xFNum = 1 To xCount
    If (xRg1.Item(xFNum).Value = "") Then
        If (xRg2.Item(xFNum).Value <> "") Then
            xRg1.Item(xFNum).Value = xRg2.Item(xFNum).Value
        End If
    ElseIf (xRg2.Item(xFNum).Value = "") Then
            If (xRg1.Item(xFNum).Value <> "") Then
            xRg2.Item(xFNum).Value = xRg1.Item(xFNum).Value
        End If
    End If
Next
End Sub

将代码复制并粘贴到模块中

信息图标在代码中,A:A 和 B:B 是待合并的两列,您可根据实际需求进行调整。

3. 然后按下 F5 键或点击运行运行按钮按钮,即可将 B 列中的值自动填充到 A 列的空白单元格中。


2 按相同 ID 合并合并行

假设您有一个包含多列的表格,其中某一列包含重复的 ID 值。本教程将为您介绍如何根据相同的 ID 合并表格行,并执行相应的计算。
示例数据

2.1 按相同 ID 合并行,并以逗号或其他分隔符分隔

本节将介绍如何按相同 ID 合并行,并以逗号分隔,如下图所示:
按相同 ID 合并行,并用逗号分隔

2.11 使用 VBA

以下提供了一段可完成此任务的 VBA 代码。

1. 按 Alt+F11 键打开 Microsoft Visual Basic for Applications 窗口,然后单击插入> 模块,创建一个新的空白模块。

2. 将以下代码复制并粘贴到新建的模块中。

VBA:按相同 ID 合并合并行

Sub Combine_Rows()
'UpdatebyExtendoffice20220506
Dim xRg As Range
Dim xRows As Long
Dim I As Long, J As Long, K As Long
On Error Resume Next
Set xRg = Application.InputBox("Select Range:", "Kutools For Excel", Selection.Address, , , , , 8)
Set xRg = Range(Intersect(xRg, ActiveSheet.UsedRange).Address)
If xRg Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
For I = xRows To 2 Step -1
For J = 1 To I - 1
If xRg(I, 1).Value = xRg(J, 1).Value And J <> I Then
For K = 2 To xRg.Columns.Count
If xRg(J, K).Value <> "" Then
If xRg(I, K).Value = "" Then
xRg(I, K) = xRg(J, K).Text
Else
xRg(I, K) = xRg(I, K).Text & "," & xRg(J, K).Text 'here uses comma as separator, you can change it to others as you need
End If
End If
Next
xRg(J, 1).EntireRow.Delete
I = I - 1
J = J - 1
End If
Next
Next
ActiveSheet.UsedRange.Columns.AutoFit
End Sub

将代码复制并粘贴到模块中

3. 然后按 F5 键,或单击功能区中的运行选择需要按相同 ID 合并行的表格按钮,随后将弹出一个 Kutools for Excel 对话框,供您选择需要按相同 ID 合并行的表格。
选择需要按相同 ID 合并行的表格

4. 单击确定,即可根据相同 ID 合并所选表格中的行。

2.12 使用 IF 函数添加辅助列

如果仅有两列,且您希望将具有相同 ID 的行合并,并以逗号分隔另一列的值(如下图所示),IF 函数即可满足您的需求。
按相同 ID 合并行,并将另一列的值用逗号分隔

1. 对 ID 列按 A 到 Z 排序:选中 ID 列,单击数据> 升序
数据 > 从 A 到 Z 排序

2. 然后在排序警告对话框中,勾选扩展选定区域选项,再单击排序
勾选“扩展选定区域”选项,然后点击排序

现在,相同 ID 的项目已集中排列在一起。
相同 ID 已被排序在一起

3. 在相邻列中,使用以下 IF 函数:

=IF(A17=A18,C17&", "&B18,B18)

信息图标公式中,A17 和 A18 是 ID 列中的两个相邻单元格(其中 A17 为 ID 列的标题),B18 是与 A18 对应的单元格。“,”表示使用逗号分隔数值。您可根据需要调整单元格引用及分隔符。

4. 按 Enter 键获取第一个结果,然后向下拖动自动填充柄即可获取所有结果。
输入公式以获取结果

5. 转到相邻列,输入以下公式:

=IF(A18A19,"Merged","")

信息图标在公式中,A18 和 A19 是 ID 列中的两个相邻单元格;若二者不相等,则返回“Merged”,否则返回空值。

6. 按 Enter 键获取第一个结果,然后向下拖动自动填充柄,即可快速填充所有结果。
输入公式以检查合并的单元格

7. 选中包含标题的最后一列公式,然后单击数据> 筛选
 点击 数据 > 筛选

8. 单击筛选按钮,在下拉菜单中勾选 Merged 复选框,再单击确定
在筛选列表中勾选“合并”复选框

现已仅筛选出已合并的行,请复制筛选后的数据并粘贴至其他位置。
复制筛选后的数据并粘贴到其他位置

想深入了解 IF 函数?立即访问:IF

2.13 使用便捷工具 – 高级合并行

如果您已在 Excel 中安装了 Kutools for Excel,即可轻松使用其高级合并行工具完成此任务。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

1. 选择表格,然后单击 Kutools > 合并和拆分 > 高级合并行
点击 Kutools 的“高级合并行”功能

2. 在高级合并行对话框中,请执行以下操作:

1)选择 ID 列,并将其设为主键

2)选择要使用分隔符合并值的列,单击合并,即可选择一个分隔符。

3)单击确定

现在行已按相同 ID 合并。
行已按相同 ID 合并

高级合并行功能可能会破坏原始数据,请在使用前务必将数据另存为副本。

有关此功能的更多详情,请访问高级合并行

想了解 Kutools for Excel 的更多详情,请立即访问!

如需体验 Kutools for Excel 的 30 天免费试用版,请立即下载

2.2 按相同 ID 合并行并进行一些计算

如果您希望按相同 ID 合并行,并对数值进行求和或其他计算(如下图所示),以下方法将为您提供帮助。
按相同 ID 合并行并进行一些计算

2.21 使用“合并计算”功能

如果仅有两列,其中一列包含文本(ID),另一列包含需要计算的数值(例如求和),Excel 内置的合并计算功能即可满足您的需求。

1. 选择一个用于放置合并结果的单元格,然后点击数据> 合并计算
点击 数据 > 合并计算

2. 在合并计算对话框中,请执行以下操作:

1)根据需要选择函数

2)单击箭头选择表格;

3)单击添加,将选择区域添加到所有引用列表中;

4)勾选首行最左列的复选框;

5)单击确定

表格现已按相同 ID 汇总求和。
表格已根据相同 ID 进行求和

2.22 使用 VBA

以下 VBA 代码同样可根据相同 ID 合并行并对数值求和。

1. 按下 Alt+F11 键,打开 Microsoft Visual Basic for Applications 窗口,然后单击插入> 模块,创建一个全新的空白模块。
点击 插入 > 模块 以创建新的空白模块

2. 在新模块中,复制并粘贴以下 VBA 代码。

VBA:合并重复行并求和

Sub CombineRows()
'Updateby Extendoffice
Dim WorkRng As Range
Dim Dic As Variant
Dim arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set Dic = CreateObject("Scripting.Dictionary")
arr = WorkRng.Value
For i = 1 To UBound(arr, 1)
    Dic(arr(i, 1)) = Dic(arr(i, 1)) + arr(i, 2)
Next
Application.ScreenUpdating = False
WorkRng.ClearContents
WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys)
WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items)
Application.ScreenUpdating = True
End Sub

3. 然后按 F5 键,或单击运行按钮按钮旁的运行,随后会弹出一个对话框供您选择所用表格,再单击确定

当前所选区域已按相同值合并并求和。

备注按钮VBA 可能会破坏原始数据,请在使用前务必将数据另存为副本。

2.23 使用便捷工具 – 高级合并行

如果表格中有超过两列需要合并并进行计算,例如有三列:第一列包含需合并的重复产品名称,第二列包含需用逗号分隔合并的店铺名称,最后一列列包含需根据第一列重复行求和的数值(如下图所示),Kutools for Excel 的高级合并行可为您提供帮助。
合并并进行计算

1. 选择表格,然后单击 Kutools > 合并和拆分 > 高级合并行
点击 Kutools 的“高级合并行”功能

2. 在高级合并行对话框中,请执行以下操作:

1)选择 ID 列,并将其设置为主键

2)选择要使用分隔符合并值的列,单击合并并选择一个分隔符。

3)选择要进行计算的列,点击计算,即可选择一种计算方式。

4)单击确定

现在,内容相同的行已合并并完成计算。

备注按钮高级合并行功能可能会破坏原始数据,请在使用前务必将数据另存为副本。

有关此功能的更多详情,请访问高级合并行

有关关于 Kutools for Excel 的更多详情,请访问 Kutools for Excel

如需免费试用 Kutools for Excel 30 天,请立即下载

2.3 合并具有相同值的相邻行

如果表格包含多列,且其中某一列存在重复值,如何将该列中相邻且值相同的行合并,如下图所示?
合并具有相同值的相邻行

2.31 使用 VBA

Excel 本身并未内置可直接完成此任务的功能,但这里提供了一段 VBA 代码来实现它。

1. 按 Alt+F11 键以打开 Microsoft Visual Basic for Applications 窗口,然后单击插入> 模块 以创建一个全新的空白模块。

2. 在新模块中,复制并粘贴以下 VBA 代码。

VBA:合并相邻且值相同的行

Sub MergeSameCell()
'Updateby Extendoffice
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
    For i = 1 To xRows - 1
        For j = i + 1 To xRows
            If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
                Exit For
            End If
        Next
        WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
        i = j - 1
    Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

将代码复制并粘贴到模块中

3. 然后按 F5 键或单击功能区中的运行选择数据区域按钮以启用此 VBA,随后将弹出对话框供您选择要使用的表格,请单击确定
选择数据区域

现在,选择区域中第一列值相同的相邻行已被合并。

备注按钮VBA 可能会破坏原始数据,请在使用前务必将数据另存为副本。此外,此 VBA 会将所选表格第一列中的相同值自动合并。

2.32 使用便捷工具 – 合并相同单元格

如果您已在 Excel 中安装了 Kutools for Excel,则其合并相同单元格功能可一步完成此任务。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

选择要合并相同值的列,然后单击 Kutools > 合并和拆分 > 合并相同单元格
点击 Kutools 的“合并相同单元格”功能

现在,值相同的相邻单元格已被合并。

取消合并单元格并将值还原如果您想取消合并单元格并还原填充值,可使用取消合并单元格并填充值功能。
应用“取消合并单元格并填充值”功能

有关此功能的更多详情,请访问合并相同单元格

有关此功能的更多详情,请访问取消合并单元格页面。

有关关于 Kutools for Excel 的更多详情,请访问 Kutools for Excel

如需体验 Kutools for Excel 的 30 天免费试用,请立即下载


3 合并单元格

3.1. 将多行多列的内容合并到一个单元格中

此处提供了四种方法,用于将包含多行多列的区域合并到单个单元格中。

示例:合并区域 A1:C3
将多行多列合并到单个单元格中

3.11 使用 & 符号

在 Excel 中,符号 & 通常用于连接文本。

选择一个用于放置合并结果的单元格,然后输入如下公式:

=A1&", "&B1&", "&C1&", "&A2&", " &B2&", "&C2&", "&A3&", "&B3&", "&C3

信息图标公式中,& 用于连接文本,“, ”是分隔符(逗号加空格),用于在结果单元格中分隔两个文本;若要使用其他分隔符,只需在双引号内输入所需分隔符即可。

按下 Enter 键即可获取合并结果。

3.12 使用 CONCATENATE 函数(Excel 2016 或更早版本)

如果您使用的是 Excel 2016 或更早版本,CONCATENATE 函数将为您提供有力支持。

CONCATENATE 函数语法
CONCATENATE (text 1,[text 2],…)

有关 CONCATENATE 函数的更多详情,请访问:CONCATENATE

选择一个用于放置合并结果的单元格,然后输入如下公式:

=CONCATENATE(A1,", ",B1,", ",C1,", ",A2,", ",B2,", ",C2,", ",A3,", ",B3,", ",C3)

信息图标公式中,A1、B1……、C3 是您要合并的文本。“, ”是分隔符(逗号加空格),用于在结果单元格中分隔两个文本;若要使用其他分隔符,只需在双引号内输入所需分隔符即可。

然后按下 Enter 键,即可获取合并结果。

3。13 使用 CONCAT 函数或 TEXTJOIN 函数(适用于 Excel 2019 或 Excel 365)

如果您使用的是 Excel 2019 或 Excel 365,CONCAT 函数和 TEXTJOIN 函数或许是更优之选。

CONCAT 函数语法
CONCAT (text 1,[text 2],…)

想了解更多关于 CONCAT 函数的详情,请访问:CONCAT

CONCAT 函数的用法与 CONCATENATE 函数完全相同。若要将分别位于两列中的名字和姓氏合并到一列中,可使用以下公式:

=CONCAT(A1,", ",B1,", ",C1,", ",A2,", ",B2,", ",C2,", ",A3,", ",B3,", ",C3)

信息图标公式中,A1、B1……、C3 是您要合并的文本。“, ”是分隔符(逗号加空格),用于在结果单元格中分隔两个文本;若要使用其他分隔符,只需在双引号内输入所需分隔符即可。

然后按下 Enter 键,即可立即获取合并结果。

TEXTJOIN 函数语法
TEXTJOIN (delimiter, ignore_empty, text 1, [text 2], ...)

有关 TEXTJOIN 函数的更多详情,请访问:TEXTJOIN

使用 TEXTJOIN 合并合并列或行:

=TEXTJOIN(", ",TRUE,A1:C3)

信息图标公式中,A1:C3 是需要合并的连续区域。“, ”是分隔符(逗号加空格),用于在结果单元格中分隔两个文本;若要使用其他分隔符,只需在双引号“”内输入所需分隔符即可。逻辑值“TRUE”表示在合并时忽略空单元格;若要在合并时保留空单元格,请将 TRUE 替换为 FALSE。

然后按 Enter 键以获取合并结果。

提示按钮若要使用换行符作为分隔符,请在公式中使用 CHAR(10),例如 =TEXTJOIN(CHAR(10),TRUE,A1:C3),然后将结果单元格设置为“自动换行”。
将结果单元格格式设置为自动换行

3.14 使用合并列/行/单元格合并到一个单元格且不丢失数据

如果您已在 Excel 中安装了 Kutools for Excel,即可使用其合并行/列/单元格并保留值功能快速完成此任务。

1. 选择要合并到一个单元格的单元格区域,然后单击 Kutools > 合并和拆分 > 合并行/列/单元格并保留值
点击 Kutools 的“合并行、列或单元格而不丢失数据”功能

2. 在弹出的对话框中,根据需要勾选合并到一个单元格选项及分隔符,然后单击确定
在对话框中指定选项

现在,单元格已使用指定分隔符合并到一个单元格中。如果合并后的内容过长无法完整显示,您可以单击开始选项卡下的自动换行,即可完整显示全部内容。
单元格已使用指定分隔符合并到一个单元格中

有关此功能的更多详情,请访问合并列、行、单元格且不丢失数据

有关关于 Kutools for Excel 的更多详情,请访问 Kutools for Excel

如需 Kutools for Excel 的 30 天免费试用版,请立即下载

3.2 将多行多列合并为单列/单行

将单元格转置为单列
  将单元格转置为单列
将单元格转置为单行
 将单元格转置为单行
 

3.21 命名区域并使用 INDEX 函数(仅适用于单列)

如果要将单元格区域转置为单列,可以先命名该区域,然后使用 INDEX 函数。

1. 选择单元格区域,右键单击打开上下文菜单,然后点击定义名称
 右键单击数据区域,然后点击“定义名称”

2. 在弹出的新建名称对话框中,于名称文本框中输入名称,然后单击确定
在名称框中输入名称

3. 命名区域后,选择一个用于放置转置数据的单元格,并使用如下 INDEX 函数:

=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1)

想深入了解 INDEX 函数?立即点击此处获取详情!

4. 按 Enter 键,然后向下拖动自动填充柄填充公式,直至出现 #REF! 错误值。
输入公式并向下拖动公式

5. 删除错误值后,单元格区域将自动合并为单列。

3.22 VBA(仅适用于单列)

此处还提供了一段 VBA 代码,用于将单元格合并为单列。

1. 按 Alt+F11 键以打开 Microsoft Visual Basic for Applications 窗口,然后单击插入> 模块 以创建一个新的空白模块。

2. 将下方的 VBA 代码复制并粘贴到空白模块中。

VBA:转换区域转换为一列

Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
    Rng.Copy
    Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

将 VBA 代码复制并粘贴到模块中

3. 然后按 F5 键,或单击功能区上的运行选择一个单元格区域按钮,即可弹出对话框以选择单元格区域,单击确定
选择一个单元格区域

4. 随后将弹出另一个对话框,用于选择结果存放的单元格,单击确定
选择一个单元格以放置结果

3.23 使用便捷工具 – 转换区域

如果您希望将多个单元格合并为一行,Excel 并未提供内置功能支持此操作。但若您已安装 Kutools for Excel,即可使用其转换区域功能,轻松将区域转换为单列或单行,也能将一行或一列还原为区域。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

1. 选择单元格区域,然后单击 Kutools > 区域 > 转换区域
点击 Kutools 的“转换区域”功能

2. 在转换区域对话框中,根据需要勾选区域转单列区域转单行选项,然后单击确定
选择您需要的选项

3. 在弹出用于选择放置结果单元格的对话框后,单击确定
选择一个单元格以放置结果

现在,个单元格已经被成功转换已转换为一行或一列。

了解更多此功能的详情,请访问转换区域

有关关于 Kutools for Excel 的更多详情,请访问 Kutools for Excel

如需 Kutools for Excel 的 30 天免费试用版,请立即下载

3.3 将多列堆叠为一列且不含重复项

如果一个多列表格中包含重复项,如何将各列堆叠为一列并去除重复项(如下图所示)?
将多列堆叠成一列且无重复项

本节提供了三种不同的处理方法。

3.31 复制粘贴并删除重复

在 Excel 中,解决此任务的常规方法是逐列复制粘贴,然后删除重复值。

1. 选择第一列,按下 Ctrl+C 键复制,再选中目标单元格,按下 Ctrl+V 键粘贴。
复制第一列数据

2. 然后重复步骤 1,依次复制其他列并将其粘贴到第一列下方。
重复操作,将其他列数据复制到第一列下方

3. 然后选择堆叠后的列,单击数据 > 删除重复,在弹出的删除重复项对话框中勾选列名,再单击确定
在对话框中勾选列名
在对话框中勾选列名

4. 此时会弹出一个对话框,提示您已删除重复值。单击确定即可关闭该对话框,堆叠后的列将仅保留唯一值。
所有重复项已被移除

提示按钮如果有数百列,逐列复制粘贴将非常耗时。但如果您已在 Excel 中安装了 Kutools for Excel,即可使用其转换区域功能,快速将区域转为一列,再结合 Excel 的删除重复功能,轻松提升效率!

选择多列区域,然后单击 Kutools > 区域 > 转换区域
点击 Kutools 的“转换区域”功能

然后勾选区域转单列选项,并单击确定,以选择用于放置堆叠列的单元格。
勾选“区域转单列”选项

然后应用“删除重复”功能,以清除重复值。

有关此功能的更多详情,请访问转换区域

有关关于 Kutools for Excel 的更多详情,请访问 Kutools for Excel

如需 Kutools for Excel 的 30 天免费试用版,请立即下载

3.32 使用 VBA

此外,以下 VBA 代码也能轻松完成此任务。

1. 按 Alt+F11 键以打开 Microsoft Visual Basic for Applications 窗口,然后单击插入> 模块 以创建一个新的空白模块。

2. 将以下代码复制并粘贴到新模块中。

VBA:将多列堆叠为一列并去除重复项

Sub FindUniques()
'UpdatebyExtendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set dic = CreateObject("Scripting.Dictionary")
For j = 1 To InputRng.Columns.Count
    For i = 1 To InputRng.Rows.Count
        xValue = InputRng.Cells(i, j).Value
        If xValue <> "" And Not dic.Exists(xValue) Then
            OutRng.Value = xValue
            dic(xValue) = ""
            Set OutRng = OutRng.Offset(1, 0)
        End If
    Next
Next
End Sub

将代码复制并粘贴到模块中

3. 然后按 F5 键,或单击运行运行按钮按钮,随后会弹出一个对话框用于选择需要堆叠的列,单击确定。
选择需要堆叠的列

4. 在第二个弹出的对话框中,选择用于放置堆叠后列的目标单元格,然后单击确定
选择目标单元格以放置堆叠后的列

现在,这些列已堆叠为一列,并保留了所有唯一值。

3.4. 合并单元格并保留原有格式

如果有两列,其中一列采用了特殊格式(例如自定义日期时间格式 mm/dd/yyyy),使用常规方法将这两列合并为一列时,自定义格式会被移除(如下图所示):
合并单元格但会丢失格式

本节将介绍几种合并单元格并保留格式的方法。
合并单元格并保留格式

3.41 在公式中嵌入 TEXT 函数

TEXT 函数用于将数值至文本转换为特定格式。此处我们可先用它将包含数字的单元格转换为指定格式,再通过“&”、CONCATENATE 函数、CONCAT 函数或 TEXTJOIN 函数与其他单元格合并。

有关常规合并单元格的详细信息,请返回至 1.1.

TEXT 函数语法
TEXT (value, format_text)

有关 TEXT 函数的更多详情,请访问该函数页面。

以下以在 CONCAT 函数中嵌入 TEXT 函数为例。

请将下方公式复制并粘贴到您希望放置合并结果的单元格中:

=CONCAT(TEXT(A2,"mm/dd/yyyy hh:mm")," ",B2)

信息图标公式中,A2 是您希望保留其格式的单元格,“mm/dd/yyyy hh:mm” 是所用的格式,B2 是用于合并的另一单元格。“ “ 表示用空格分隔值。您可以根据需要更改引用、格式和分隔符。

Enter 键后,向下拖动自动填充柄,即可将此公式填充到其他单元格。

3.42 使用 Microsoft Word

1. 选择要合并为一个单元格的表格,然后按下 Ctrl+C 进行复制。
复制数据区域

2. 打开一个空白的 Word 文档,按下 Ctrl+V 将其粘贴进去,然后单击文档中的表格,此时表格右上角将出现一个十字图标。
将区域粘贴到 Word 中

3. 单击布局选项卡,然后在数据组中单击转换为文本,在弹出的表格转文本对话框中指定列之间的分隔符,再单击确定
为列指定分隔符
为列指定分隔符

现在,Word 中表格的内容已转换为文本。
Word 中表格内容已转换为文本

4. 选中转换后的文本,按下 Ctrl+C 复制,然后返回 Excel,选择一个空白单元格,按下 Ctrl+V 粘贴合并结果。
复制并粘贴回 Excel 文件

3.43 使用便捷工具——合并数据且不丢失格式

最高效的方法是使用 Kutools for Excel合并行/列/单元格并保留值功能——只需在应用该功能时勾选使用格式化后的值复选框,即可让合并结果完美保留原有数据格式!

1. 选择包含结果单元格的表格,单击 Kutools > 合并和拆分 > 合并行/列/单元格并保留值
点击 Kutools 的“合并行、列或单元格而不丢失数据”功能

2. 在弹出的对话框中,按需指定合并操作,并取消勾选使用格式化后的值复选框(该选项默认已勾选),然后单击确定
在对话框中指定合并操作

现在数据已合并,且格式已完整保留。
数据已合并并保留了格式

有关此功能的更多详情,请访问合并列、行、单元格且不丢失数据

有关关于 Kutools for Excel 的更多详情,请访问 Kutools for Excel

如需 Kutools for Excel 的 {module 745} 天免费试用版,请立即下载

3.5 合并单元格生成日期

假设有一个表格,其中年、月、日分别位于不同的列中,任务是将这些列合并生成如下图所示的日期:
合并单元格以生成日期

3.51 使用 DATE 函数

DATE 函数用于根据年、月、日创建日期。

DATE 函数语法
DATE( year, month, day )

有关 DATE 函数的更多详情,请访问 DATE 函数。

将以下公式复制并粘贴到用于显示日期的单元格中:

=DATE(A2,B2,C2)

信息图标公式中的 A2、B2 和 C2 分别是包含年、月、日数值的单元格。

按下 Enter 键获取第一个日期,然后向下拖动自动填充柄,即可快速生成所有日期。
使用 DATE 函数获取结果


更多 Excel 教程:

将多个工作簿/工作表合并为一个
本教程涵盖几乎所有您可能遇到的合并场景,并为您提供专业的解决方案。

拆分文本、数字和日期单元格(分离为多列)
本教程分为三个部分:拆分文本单元格、拆分数字单元格和拆分日期单元格,每部分均配有实用示例,助您轻松掌握对应场景下的拆分技巧!

在 Excel 中合并多个单元格内容而不丢失数据
本教程聚焦于从单元格的特定位置提取内容,汇总了多种方法,助您轻松根据指定位置从单元格中提取文本或数字。

在 Excel 中对比两列以查找匹配项和差异
本文涵盖您可能遇到的绝大多数两列对比场景,助您轻松应对,不容错过!


  • 超级编辑栏(轻松编辑多行文本和公式);阅读版式(轻松阅读和编辑大量单元格);粘贴到筛选范围……
  • 合并单元格/行/列并保留数据;分割单元格内容;合并重复行并求和/求平均值……防止重复项单元格;比较区域……
  • 选择重复或唯一行;选择空白行(所有单元格均为空);超级查找和模糊查找多个工作簿中的内容;随机选择……
  • 精准公式复制多个单元格而不更改公式引用;自动创建引用到多个工作表;插入项目符号、复选框等更多功能……
  • 收藏并快速插入公式、区域、图表和图片;加密单元格并设置密码;创建邮件列表并发送电子邮件……
  • 提取文本、添加文本、删除某位置字符、删除空格;创建并打印数据分页统计;在单元格内容与批注之间转换……
  • 超级筛选(保存并应用筛选方案到其他工作表);高级排序按月/周/日、频率等分组;特殊筛选按加粗、倾斜等格式……
  • 合并工作簿和工作表;汇总表格基于关键列;分割数据到多个工作表批量转换 xls、xlsx 和 PDF……
  • 数据透视表按周数、星期几等分组……显示未锁定、选区锁定并以不同颜色标识;高亮显示包含公式/名称的单元格……
kte tab 201905
  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑与阅读,大幅提升多文档操作效率!
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中操作。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!
officetab 底部