跳到主要內容

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是需要合併的兩個文本,“”是結果單元格中分隔兩個文本的分隔符(空格),如果要使用逗號作為分隔符,只需鍵入用雙引號“,”括起來的逗號。

媒體推薦 Enter 鍵獲取組合結果,然後向下拖動自動填充手柄以獲取組合結果。

示例:將編號(第 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是需要合併的兩個文本,“,”是結果單元格中兩個文本的分隔符(逗號),如果要使用空格作為分隔符,只需輸入一個空格即可用雙引號“”括起來。

媒體推薦 Enter 鍵獲取組合結果,然後向下拖動自動填充手柄以獲取組合結果。
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 是一個需要合併的連續範圍。 “”是分隔結果單元格中兩個文本的分隔符(空格),如果要使用其他分隔符,只需鍵入用雙引號“”括起來的分隔符。 邏輯文本“T​​RUE”表示在合併時忽略空單元格,如果要與空格合併,請將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 是包含需要合併的文本的範圍,“”是分隔結果單元格中兩個文本的分隔符(無),如果要使用分隔符來分隔文本,只需鍵入用雙引號“”括起來的分隔符,例如“,”。 邏輯文本“T​​RUE”表示在合併時忽略空單元格,如果要與空格合併,請將TRUE替換為FALSE。

媒體推薦 Enter 鍵獲得第一個結果,然後根據需要向下或向右拖動自動填充手柄以生成所有結果。
doc 將列行合併為一個 1

1.22 使用 & 符號

如果您使用的是 Excel 2016 或更早的 Excel 版本,請使用 & 符號將文本一一連接並手動跳過空白。

選擇要放置組合結果的單元格,然後鍵入如下公式:

=A10&C10

doc 將列行合併為一個 1 公式中 & 用於連接文本,A10 和 C10 是需要合併的兩個文本,如果要使用逗號作為分隔符,只需鍵入一個用雙引號括起來的逗號,如“,”,然後使用& 連接兩個文本。

媒體推薦 Enter 獲得組合結果的關鍵。 然後更改公式的引用以獲得下一個組合結果。
doc 將列行合併為一個 1

1.23 使用定義函數

對於 Excel 2016 及更早版本的 Excel 用戶,如果有多個列或行需要合併,同時跳過空白,您可以使用 VBA 創建一個定義函數來快速解決這個工作。

1。 按 其他 + F11 啟用 Microsoft Visual Basic for Applications 窗口。

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 將列/行/單元格合併為一個單元格而不丟失數據

如果你已經安裝 Excel的Kutools 在 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 的更多詳細信息,請訪問 Excel的Kutools.

如需 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)

然後按 Enter 鍵獲取第一個結果,然後向下拖動自動填充手柄以獲取所有結果。
doc 將列行合併為一個 1

現在只有 A 列中的空白單元格被 B 列中的內容填充了。

1.42 使用 VBA

這是一個VBA代碼也可以處理這個工作。

1。 按 其他 + 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

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 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

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。 按 Enter 鍵獲取第一個結果,然後向下拖動自動填充手柄以獲取所有結果。
doc 將列行合併為一個 1

5. 轉到相鄰列,輸入公式如下:

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

doc 將列行合併為一個 1 公式中A18和A19為ID列中相鄰的兩個單元格,如果相鄰單元格不相等,則返回“已合併”,否則返回空。

6。 按 Enter 鍵獲取第一個結果,然後向下拖動自動填充手柄以獲取所有結果。
doc 將列行合併為一個 1

7. 選擇包括標題在內的最後一個公式列,然後單擊 數據 > 篩選.
doc 將列行合併為一個 1

8。 點擊 篩選 按鈕和勾選 合併的 下拉菜單中的複選框,單擊 OK.
doc 將列行合併為一個 1

現在只過濾掉了合併的行,複製過濾後的數據並將它們粘貼到另一個地方。
doc 將列行合併為一個 1

有關 IF 函數的更多詳細信息。 請拜訪: IF.

2.13 使用方便的工具——高級組合行

如果你已經安裝 Excel的Kutools 在 Excel 中, 高級合併行 可以輕鬆完成這項工作。

1. 選擇表格然後點擊 庫工具 > 合併與拆分 > 高級合併行.
doc 將列行合併為一個 1

2。 在裡面 高級合併行 對話框,請按以下步驟操作:

1)選擇ID列,並將其設置為 首要的關鍵;

2) 選擇要將值與分隔符組合的列,單擊 結合 並選擇一個分隔符。

3)點擊 Ok.
doc 將列行合併為一個 1

現在這些行已按相同的 ID 組合在一起。
doc 將列行合併為一個 1

高級合併行功能會破壞原始數據,請在使用前將數據保存為副本。

有關此功能的更多詳細信息,請訪問 高級合併行.

有關 Kutools for Excel 的更多詳細信息,請訪問 Excel的Kutools.

如需 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 for Applications 窗口,然後單擊 插入 > 模塊 創建一個新的空白模塊。
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 的更多詳細信息,請訪問 Excel的Kutools.

如需 Kutools for Excel 30 天免費試用,請 下載 現在。

2.3 合併具有相同值的相鄰行

如果有一個包含多列的表,其中一列包含一些重複的值,現在的工作是將該列中的相鄰行與以下屏幕截圖所示的相同值組合起來。 你怎麼能解決它?
doc 將列行合併為一個 1

2.31 使用 VBA

在 Excel 中,沒有可以直接解決這個工作的內置功能,但這裡提供了一個 VBA 可以處理它。

1。 按 其他 + 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

doc 將列行合併為一個 1

3.然後按 F5 鍵或單擊 doc 將列行合併為一個 1  按鈕啟用此 VBA,然後會彈出一個對話框選擇您使用的表,然後單擊 OK.
doc 將列行合併為一個 1

現在,第一列中具有相同值的相鄰行將組合在所選範圍內。

doc 將列行合併為一個 1  VBA會破壞原始數據,請在使用VBA前將數據保存為副本。 此 VBA 將合併所選表的第一列中的相同值。

2.32 使用一個方便的工具——合併相同的單元格

如果你有 Excel的Kutools 安裝在 Excel 中, 合併相同的單元格 Kutools for Excel 的功能可以一步解決這項工作。

選擇要組合相同值的列,然後單擊 庫工具 > 合併與拆分 > 合併相同的單元格.
doc 將列行合併為一個 1

現在具有相同值的相鄰單元格已被合併。

doc 將列行合併為一個 1I 如果您想取消合併合併的單元格並重新填充值,您可以應用 取消合併單元格和填充值 功能。
doc 將列行合併為一個 1
doc 將列行合併為一個 1

有關此功能的更多詳細信息,請訪問 合併相同的單元格.

有關此功能的更多詳細信息,請訪問 解除單元格.

有關 Kutools for Excel 的更多詳細信息,請訪問 Excel的Kutools.

如需 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 在公式中,&用於連接文本,“,”是分隔結果單元格中兩個文本的分隔符(逗號+空格),如果要使用其他分隔符,只需鍵入用雙引號括起來的分隔符即可。

媒體推薦 Enter 獲得組合結果的關鍵。

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 是要合併的文本。 “,”是分隔結果單元格中兩個文本的分隔符(逗號+空格),如果要使用其他分隔符,只需鍵入用雙引號括起來的分隔符即可。

然後按 Enter 獲得組合結果的關鍵。

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 是要合併的文本。 “,”是分隔結果單元格中兩個文本的分隔符(逗號+空格),如果要使用其他分隔符,只需鍵入用雙引號括起來的分隔符即可。

然後按 Enter 獲得組合結果的關鍵。

關於 TEXTJOIN 的語法
TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)

有關 TEXTJOIN 函數的更多詳細信息,請訪問: 文字加入.

使用 TEXTJOIN 組合列或行:

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

doc 將列行合併為一個 1 式中,A1:C3 是一個需要合併的連續範圍。 “,”是分隔結果單元格中兩個文本的分隔符(逗號+空格),如果要使用其他分隔符,只需鍵入用雙引號“”括起來的分隔符。 邏輯文本“T​​RUE”表示在合併時忽略空單元格,如果要與空格合併,請將TRUE替換為FALSE。

然後按 Enter 獲得組合結果的關鍵。

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 的更多詳細信息,請訪問 Excel的Kutools.

如需 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。 按 Enter 鍵,然後向下拖動自動填充手柄以填充此公式,直到出現#REF! 出現錯誤值。
doc 將列行合併為一個 1

5. 去掉錯誤值,單元格區域合併為一列。

3.22 VBA(僅針對單列)

要將單元格組合成一列,這裡有一個也可以工作的 VBA。

1。 按 其他 + 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

doc 將列行合併為一個 1

3.然後按 F5 鍵或單擊 doc 將列行合併為一個 1  按鈕,彈出一個對話框選擇單元格範圍,單擊 OK.
doc 將列行合併為一個 1

4. 彈出另一個對話框選擇一個單元格來放置結果,點擊 OK.
doc 將列行合併為一個 1

3.23 使用方便的工具——變換範圍

如果要將單元格合併為一行,Excel 中沒有內置功能支持它。 但是,如果你有 Excel的Kutools 安裝,其 變換範圍 功能支持將範圍轉換為單列或單行,還支持將行或列轉換為範圍。

1. 選擇單元格範圍,然後單擊 庫工具 > 範圍 > 變換範圍.
doc 將列行合併為一個 1

2。 在裡面 變換範圍 對話框,檢查 範圍到單列 or 範圍到單行 根據需要選擇。 點擊 OK.
doc 將列行合併為一個 1

3. 彈出一個對話框選擇一個單元格來放置結果,點擊 OK.
doc 將列行合併為一個 1

現在單元格範圍已轉換為行或列。

有關此功能的更多詳細信息,請訪問 變換範圍.

有關 Kutools for Excel 的更多詳細信息,請訪問 Excel的Kutools.

如需 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 如果有數百列,則一一複制和粘貼非常耗時。 但是,如果你有 Excel的Kutools 安裝在 Excel 中, 變換範圍 功能可以快速將範圍轉換為列,然後應用 刪除重複項 Excel 的特點。

選擇列範圍,然後單擊 庫工具 > 範圍 > 變換範圍.
doc 將列行合併為一個 1

然後檢查 範圍到單列 選項,然後單擊 OK 選擇一個單元格來放置堆疊的列。
doc 將列行合併為一個 1

然後應用 Remove Duplicates 刪除重複值。

有關此功能的更多詳細信息,請訪問 變換範圍.

有關 Kutools for Excel 的更多詳細信息,請訪問 Excel的Kutools.

如需 Kutools for Excel 30 天免費試用,請 下載 現在。

3.32 使用 VBA

此外,這裡有一個 VBA 代碼可以解決這個問題。

1。 按 其他 + 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

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 功能的更多詳細信息,請訪問 TEXT 的功能。

這里以在 CONCAT 函數中嵌入 TEXT 函數為例。

請將以下公式複制並粘貼到要放置組合結果的單元格中:

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

doc 將列行合併為一個 1 在公式中,A2 是您要保留其格式的單元格,“mm/dd/yyyy hh:mm”是您使用的格式,B2 是用於合併的另一個單元格。 “”表示用空格分隔值。 您可以根據需要更改引用、格式和分隔符。

媒體推薦 Enter 鍵並向下拖動自動填充手柄以使用此公式填充單元格。

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 的更多詳細信息,請訪問 Excel的Kutools.

如需{module745}天免費試用 Kutools for Excel,請 下載 現在。

3.5 合併單元格生成日期

假設有一個表格,其中包含分隔列中的年、月和日,工作是組合列並生成日期,如下圖所示:
doc 將列行合併為一個 1

3.51 使用日期函數

DATE 函數用於創建帶有年、月和日的日期。

DATE 函數的語法
DATE( year, month, day )

有關 DATE 功能的更多詳細信息,請訪問 DATE 功能。

將以下公式複制並粘貼到將放置日期的單元格中:

=DATE(A2,B2,C2)

doc 將列行合併為一個 1 在公式中,A2、B2 和 C2 是包含年、月和日值的單元格。

媒體推薦 Enter 鍵獲取第一個日期,然後向下拖動自動填充手柄以獲取所有日期。
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