跳到主要内容

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 使用日期函数

 

在本教程中,我创建了一些示例来解释方法,您可以在使用下面的 VBA 代码或公式时更改您需要的参考,或者您可以直接下载示例来尝试方法。

doc样本点击下载示例文件


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

1.1 使用空格/逗号或其他分隔符将列/行组合成一个单元格

将列或行组合到一个单元格中,并用逗号、空格或其他分隔符分隔结果,如下图所示,在 Excel 中使用最广泛。

将列合并为一个单元格
doc 将列行合并为一个 1
将行合并为一个单元格
doc 将列行合并为一个 1

1.11 使用 & 符号

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

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

选择要放置组合结果的单元格,然后键入如下公式:

=A2&" "&B2

doc 将列行合并为一个 1 公式中&用于连接文本,A2和B2是需要合并的两个文本,“”是结果单元格中分隔两个文本的分隔符(空格),如果要使用逗号作为分隔符,只需键入用双引号“,”括起来的逗号。

媒体 输入 键获取组合结果,然后向下拖动自动填充手柄以获取组合结果。

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

如果要将行合并为一个单元格,请根据需要更改公式中的单元格引用和分隔符,并将自动填充手柄向右拖动以获得合并结果。
doc 将列行合并为一个 1

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

如果您使用的是 Excel 2016 或更早版本,CONCATENATE 函数可以为您提供帮助。

CONCATENATE 的语法
CONCATENATE (text1,[text2],…)

有关 CONCATENATE 函数的更多详细信息,请访问: CONCATENATE.

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

选择要放置组合结果的单元格,然后键入如下公式:

=连接(F2,",",G2)

doc 将列行合并为一个 1 公式中,F2和G2是需要合并的两个文本,“,”是结果单元格中两个文本的分隔符(逗号),如果要使用空格作为分隔符,只需输入一个空格即可用双引号“”括起来。

媒体 输入 键获取组合结果,然后向下拖动自动填充手柄以获取组合结果。
doc 将列行合并为一个 1

对于组合行,只需根据需要更改单元格引用和分隔符,然后将自动填充手柄拖动到右侧。
doc 将列行合并为一个 1

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

如果您使用 Excel 2019 或 Excel 365,CONCAT 函数和 TEXTJOIN 函数可能是更好的选择。

关于 CONCAT 的语法
CONCAT (text1,[text2],…)

有关 CONCAT 函数的更多详细信息,请访问: 康卡特.

CONCAT函数的用法与CONCATENATE函数相同,将两列中的名字和姓氏分别合并为一列,公式使用如下:

=CONCAT(A21," ",B21)

doc 将列行合并为一个 1 公式中,A21和B21是需要合并的两个文本,“”是结果单元格中两个文本的分隔符(空格),如果要使用其他分隔符,只需键入用double括起来的分隔符即可引号“”。

按 Enter 键获取组合结果,然后向下拖动自动填充手柄以获取组合结果。
doc 将列行合并为一个 1

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

关于 TEXTJOINT 的语法
TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)

有关 TEXTJOIN 功能的更多详细信息,请访问: 文字加入.

使用 TEXTJOIN 组合列或行:

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

doc 将列行合并为一个 1  公式中,E21:G21 是一个需要合并的连续范围。 “”是分隔结果单元格中两个文本的分隔符(空格),如果要使用其他分隔符,只需键入用双引号“”括起来的分隔符。 逻辑文本“TRUE”表示在合并时忽略空单元格,如果要与空格合并,请将TRUE替换为FALSE。

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

忽略空格
doc 将列行合并为一个 1
包括空格
doc 将列行合并为一个 1

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

1.使用记事本也可以实现合并列(对合并行没有影响)。

选择要将列合并为一个的范围,然后按 按Ctrl + C 键复制范围。
doc 将列行合并为一个 1

2。 打开一个 记事本,然后按 按Ctrl + V 粘贴复制的范围。
doc 将列行合并为一个 1

3. 在记事本中选择两个文本之间的选项卡,然后按 按Ctrl + H 启用 更换 功能,标签符号已放置在 查找内容 文本框。
doc 将列行合并为一个 1

4.在 更换 文本框,键入要分隔组合文本的分隔符,然后单击 “全部替换”。 然后关闭 更换 对话。
doc 将列行合并为一个 1

5. 现在选择记事本中的文本,然后按 按Ctrl + C 复制它们,然后转到 Excel,选择一个单元格并按 按Ctrl + V 粘贴组合结果。
doc 将列行合并为一个 1doc 将列行合并为一个 1

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

如果您想将列或行组合成一个带有换行符的单元格,如下图所示:
doc 将列行合并为一个 1

首先,你应该意识到在 Excel 中, 字符() 函数可用于指定难以在公式中输入的字符,例如 CHAR(10) 返回一个换行符。

然后在上面列出的公式中使用 CHAR(10) 来组合列或行,并以换行符作为分隔符:

& 符号:

=A49&CHAR(10)&B49

连接函数:

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

CONCAT功能

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

TEXTJOIN函数

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

在上面输入公式后,选择结果,然后点击 主页 > 自动换行.
doc 将列行合并为一个 1

现在,这些列合并为一个并由换行符分隔。
doc 将列行合并为一个 1

doc 将列行合并为一个 1 如果您只想将一列中的行合并到一个单元格中,Excel 中的对齐功能可以帮助您。 选择具有多行的列,然后单击 主页 > > 辩解,然后这些行将组合到范围的顶部单元格中,并以空格作为分隔符。

doc 将列行合并为一个 1 doc 将列行合并为一个 1

1.2 将列/行合并为一个单元格,不留空格

在这一部分中,教程介绍了将列或行合并为一个单元格并跳过空单元格的方法,如下图所示:
doc 将列行合并为一个 1

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

如果您使用的是 Excel 2019 或 Excel 365,幸运的是,新功能 TEXTJOIN 可以轻松解决这项工作。

CONCATENATE 的语法
TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)

有关 TEXTJOIN 功能的更多详细信息,请访问: 文字加入.

示例:将姓名(A 列)和编号(B 列)和域(C 列)组合到一个单元格中,生成一个电子邮件地址,有些编号可能为空。

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

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

doc 将列行合并为一个 1 在公式中,A2:C2 是包含需要合并的文本的范围,“”是分隔结果单元格中两个文本的分隔符(无),如果要使用分隔符来分隔文本,只需键入用双引号“”括起来的分隔符,例如“,”。 逻辑文本“TRUE”表示在合并时忽略空单元格,如果要与空格合并,请将TRUE替换为FALSE。

媒体 输入 键获得第一个结果,然后根据需要向下或向右拖动自动填充手柄以生成所有结果。
doc 将列行合并为一个 1

1.22 使用 & 符号

如果您使用的是 Excel 2016 或更早版本的 Excel,请使用 & 符号将文本一一连接并手动跳过空格。

选择要放置组合结果的单元格,然后键入如下公式:

=A10&C10

doc 将列行合并为一个 1 公式中 & 用于连接文本,A10 和 C10 是需要合并的两个文本,如果要使用逗号作为分隔符,只需键入一个用双引号括起来的逗号,如“,”,然后使用& 连接两个文本。

媒体 输入 获得组合结果的关键。 然后更改公式的引用以获得下一个组合结果。
doc 将列行合并为一个 1

1.23 使用定义函数

对于 Excel 2016 及更早版本的 Excel 用户,如果有多个列或行需要合并,同时跳过空白,您可以使用 VBA 创建一个定义函数来快速解决这个工作。

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块 插入一个新模块。
doc 将列行合并为一个 1

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

doc 将列行合并为一个 1

4.返回工作表,选择一个放置组合结果的单元格,输入公式

=Concatenatecells(A15:C15)

doc 将列行合并为一个 1 在公式中,A15:C15 是包含需要合并的文本的范围。 在 VBA 代码中,“_”表示用于分隔组合结果中文本的分隔符,您可以根据需要更改分隔符。
doc 将列行合并为一个 1


1.3 将列/行/单元格合并为一个单元格而不丢失数据

如果你已经安装 Kutools for Excel 在 Excel 中, 合并行,列或单元格而不会丢失数据 功能对各种组合工作很有帮助。

1. 选择要合并的单元格和要放置合并结果的单元格。
doc 将列行合并为一个 1

2。 点击 库工具 > 合并与拆分 > 合并行,列或单元格而不会丢失数据.
doc 将列行合并为一个 1

3. 在弹出的对话框中,指定如下选项:
doc 将列行合并为一个 1

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

合并列例如。 合并行 例如。 组合成单个单元格,例如。
doc 将列行合并为一个 1 doc 将列行合并为一个 1 doc 将列行合并为一个 1

2) 指定组合结果中文本的分隔符。

3) 指定组合结果的位置(选择组合成单个单元格选项时禁用)

选择“合并列”选项时,您可以指定将结果放置在所选范围的左侧单元格中,或者将结果放置在所选范围的右侧单元格中。

左单元格 例如。 右单元格
doc 将列行合并为一个 1 doc 将列行合并为一个 1

当选择 合并行 选项,您可以指定将结果放置在所选范围的顶部单元格中,或所选范围的底部单元格中。

顶部单元格 底部单元格 
doc 将列行合并为一个 1 doc 将列行合并为一个 1

4) 指定关于合并结果的操作。

4。 点击 Ok or 使用 完成组合。

保留合并单元格的内容
doc 将列行合并为一个 1
删除合并单元格的内容
doc 将列行合并为一个 1
;合并合并的单元格
doc 将列行合并为一个 1

有关此功能的更多详细信息,请访问 合并列、行、单元格而不丢失数据.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。


1.4 如果为空,合并两列

有时,如果其中一列包含空白单元格,您可能希望合并两列。 假设有两列,A列包含用户名和一些空白单元格,B列包含名称,现在只需将两列合并时将A列中的空白单元格与B列中的相应内容填充,如下图所示:
doc 将列行合并为一个 1

1.41 使用 IF 函数

IF 函数用于测试特定条件。 在这里您可以使用 IF 函数来测试单元格是否为空白,然后用另一列中的内容填充空白。

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

有关 IF 功能的更多详细信息,请访问: IF

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

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

然后按 输入 键获取第一个结果,然后向下拖动自动填充手柄以获取所有结果。
doc 将列行合并为一个 1

现在只有 A 列中的空白单元格被 B 列中的内容填充了。

1.42 使用 VBA

这是一个VBA代码也可以处理这个工作。

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 创建一个新的空白模块。

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

doc 将列行合并为一个 1

doc 将列行合并为一个 1 在代码中,A:A 和 B:B 是将要合并的两列,只需根据需要更改它们即可。

3.然后按 F5 键或单击 运行 doc 将列行合并为一个 1  按钮,则如果 A 列中的值为空,则 A 列将填充 B 列中的值。


2 合并具有相同ID的行

假设有一个包含多列的表,其中一列包含具有重复项的 ID 值。 现在教程提供了基于相同ID组合表的行并进行一些计算的方法。
doc 将列行合并为一个 1

2.1 合并具有相同 ID 并用逗号或其他分隔符分隔的行

在这部分中,它提供了将具有相同 ID 并用逗号分隔的行组合的方法,如下图所示:
doc 将列行合并为一个 1

2.11 使用 VBA

这里提供了一个可以处理这个工作的 VBA 代码

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 创建一个新的空白模块。

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

doc 将列行合并为一个 1

3.然后按 F5 键或单击 运行 doc 将列行合并为一个 1  按钮,然后弹出一个 Kutools for Excel 对话框,供您选择需要合并具有相同 ID 的行的表格。
doc 将列行合并为一个 1

4。 点击 OK. 现在选定的表已经根据相同的 ID 组合了行。

2.12 使用 IF 函数添加辅助列

如果只有两列,并且您想将具有相同 ID 的行组合在一起,并且另一列值用逗号分隔,如下面的屏幕截图所示,IF 函数可以帮您一个忙。
doc 将列行合并为一个 1

1.将ID从A到Z排序。选择ID列,点击 时间 > 将A到Z排序.
doc 将列行合并为一个 1

2.然后在 排序警告 对话框,检查 扩大 选择选项,点击 排序.
doc 将列行合并为一个 1

现在,相同的 ID 已被排序在一起。
doc 将列行合并为一个 1

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

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

doc 将列行合并为一个 1 式中,A17和A18为ID列相邻的两个单元格(A17为ID列的表头),B18为A18单元格对应的单元格。 “,” 表示用逗号分隔值。 您可以根据需要更改引用和分隔符。

4。 按 输入 键获取第一个结果,然后向下拖动自动填充手柄以获取所有结果。
doc 将列行合并为一个 1

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

=IF(A18<>A19,"合并","")

doc 将列行合并为一个 1 公式中A18和A19为ID列中相邻的两个单元格,如果相邻单元格不相等,则返回“已合并”,否则返回空。

6。 按 输入 键获取第一个结果,然后向下拖动自动填充手柄以获取所有结果。
doc 将列行合并为一个 1

7. 选择包括标题在内的最后一个公式列,然后单击 时间 > 筛选器.
doc 将列行合并为一个 1

8。 点击 筛选器 按钮和勾选 合并的 下拉菜单中的复选框,单击 OK.
doc 将列行合并为一个 1

现在只过滤掉了合并的行,复制过滤后的数据并将它们粘贴到另一个地方。
doc 将列行合并为一个 1

有关 IF 函数的更多详细信息。 请拜访: IF.

2.13 使用方便的工具——高级组合行

如果你已经安装 Kutools for Excel 在 Excel 中, 高级组合行 可以轻松完成这项工作。

1. 选择表格然后点击 库工具 > 合并与拆分 > 高级组合行.
doc 将列行合并为一个 1

2.在 高级组合行 对话框,请按以下步骤操作:

1)选择ID列,并将其设置为 首要的关键;

2) 选择要将值与分隔符组合的列,单击 结合 并选择一个分隔符。

3)点击 Ok.
doc 将列行合并为一个 1

现在这些行已按相同的 ID 组合在一起。
doc 将列行合并为一个 1

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

有关此功能的更多详细信息,请访问 高级组合行.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。

2.2 合并相同ID的行并做一些计算

如果您想组合具有相同 ID 的行,然后将值相加或进行其他计算,如下面的屏幕截图所示,以下方法可以帮助您。
doc 将列行合并为一个 1

2.21 使用合并功能

如果只有两列,一列包含文本(ID),另一列包含需要计算的值,例如sum,Excel内置功能 整合 可以帮你一个忙。

1. 选择要放置组合结果的单元格,然后单击 时间 > 整合.
doc 将列行合并为一个 1

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

1)选择 主要工作内容 根据需要

2)点击箭头选择表格;

3)点击 地址 将所选范围添加到 所有参考 清单

4)勾选复选框 第一排左栏;

5)点击 OK.
doc 将列行合并为一个 1

现在该表已根据相同的 ID 求和。
doc 将列行合并为一个 1

2.22 使用 VBA

这是一个 VBA,它还可以组合具有相同 ID 的行,然后对值求和。

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 创建一个新的空白模块。
doc 将列行合并为一个 1

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 键或单击 运行 doc 将列行合并为一个 1  按钮,然后会弹出一个对话框选择您使用的表,然后单击 OK.

现在所选范围已与相同的值组合并求和。

doc 将列行合并为一个 1  VBA会破坏原始数据,请在使用VBA前将数据保存为副本。

2.23 使用方便的工具——高级组合行

如果表中有两列以上需要合并计算,例如有三列,第一列包含重复的产品名称,需要合并在一起,第二列包含商店名称,需要合并在一起。用逗号组合和分隔,最后一列包含需要根据第一列中的重复行求和的数字,如下图所示,Kutools for Excel 的高级合并行可以帮助您。
doc 将列行合并为一个 1

1. 选择表格然后点击 库工具 > 合并与拆分 > 高级组合行.
doc 将列行合并为一个 1

2.在 高级组合行 对话框,请按以下步骤操作:

1)选择ID列,并将其设置为 首要的关键;

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

3) 选择要计算的列,点击 计算 并选择一种计算。

4)点击 Ok.
doc 将列行合并为一个 1

现在这些行已与相同的行合并并计算。

doc 将列行合并为一个 1 高级合并行功能会破坏原始数据,请在使用前将数据保存为副本。

有关此功能的更多详细信息,请访问 高级组合行.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。

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

如果有一个包含多列的表,其中一列包含一些重复的值,现在的工作是将该列中的相邻行与以下屏幕截图所示的相同值组合起来。 你怎么能解决它?
doc 将列行合并为一个 1

2.31 使用 VBA

在 Excel 中,没有可以直接解决这个工作的内置功能,但这里提供了一个 VBA 可以处理它。

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 创建一个新的空白模块。

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

doc 将列行合并为一个 1

3.然后按 F5 键或单击 运行 doc 将列行合并为一个 1  按钮启用此 VBA,然后会弹出一个对话框选择您使用的表,然后单击 OK.
doc 将列行合并为一个 1

现在,第一列中具有相同值的相邻行将组合在所选范围内。

doc 将列行合并为一个 1  VBA会破坏原始数据,请在使用VBA前将数据保存为副本。 此 VBA 将合并所选表的第一列中的相同值。

2.32 使用一个方便的工具——合并相同的单元格

如果你有 Kutools for Excel 安装在 Excel 中, 合并相同的单元格 Kutools for Excel 的功能可以一步解决这项工作。

选择要组合相同值的列,然后单击 库工具 > 合并与拆分 > 合并相同的单元格.
doc 将列行合并为一个 1

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

doc 将列行合并为一个 1I 如果您想取消合并合并的单元格并重新填充值,您可以应用 取消合并单元格和填充值 功能。
doc 将列行合并为一个 1
doc 将列行合并为一个 1

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

有关此功能的更多详细信息,请访问 解除单元格.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。


3 合并单元格

3.1。 将多行和多列组合成一个单元格

为了将具有多行和多列的范围合并到一个单元格中,这里提供了四种方法。

示例:合并范围 A1:C3
doc 将列行合并为一个 1

3.11 使用 & 符号

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

选择要放置组合结果的单元格,然后键入如下公式:

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

doc 将列行合并为一个 1 在公式中,&用于连接文本,“,”是分隔结果单元格中两个文本的分隔符(逗号+空格),如果要使用其他分隔符,只需键入用双引号括起来的分隔符即可。

媒体 输入 获得组合结果的关键。

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

如果您使用的是 Excel 2016 或更早版本,CONCATENATE 函数可以为您提供帮助。

CONCATENATE 的语法
CONCATENATE (text1,[text2],…)

有关 CONCATENATE 函数的更多详细信息,请访问: CONCATENATE

选择要放置组合结果的单元格,然后键入如下公式:

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

doc 将列行合并为一个 1 在公式中,A1、B1…、C3 是要合并的文本。 “,”是分隔结果单元格中两个文本的分隔符(逗号+空格),如果要使用其他分隔符,只需键入用双引号括起来的分隔符即可。

然后按 输入 获得组合结果的关键。

3. 13 使用 CONCAT 函数或 TEXTJOIN 函数(Excel 2019 或 Excel 365)

如果您使用 Excel 2019 或 Excel 365,CONCAT 函数和 TEXTJOIN 函数可能是更好的选择。

关于 CONCAT 的语法
CONCAT (text1,[text2],…)

有关 CONCAT 函数的更多详细信息,请访问: 康卡特.

CONCAT 函数的用法与 CONCATENATE 函数相同,将分别在两列中的名字和姓氏合并为一列,公式使用如下:

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

doc 将列行合并为一个 1 在公式中,A1、B1…、C3 是要合并的文本。 “,”是分隔结果单元格中两个文本的分隔符(逗号+空格),如果要使用其他分隔符,只需键入用双引号括起来的分隔符即可。

然后按 输入 获得组合结果的关键。

关于 TEXTJOIN 的语法
TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)

有关 TEXTJOIN 功能的更多详细信息,请访问: 文字加入.

使用 TEXTJOIN 组合列或行:

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

doc 将列行合并为一个 1 式中,A1:C3 是一个需要合并的连续范围。 “,”是分隔结果单元格中两个文本的分隔符(逗号+空格),如果要使用其他分隔符,只需键入用双引号“”括起来的分隔符。 逻辑文本“TRUE”表示在合并时忽略空单元格,如果要与空格合并,请将TRUE替换为FALSE。

然后按 输入 获得组合结果的关键。

doc 将列行合并为一个 1 如果要使用换行符作为分隔符,请在公式中使用 CHAR(10),例如 =TEXTJOIN(CHAR(10),TRUE,A1:C3),然后将结果单元格格式化为 Wrap Text。
doc 将列行合并为一个 1

3.14 使用将列/行/单元格合并为一个单元格而不丢失数据

如果您在 Excel 中安装了 Kutools for Excel, 合并行,列或单元格而不会丢失数据 功能可以快速处理这项工作。

1. 选择要合并为一个单元格的单元格范围,然后单击 库工具 > 合并与拆分 > 合并行,列或单元格而不会丢失数据.
doc 将列行合并为一个 1

2.在弹出的对话框中,选中 合并成单个单元格 并根据需要指定分隔符,然后单击 Ok.
doc 将列行合并为一个 1

现在这些单元格被合并到一个带有特定分隔符的单元格中。 如果单元格内容太多而无法在合并单元格中显示,您可以单击 自动换行 在下面 主页 选项卡以显示它们。
doc 将列行合并为一个 1

有关此功能的更多详细信息,请访问 合并列、行、单元格而不丢失数据.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。

3.2 将多行多列组合成一个单元格

 将单元格转置为一列
 doc 将列行合并为一个 1
 将单元格转置为一行
 doc 将列行合并为一个 1
 

3.21 命名范围并使用 INDEX 函数(仅针对单个列)

如果要将单元格范围转换为单个列,可以命名范围,然后使用 INDEX 函数。

1. 选择单元格范围,右键单击启用上下文菜单,然后单击 定义名称.
doc 将列行合并为一个 1

2.在弹出 新名字 对话框中,输入名称 名字 文本框,单击 OK.
doc 将列行合并为一个 1

3.命名范围后,然后选择一个放置转置数据的单元格,使用INDEX函数如下:

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

有关 INDEX 功能的更多详细信息,请访问 了解更多.

4。 按 输入 键,然后向下拖动自动填充手柄以填充此公式,直到出现#REF! 出现错误值。
doc 将列行合并为一个 1

5. 去掉错误值,单元格区域合并为一列。

3.22 VBA(仅针对单列)

要将单元格组合成一列,这里有一个也可以工作的 VBA。

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 创建一个新的空白模块。

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

doc 将列行合并为一个 1

3.然后按 F5 键或单击 运行 doc 将列行合并为一个 1  按钮,弹出一个对话框选择单元格范围,单击 OK.
doc 将列行合并为一个 1

4. 弹出另一个对话框选择一个单元格来放置结果,点击 OK.
doc 将列行合并为一个 1

3.23 使用方便的工具——变换范围

如果要将单元格合并为一行,Excel 中没有内置功能支持它。 但是,如果你有 Kutools for Excel 安装,其 变换范围 功能支持将范围转换为单列或单行,还支持将行或列转换为范围。

1. 选择单元格范围,然后单击 库工具 > 范围 > 变换范围.
doc 将列行合并为一个 1

2.在 变换范围 对话框,检查 范围到单列 or 范围到单行 根据需要选择。 点击 OK.
doc 将列行合并为一个 1

3. 弹出一个对话框选择一个单元格来放置结果,点击 OK.
doc 将列行合并为一个 1

现在单元格范围已转换为行或列。

有关此功能的更多详细信息,请访问 变换范围.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。

3.3 将列堆叠成一列,不重复

如果在具有多列的表中有一些重复项,如何将这些列堆叠成一列而没有重复项,如下面的屏幕截图所示?
doc 将列行合并为一个 1

在这一部分中,它提供了三种不同的方法来处理这项工作。

3.31 复制粘贴和删除重复项

在 Excel 中,解决此工作的一般方法是逐列复制和粘贴,然后删除重复值。

1. 选择第一列并按 按Ctrl + C 键复制它,然后选择一个目标单元格并按 按Ctrl + V 键。
doc 将列行合并为一个 1

2.然后重复步骤1复制其他列并将它们粘贴到第一列下方。
doc 将列行合并为一个 1

3.然后选择堆积柱,点击 时间 > 删除重复,然后在 删除重复 对话框,检查列名,单击 OK.
doc 将列行合并为一个 1
doc 将列行合并为一个 1

4. 现在会弹出一个对话框,提醒您删除重复值。 点击 OK 关闭它,堆叠列只保留唯一值。
doc 将列行合并为一个 1

doc 将列行合并为一个 1 如果有数百列,则一一复制和粘贴非常耗时。 但是,如果你有 Kutools for Excel 安装在 Excel 中, 变换范围 功能可以快速将范围转换为列,然后应用 删除重复 Excel 的特点。

选择列范围,然后单击 库工具 > 范围 > 变换范围.
doc 将列行合并为一个 1

然后检查 范围到单列 选项,然后单击 OK 选择一个单元格来放置堆叠的列。
doc 将列行合并为一个 1

然后应用 Remove Duplicates 删除重复值。

有关此功能的更多详细信息,请访问 变换范围.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel 30 天免费试用,请 下载 现在。

3.32 使用 VBA

此外,这里有一个 VBA 代码可以解决这个问题。

1。 按 其他 + F11 启用 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 创建一个新的空白模块。

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

doc 将列行合并为一个 1

3.然后按 F5 键或单击 运行 doc 将列行合并为一个 1  按钮,然后弹出一个对话框选择需要堆叠的列,单击确定。
doc 将列行合并为一个 1

4. 然后在第二个弹出对话框中,选择一个目标单元格来放置堆叠列,然后单击 OK.
doc 将列行合并为一个 1

现在,这些列已堆叠成一列,仅具有唯一值。

3.4. 合并单元格并保持格式

如果有两列,其中一列被格式化为特殊格式,例如自定义 DateTimemm/dd/yyyy,用普通方法将这两列合并为一列,自定义格式将被删除,如下图所示:
doc 将列行合并为一个 1

现在在这一部分中,它将提供一些组合单元格并保持格式的方法。
doc 将列行合并为一个 1

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)

doc 将列行合并为一个 1 在公式中,A2 是您要保留其格式的单元格,“mm/dd/yyyy hh:mm”是您使用的格式,B2 是用于合并的另一个单元格。 “”表示用空格分隔值。 您可以根据需要更改引用、格式和分隔符。

媒体 输入 键并向下拖动自动填充手柄以使用此公式填充单元格。

3.42 使用 Microsoft Word

1. 选择要合并单元格的表格,然后按 按Ctrl + C 复制它们。
doc 将列行合并为一个 1

2.打开一个空白 Word 文件,按 按Ctrl + V 放置它们,然后单击文档中的表格,现在表格的右上角会出现一个十字图标。
doc 将列行合并为一个 1

3。 点击 布局 标签,然后单击 转换成文字 ,在 时间 组,在弹出 将表格转换成文字 对话框中,指定列的分隔符。 点击 OK.
doc 将列行合并为一个 1
doc 将列行合并为一个 1

现在 Word 中表格的内容已转换为文本。
doc 将列行合并为一个 1

4. 选择转换后的文本并按 按Ctrl + C 复制它们,然后返回 Excel 并选择一个空白单元格,按 按Ctrl + V 粘贴组合结果。
doc 将列行合并为一个 1

3.43 使用方便的工具——合并而不丢失数据

最有效的方法必须是使用 K适用于Excel的utools合并行,列或单元格而不会丢失数据 功能,只需要勾选 使用格式化的值 应用该功能时复选框,组合结果将保持数据格式。

1. 选择包含放置结果的单元格的表格,单击 库工具 > 合并与拆分 > 合并行,列或单元格而不会丢失数据.
doc 将列行合并为一个 1

2. 在弹出的对话框中,根据需要指定合并操作,并取消勾选 使用格式化的值 复选框(默认情况下,勾选此选项)。 点击 Ok.
doc 将列行合并为一个 1

现在数据已被合并并保持格式。
doc 将列行合并为一个 1

有关此功能的更多详细信息,请访问 合并列、行、单元格而不丢失数据.

有关 Kutools for Excel 的更多详细信息,请访问 Kutools for Excel.

如需 Kutools for Excel {module745} 天的免费试用,请 下载 现在。

3.5 合并单元格生成日期

假设有一个表,其中包含分隔列中的年、月和日,工作是组合列并生成日期,如下图所示:
doc 将列行合并为一个 1

3.51 使用日期函数

DATE 函数用于创建带有年、月和日的日期。

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

有关 DATE 功能的更多详细信息,请访问 DATE 功能。

将以下公式复制并粘贴到将放置日期的单元格中:

=DATE(A2,B2,C2)

doc 将列行合并为一个 1 在公式中,A2、B2 和 C2 是包含年、月和日值的单元格。

媒体 输入 键获取第一个日期,然后向下拖动自动填充手柄以获取所有日期。
doc 将列行合并为一个 1


更多 Excel 教程:

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

拆分文本、数字和日期单元格(分成多列)
本教程分为三个部分:拆分文本单元格、拆分数字单元格和拆分日期单元格。 每个部分都提供了不同的示例,以帮助您了解在遇到相同问题时如何处理拆分作业。

在Excel中合并多个单元格的内容而不会丢失数据
本教程将提取范围缩小到单元格中的特定位置,并收集了不同的方法来帮助在 Excel 中按特定位置从单元格中提取文本或数字。

在 Excel 中比较两列的匹配和差异
本文涵盖了您可能遇到的比较两列的大多数可能场景,希望对您有所帮助。


  • 超级公式栏 (轻松编辑多行文本和公式); 阅读视图 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 和保存数据; 拆分单元格内容; 合并重复的行和总和/平均值...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 收藏并快速插入公式,范围,图表和图片; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级筛选 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 数据透视表分组依据 周号,周几等 显示未锁定的单元格 用不同的颜色 突出显示具有公式/名称的单元格...
kte选项卡201905
  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations