如何在 Excel 中對包含合併儲存格的資料進行排序?

當您在 Excel 中對包含合併儲存格的資料進行排序時,通常會出現如左側截圖所示的錯誤提示。這是因為 Excel 目前原生不支援對包含合併儲存格的範圍進行排序——合併儲存格會破壞底層資料結構,導致排序功能無法正常運作。
當您在處理包含合併儲存格、用於格式設定或資料分組的工作表時,可能仍需整理或重新排序資料。為順利達成此目標,您必須先妥善處理這些合併儲存格。以下提供幾種實用方法,讓您在維持資料完整性的情況下,有效處理並排序含合併儲存格的資料。
透過先取消所有儲存格合併來排序包含合併的資料
透過 Kutools for Excel 排序包含合併的資料
透過 VBA 自動化排序包含合併的資料(取消合併、填值、排序、重新合併)
透過先取消所有儲存格合併來排序包含合併的資料
由於 Excel 預設的排序功能無法處理包含合併儲存格的範圍,因此必須先取消資料清單中所有合併儲存格的合併。取消合併後,原本合併的儲存格會變為空白,您需手動填入這些空格,以確保排序結果準確無誤。以下是詳細的操作步驟:
1. 選取包含欲排序資料的完整清單或表格。選取後,按一下開始 > 合併和置中,即可取消所有已合併儲存格的合併。視覺指引請參閱下方截圖:
![按一下 [首頁] > [合併後置中] 以取消合併儲存格](http://cdn.extendoffice.com/images/stories/doc-excel/doc-sort-with-merged-cells/doc-sort-data-with-merged-cells-2.png)
2. 取消合併後,先前合併的區域會變成空白儲存格。在合併儲存格仍處於選取狀態時,切換至開始索引標籤,然後按一下尋找與選取> 前往特殊位置。此步驟能快速大量選取範圍內所有空白儲存格,大幅提升後續操作效率!
![按一下 [首頁] 索引標籤下的 [定位條件]](http://cdn.extendoffice.com/images/stories/doc-excel/doc-sort-with-merged-cells/doc-sort-data-with-merged-cells-3.png)
3. 在前往特殊位置對話方塊中,選取空白選項,再點擊確定,系統將立即反白顯示所選區域中的所有空白儲存格。
![在對話方塊中選取 [空白] 選項](http://cdn.extendoffice.com/images/stories/doc-excel/doc-sort-with-merged-cells/doc-sort-data-with-merged-cells-4.png)
4. 在空白儲存格仍處於反白狀態時,請前往編輯欄輸入=符號,接著選取該空白儲存格正上方的儲存格以建立參照公式(例如:若 C3 為空白,則輸入)=C2)。此時請勿單獨按下 Enter,而是同時按住 Ctrl 並按下 Enter,即可一次性將所有選取的空白儲存格填入各自上方儲存格的值!
完成此步驟後,所有原先合併的儲存格區域將自動填入其原始值,確保排序過程中資料的完整性。

5. 您現在可以像平常一樣排序資料——選取任一欄位,切換至資料索引標籤,然後選擇升序或 遞減排序(Z→A)。若希望排序後維持合併格式,可手動重新合併相鄰的相同值,但請務必避免跨不同資料進行合併。
提示:若保留合併格式至關重要,請務必在操作前備份原始資料。另請注意,取消合併並填入空白後將產生公式。若您希望將公式轉為數值,請選取該範圍、複製,再以「貼上為數值」方式貼上,以免排序後發生非預期的公式更新。
透過 Kutools for Excel 排序包含合併的資料
Kutools for Excel 提供更直接且高效的方式,輕鬆排序包含合併儲存格的資料,在處理大型資料集或頻繁格式需求時更加可靠。取消合併儲存格並填入值功能可自動解除儲存格合併,並將產生的空白儲存格填入原合併儲存格的內容,省去繁瑣的手動操作,大幅提升工作效率!
1. 先反白標示包含欲排序之合併儲存格的範圍,接著導航至 Kutools>合併和拆分> 取消合併儲存格並填入值。操作指引請參閱下列截圖:
![按一下 Kutools 的 [取消合併儲存格並填充值] 功能](http://cdn.extendoffice.com/images/stories/doc-excel/doc-sort-with-merged-cells/doc-sort-data-with-merged-cells6.png)
執行此操作後,所選區域內的所有合併儲存格將立即取消合併,新產生的空白儲存格將自動填入先前合併儲存格的對應值,確保整個表格的一致性。

2. 您現在可以照常排序資料。排序完成後,若需保持一致的外觀或用於資料呈現,Kutools 也提供快速重新合併相同內容儲存格的方法!只需選取已排序的範圍,前往 Kutools>合併和拆分> 合併相同儲存格,即可在值相同的區域高效重新套用合併格式,讓報表整潔又專業!
想免費試用此工具 30 天嗎?立即下載,並依照上述步驟操作!
優點:此方法大幅減少手動操作步驟,有效降低出錯機率,特別適合處理複雜表格或定期報表需求。排序後務必檢查合併結果,確保合併操作未遺漏任何重要資料關聯性。
透過 Kutools for Excel 排序包含合併的資料
透過 VBA 自動化排序包含合併的資料(取消合併、填值、排序及重新合併)
對於熟悉巨集的使用者,透過 VBA 自動化處理合併作業,能有效簡化流程——尤其適合重複性高或大規模的排序任務。此方法可高效實現:
- 取消限定區域中所有合併的合併
- 為保持一致性,將產生的空白儲存格填入上方儲存格的值
- 依任何指定欄位對資料進行排序
- (選擇性)在排序後的資料中,重新合併連續的相同值
此方法適用於自訂工作流程,但需啟用巨集並謹慎操作,以免遺失資料。若您是 VBA 新手,建議先在範例工作表上測試。
操作步驟:
1. 在功能區上,按一下開發人員 > Visual Basic,開啟 Visual Basic for Applications 視窗後,再按一下插入 > 模組。將下列程式碼複製並貼到模組視窗中:
Sub SortDataWithMergedCells()
Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim lastRow As Long, lastCol As Long
Dim sortCol As Variant
Dim reMerge As VbMsgBoxResult
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = ActiveSheet
Set rng = Application.InputBox("Select the data range to sort", xTitleId, Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
' Store dimensions
lastRow = rng.Rows.Count + rng.Row - 1
lastCol = rng.Columns.Count + rng.Column - 1
' Unmerge and fill down values
rng.UnMerge
For Each cell In rng
If IsEmpty(cell.Value) Then
cell.Value = cell.Offset(-1, 0).Value
End If
Next cell
' Ask for sort column
sortCol = Application.InputBox("Enter column number in your selection to sort by (e.g. 1 for first column)", xTitleId, 1, Type:=1)
If sortCol = False Then Exit Sub
' Sort the range
rng.Sort Key1:=rng.Cells(1, sortCol), Order1:=xlAscending, Header:=xlNo
' Ask if user wants to re-merge identical consecutive values
reMerge = MsgBox("Do you want to re-merge identical consecutive values in the sorted range (column " & sortCol & ")?", vbYesNo + vbQuestion, xTitleId)
If reMerge = vbYes Then
Dim startCell As Range, endCell As Range
Dim currVal As Variant
Dim i As Long
Set startCell = rng.Cells(1, sortCol)
currVal = startCell.Value
Set endCell = startCell
For i = 2 To rng.Rows.Count
If rng.Cells(i, sortCol).Value = currVal Then
Set endCell = rng.Cells(i, sortCol)
Else
If startCell.Address <> endCell.Address Then
ws.Range(startCell, endCell).Merge
End If
Set startCell = rng.Cells(i, sortCol)
currVal = startCell.Value
Set endCell = startCell
End If
Next i
' Final group
If startCell.Address <> endCell.Address Then
ws.Range(startCell, endCell).Merge
End If
End If
On Error GoTo 0
End Sub 2. 若要執行巨集,請在 VBA 編輯器中按一下
執行按鈕。系統將提示您選取資料區域與排序欄位編號,確認每個提示後,巨集便會自動完成所有步驟。若您選擇重新合併,程式碼將自動合併指定欄位中相鄰且數值相同的儲存格。
提示:
- 執行 VBA 巨集前,務必先備份工作表,因為取消合併或合併等操作皆無法復原。
- 若依標題列或非數值欄位進行排序,可能需要額外調整——請務必根據所選範圍指定正確的欄位編號。
- 若排序後出現錯誤,請檢查整行或欄位參照,並根據您的資料配置調整巨集參數。
優點:自動化原本重複且多步驟的任務——特別適合經常性工作。
限制:VBA 巨集需啟用巨集功能(可能觸發安全性警告),且在恢復合併後,複雜的表格配置可能需要手動檢視。
為達最佳效果,請先在資料副本上測試此巨集。此 VBA 解決方案特別適合需要頻繁重複執行排序與合併作業,或處理動態資料匯出的使用者。
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用