如何在Excel中減: 解釋的每種方法 (2026)
由Iron Software團隊撰寫。 如果您想程式化地自動化電子表格任務,請務必存取 IronXL產品頁面,以了解更多關於我們專業的.NET Excel程式庫的詳細資訊。
在資料管理的世界中,資訊很少會以您需要的確切格式傳遞。 也許您在一列中有一個名字列表,另一列中有一個姓氏列表,或者您正在嘗試從分開的街道和城市欄位建立一個完整的郵寄地址。 手動重新輸入這些資料不僅會浪費您的生產力,還會引發人工錯誤。
學習如何在Excel中合併兩列是一項將原始資料轉換為可用資訊的基本技能。 無論您是在準備行銷電子郵件列表、對賬財務報告,還是整理資料庫,Excel都提供了一些強大的工具來無縫合併資料。
結合兩列最快的方法是使用Flash Fill(Ctrl + E)或簡單的安培號(&)公式。 對於基本的姓名合併,簡單地在第一個單元格中輸入所需的結果(例如,"John Smith"),移動到下一個單元格,然後按Ctrl + E。 Excel會立即識別模式,並為您填滿整列。 如果您更喜歡基於公式的方法,可以自動更新,則 $=A2& " " & B2$ 序列將用空格連接兩個單元格的內容。
方法1:最快捷的方法(Flash Fill)
如果您不喜歡依賴公式,希望快速完成任務,Flash Fill 是您的最佳選擇。 這個功能是在Excel 2013中引入的,它利用"預測智能"來感知您想要完成的目標,並完成工作。
如何使用Flash Fill從Excel中的欄位"合併單元格"
- 建立目標欄: 確保在您想要合併的資料旁邊有一個空的欄位。

- 輸入第一個條目: 在第一個空白單元格中(例如C2),準確地輸入您希望組合資料的格式,使用A列和B列的資料。

-
提供第二個範例(可選): 如果Excel沒有立即識別,請在第二個單元格(C3)輸入所需結果。
- 觸發魔法: 按下鍵盤上的Ctrl + E。 或者,前往功能區的 資料 標籤,然後點擊 Flash Fill 按鈕。

專業提示: Flash Fill 是"靜態"的。如果您稍後更改A列中的名稱,C列中的合併結果不會自動更新。 對於動態資料,請使用以下列出的公式方法。
方法2:安培號運算子(&)
安培號(&)是"串接"(即連接事物)操作的標準運算子。 它非常可靠,適用於Excel製作的每一個版本。
基本邏輯
公式結構遵循一個簡單的模式:
=Cell1 &"Separator" & Cell2
=Cell1 &"Separator" & Cell2
`=Cell1 & "Separator" & Cell2`
實施步驟
- 選擇要顯示合併資料的單元格。
- 輸入公式。 例如,將名(A2)和姓(B2)用空格連接:
=A2&" "& B2
=A2&" "& B2

- 按下Enter。

- 雙擊填充句柄(單元格右下角的小綠色方塊)以將公式複製到整列。

方法3:使用CONCATENATE和CONCAT函式
雖然安培號很快,Excel提供了一些專門為合併資料設計的內建函式。
CONCAT vs. CONCATENATE
- CONCATENATE: 遺留函式。 它要求您逐一選擇每個單元格。
- CONCAT: 現代替代法。 它允許您選擇整個範圍(例如,$A2:D2$)來一次性合併。
實施CONCAT的步驟
- 點擊您的目標單元格。
- 鍵入以下公式以逗號分隔單元格:
=CONCAT(A2,",",B2)
=CONCAT(A2,",",B2)
=CONCATENATE(A2, ",", B2)

- 如果您有一長串需要合併的單元格而不需要分隔符,您可以直接使用:
=CONCAT(A2:Z2)
=CONCAT(A2:Z2)
The provided code appears to be an Excel formula rather than C# code. If you intended to provide C# code for conversion to VB.NET, please provide the correct C# code snippet.
這將輕鬆合併多個單元格,就像在這裡看到的一樣:

方法4:高級使用者選擇(TEXTJOIN)
如果您使用的是Excel 2019或Microsoft 365,TEXTJOIN是最有效的方法。 它解決了合併列的兩個最大難題:處理空白單元格和重複分隔符(如逗號或空格)。
為什麼TEXTJOIN更優越
使用標準串接法,如果中間名缺失,您通常會在結果中間有兩個空格。 TEXTJOIN允許您"忽略空白單元格"。
實施步驟
-
選擇目標單元格。
-
輸入公式:
=TEXTJOIN(" ",TRUE,A2,B2)=TEXTJOIN(" ",TRUE,A2,B2)`=TEXTJOIN(" ", TRUE, A2, B2)` is a formula used in Excel, not C# code. If you intended to convert a C# code snippet that involves string joining, please provide the correct C# code. If this is indeed what you want to convert, please clarify how you would like it to be represented in VB.NET or any other context.$vbLabelText $csharpLabel- " ":這是分隔符(單詞之間的空格)。
-
TRUE:這告知Excel忽略範圍中任何空單元格。
- A2, B2:這些是您要合併的單元格。

這將導致您的兩列資料合併成一列,如下所示:

方法5:使用Power Query處理海量資料集
當您處理數十萬行資料時,公式可能會減慢您的工作簿速度。 Power Query是一個專業級工具,它內嵌在Excel中,能處理標準網格之外的資料轉換。
在Power Query中合併欄位的步驟
- 選擇您的資料範圍並前往 資料 > 從表/範圍。
-
在Power Query編輯器視窗中,按住Ctrl並點擊要合併的列的標頭。
- 右鍵點擊其中一個選定的標頭,然後選擇合併欄位。
-
選擇您的分隔符(空格、Tab、逗號等),並為新欄位命名。
- 點擊確定,然後點擊關閉並載入以將合併資料返回到Excel。
方法6:使用VBA巨集合併
對於每天執行相同清理任務的人,一個小的VBA腳本可以自動化多個工作簿的合併過程。
-
按下Alt + F11打開VBA編輯器。
- 前往 插入 > 模組。
- 貼上以下程式碼:
Sub MergeColumns()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
Cells(i, 3).Value = Cells(i, 1).Value & " " & Cells(i, 2).Value
Next i
End Sub
Sub MergeColumns()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
Cells(i, 3).Value = Cells(i, 1).Value & " " & Cells(i, 2).Value
Next i
End Sub
Sub MergeColumns()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i As Integer = 2 To lastRow
Cells(i, 3).Value = Cells(i, 1).Value & " " & Cells(i, 2).Value
Next i
End Sub
此巨集將從A列和B列取值,並將合併字串放置在C列中。
常見問題及故障排除
合併資料通常會揭示工作表中的隱藏不一致。 這是如何解決最常見問題的方法。
1. 合併日期和貨幣
如果您嘗試使用=A2 & B2將名稱與日期合併,日期將顯示為五位數(例如,45120)。 這是因為Excel將日期儲存為序列號。
-
解決方案: 使用TEXT函式保持格式:
=A2& " " & TEXT(B2,"mm/dd/yyyy")=A2& " " & TEXT(B2,"mm/dd/yyyy")=A2 & " " & TEXT(B2, "mm/dd/yyyy")$vbLabelText $csharpLabel
2. 多餘的空格
如果您的源資料有意外的前置或後置空格,合併結果會顯得凌亂。
-
解決方案: 將您的單元格引用包裹在TRIM函式中:
=TRIM(A2) &" "& TRIM(B2)=TRIM(A2) &" "& TRIM(B2)`=TRIM(A2) & " " & TRIM(B2)`$vbLabelText $csharpLabel
3. 數字變成文字
一旦您合併兩列,結果始終是一個字串(文字)。 您無法在包含"項目100"的單元格中進行數學加和。
-
解決方案: 如果您正合併兩個數字以建立新的ID,並且希望它保持為數字,請在整個公式外包裹VALUE():
=VALUE(A2 & B2)=VALUE(A2 & B2)`=VALUE(A2 & B2)` is an Excel formula, not C# code. If you intended to convert a C# expression involving string concatenation and conversion to a number, please provide the C# code. If this is indeed an Excel formula, it doesn't require conversion to VB.NET.$vbLabelText $csharpLabel
對開發者:使用IronXL自動化合併欄位
雖然Excel的介面非常適合手動工作,但軟體工程師通常需要程式化地合併欄位。 這在構建自動化報告工具或將資料從資料庫遷移到使用者友好的電子表格時很常見。
IronXL允許.NET開發者在伺服器上沒有安裝Microsoft Office的情況下執行這些操作。 它提供了一個乾淨且直觀的API來讀取、合併和格式化單元格。
為什麼使用IronXL?
- 速度: 處理大量工作簿比Excel GUI或Interop更快。
- 無依賴項: 無需安裝Excel即可在Linux、Azure和Windows上運行。
- 準確性: 消除使用者意外地破壞共享工作簿中公式的風險。
Code Snippet: Merging Columns in C
以下範例展示了如何載入電子表格並使用IronXL程式化地將兩欄合併成第三欄。
using IronXL;
// Load the existing workbook
WorkBook workbook = WorkBook.Load("Customer_Data.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Iterate through the rows to combine Column A (First Name) and B (Last Name)
for (int i = 1; i <= sheet.RowCount; i++)
{
string firstName = sheet["A" + i].StringValue;
string lastName = sheet["B" + i].StringValue;
// Set the value of Column C to the combined string
sheet["C" + i].Value = $"{firstName} {lastName}";
}
// Save the updated file
workbook.SaveAs("Consolidated_Customer_Data.xlsx");
using IronXL;
// Load the existing workbook
WorkBook workbook = WorkBook.Load("Customer_Data.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Iterate through the rows to combine Column A (First Name) and B (Last Name)
for (int i = 1; i <= sheet.RowCount; i++)
{
string firstName = sheet["A" + i].StringValue;
string lastName = sheet["B" + i].StringValue;
// Set the value of Column C to the combined string
sheet["C" + i].Value = $"{firstName} {lastName}";
}
// Save the updated file
workbook.SaveAs("Consolidated_Customer_Data.xlsx");
Imports IronXL
' Load the existing workbook
Dim workbook As WorkBook = WorkBook.Load("Customer_Data.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Iterate through the rows to combine Column A (First Name) and B (Last Name)
For i As Integer = 1 To sheet.RowCount
Dim firstName As String = sheet("A" & i).StringValue
Dim lastName As String = sheet("B" & i).StringValue
' Set the value of Column C to the combined string
sheet("C" & i).Value = $"{firstName} {lastName}"
Next
' Save the updated file
workbook.SaveAs("Consolidated_Customer_Data.xlsx")
IronXL範例輸出:合併的名字和姓氏

方法比較
| 方法 | 最適合 | 速度 | 動態? | | --- | --- | --- | --- | | Flash Fill | 一次性、視覺任務 | 即時 | 否 | | 安培號(&) | 簡單的2列合併 | 非常快 | 是 | | TEXTJOIN | 多列/空單元格 | 快速 | 是 | | Power Query | 大量資料集(10萬+行) | 中等 | 是(刷新時) | | IronXL(.NET) | 自動化應用程式和伺服器 | 即時 | 可程式化 |
總結和最佳實踐
掌握合併欄位的能力是選擇適合特定工作的正確工具。
-
使用Flash Fill來進行快速的一次性修復,不需考慮公式。
-
使用TEXTJOIN來處理專業報告,在某些行可能缺失的資料時。
-
始終使用TRIM,如果您的資料來自外部資料庫,以避免尷尬的空格。
- 合併後檢查您的資料,特別是在處理日期或貨幣時,確保格式保持不變。
準備好進一步自動化您的資料嗎? 無論您是商業分析師還是開發者,Iron Software都提供了使工作流程更高效的工具。 為您的下個專案試試IronXL,看看電子表格管理有多容易。




