KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

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(",",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 函數,請參閱: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

立即下載,體驗 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 鍵或按一下執行執行按鈕按鈕,若此時 A 欄為空白,系統將自動填入 B 欄的值。


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 欄位,按一下資料> 升序
資料 > 從小到大排序

2. 接著在排序警告對話方塊中,勾選擴充選取範圍選項,再按一下排序
勾選「擴充選取範圍」選項,然後按一下「排序」

現在相同 ID 的項目已排序在一起。
相同 ID 已排序在一起

3. 在相鄰欄位中,使用如下所示的 IF 函數:

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

資訊圖示公式中的 A17 與 A18 是 ID 欄位中的兩個相鄰儲存格(A17 為 ID 欄位的標題),B18 則是與 A18 對應的儲存格。「,」表示以逗號分隔各個值。您可以依需求調整儲存格參照及分隔符號。

4. 按下 Enter 鍵取得第一筆結果,再向下拖曳自動填滿控制點,即可快速獲取所有結果。
輸入公式以取得結果

5. 移至相鄰欄位,並輸入如下所示的公式:

=IF(A18<>A19,"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

立即下載 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 的 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 函數的用法與 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. 另一個對話方塊將彈出,讓您選取要放置結果的儲存格,請點擊確定
選取放置結果的儲存格

使用實用工具 – 轉換區域

若您想將多個儲存格合併為一列,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 天免費試用版。

使用 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),若使用一般方法將這兩欄合併為一欄,自訂格式將會遺失(如下圖所示):
合併儲存格但遺失格式

本節將介紹幾種合併儲存格並保留原有格式的實用方法。
合併儲存格並保留格式

在公式中嵌入 TEXT 函數

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 鍵後,向下拖曳自動填滿控制點,即可將此公式套用至其他儲存格。

使用 Microsoft Word

1. 選取您要合併為單一儲存格的表格,然後按下 Ctrl+C 進行複製。
複製資料範圍

2. 開啟一個空白的 Word 文件,按下 Ctrl+V 貼上內容,接著點擊文件中的表格,此時表格右上角會出現一個十字圖示。
將範圍貼至 Word

3. 按一下版面配置索引標籤,接著在資料群組中點選轉換為文字,於彈出的表格轉文本對話方塊中設定欄位分隔符號,再按一下確定
為欄位指定分隔符號
為欄位指定分隔符號

現在 Word 表格中的內容已轉換為文字。
Word 中表格的內容已轉換為文字

4. 選取已轉換的文字,按下 Ctrl+C 複製,再回到 Excel 選取空白儲存格,並按下 Ctrl+V 貼上合併結果。
複製並貼回 Excel 檔案

使用實用工具 – 合併時不遺失資料

最有效率的方式莫過於使用 K utools for Excel合併行/列/儲存格並保留值功能!只要在套用此功能時勾選使用格式化後的值核取方塊,即可輕鬆保留資料格式,讓合併結果更精準美觀!

1. 選取包含結果儲存格的表格,按一下 Kutools > 合併和拆分 > 合併行/列/儲存格並保留值
按一下 Kutools 的「合併列、欄或儲存格而不遺失資料」功能

2. 在彈出的對話方塊中,依需求指定合併操作,並取消勾選使用格式化後的值核取方塊(此選項預設為勾選狀態),然後按一下確定
在對話框中指定合併操作

現在資料已合併完成,且保留原有格式。
資料已合併並保留格式

如需進一步了解此功能,請參閱合併列與儲存格,合併不遺失資料

如需進一步了解 Kutools for Excel,請立即參閱!

立即下載,即可享有 {module 745} 天的 Kutools for Excel 免費試用!

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 bottom