Skip to main content

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

Author: Siluvia Last Modified: 2025-08-06
a prompt box will appear while sorting merged cells

嘗試在包含合併儲存格的 Excel 中對資料進行排序時,通常會出現錯誤提示,如左側截圖所示。這種行為是由於 Excel 的當前限制所致——Excel 原生不支援對具有合併儲存格的範圍進行排序,因為合併範圍會破壞底層的資料結構,使得排序功能難以正常運作。

在使用合併儲存格來格式化或分組資料的工作表中,您可能仍然需要組織或重新排列您的資料。為此,您必須先正確處理那些合併儲存格。以下是幾種處理和排序合併儲存格資料的實用方法,同時還能保留您的資訊。

通過先解除所有合併儲存格的方式對合併儲存格的資料進行排序
通過 Kutools for Excel 對合併儲存格的資料進行排序
通過 VBA 自動化(解除合併、填充、排序、重新合併)對合併儲存格的資料進行排序


通過先解除所有合併儲存格的方式對合併儲存格的資料進行排序

由於 Excel 預設的排序功能無法對包含合併儲存格的範圍進行操作,因此必要的做法是先解除數據列表中的所有合併儲存格。一旦解除合併,空白儲存格會出現在原本合併儲存格的位置,所以您需要填補這些空儲存格以確保準確的排序。以下是逐步的方法:

1. 選擇包含合併儲存格的完整清單或表格,然後點擊「Home」>「Merge & Center」以解除所有合併儲存格。請參閱下面的截圖以獲得視覺指引:

click Home > Merge & Center to unmerge merged cells

2. 解除合併後,您會注意到先前合併的區域現在變成了空白儲存格。在合併儲存格仍然被選中的情況下,進入「Home」標籤並點擊「Find & Select」>「Go To Special」。這一步確保高效地批量選擇範圍內的所有空白儲存格,讓下一步變得更快速。

click Go To Special under Home tab

3. 在「Go To Special」對話框中,選擇「Blanks」選項並點擊「OK」。這將立即突出顯示所選範圍內的所有空白儲存格。

select the Blanks option in the dialog box

4. 當空白儲存格仍然被突出顯示時,前往「Formula Bar」並輸入「=」符號,然後選擇第一個空白儲存格上方的儲存格以創建引用公式(例如,如果 C3 是空白的,則輸入 =C2)。不是僅按 Enter,而是按住 Ctrl 同時按下 Enter 以一次性填補所有選中的空白儲存格為其各自上方儲存格的值。

完成此步驟後,每個先前的合併區域都被填滿了其原始值,確保在排序過程中保持資料完整性。

enter a formula and press the Ctrl + Enter to fill the cells with above value

5. 您現在可以像平常一樣對資料進行排序——選擇任意列,進入「Data」標籤,並選擇「A to Z 排序」或「Z to A 排序」。如果您希望在排序後恢復合併格式,您可以手動重新合併相鄰的相同值,但要小心避免跨無關資料進行合併。

提示:在繼續之前,始終備份您的原始資料,特別是在保留合併格式很重要的情況下。另外要注意的是,在解除合併和填充空白後,公式將存在。如果您想將公式轉換為值,選擇範圍,複製,然後粘貼為值以避免排序後不必要的公式更新。


通過 Kutools for Excel 對合併儲存格的資料進行排序

Kutools for Excel 提供了一種更直接和高效的解決方案,用於對合併儲存格的資料進行排序,使處理大數據集或頻繁格式需求時更加可靠。Kutools for Excel 中的「Unmerge Cell & Fill Value」工具可以自動解除合併儲存格並用原合併值填充生成的空白,消除手動干預並顯著提高效率。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 高亮包含您想要排序的合併儲存格的範圍。接下來,導航到「Kutools」>「Merge & Split」>「Unmerge Cell & Fill Value」。請參閱以下截圖以獲得指引:

click Unmerge Cell & Fill Value feature of kutools

執行此操作後,所選範圍內的所有合併儲存格將立即被解除合併,並且新生成的空白儲存格將被來自先前合併儲存格的對應值填滿,確保整個表格的一致性。

all merged cells are unmerged and filled the values above

2. 您現在可以像平常一樣對資料進行排序。排序後,為了保持一致的外觀或資料展示目的,Kutools 還提供了一種快速重新合併相同內容儲存格的方法。只需選擇已排序的範圍,然後進入「Kutools」>「Merge & Split」>「Merge Same Cells」即可高效地僅在值相同的區域重新應用合併格式。

  如果您想免費試用(30天)此工具,請點擊下載,然後按照上述步驟進行操作。

優點:這種方法最大限度地減少手動步驟,降低出錯的可能性,特別適合處理複雜表格或定期報告需求時使用。始終確保在排序後檢查合併的輸出,以驗證合併不會排除任何重要的資料關係。


通過 Kutools for Excel 對合併儲存格的資料進行排序

 

通過 VBA 自動化(解除合併、填充、排序和重新合併)對合併儲存格的資料進行排序

對於熟悉宏的用戶,通過 VBA 自動化可以簡化合併儲存格的處理——特別是在重複或大規模排序任務的情況下。這個方法能夠有效地:

  • 解除指定範圍內的所有合併儲存格
  • 為保持一致性,用上方的值填充結果中的空白儲存格
  • 根據任何指定列對資料進行排序
  • 可選地,在排序後的資料中重新合併連續的相同值

這個方法對於自定義工作流非常靈活,但需要啟用宏並謹慎操作以避免資料丟失。如果您是 VBA 新手,建議先在樣本工作表上測試。

操作步驟:

1. 在 Ribbon 上,點擊「Developer」>「Visual Basic」以打開 Visual Basic for Applications 視窗,然後點擊「Insert」>「Module」。將以下代碼複製並粘貼到「Module」視窗中:

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. 要運行宏,請點擊 Run button Run 按鈕在 VBA 編輯器中。系統會提示您選擇資料範圍和排序列號。確認每一個提示,並讓宏完成所有步驟。如果您選擇重新合併,該代碼將自動合併指定列中具有相同值的相鄰儲存格。

提示:

  • 在運行 VBA 宏之前,始終備份您的工作表,因為像解除合併/合併這樣的動作是不可逆的。
  • 按照標題或非數字列進行排序可能需要額外調整——務必指定與您選擇相符的正確列號。
  • 如果在排序後遇到錯誤,請檢查整行或列的引用,並根據您的具體資料佈局調整宏的參數。

優勢: 自動化一個否則重複、多步驟的任務——特別適用於重複性工作。
局限性: VBA 宏需要啟用宏(可能有安全警告),並且在恢復合併後,複雜的表格佈局可能需要手動審查。

為獲得最佳效果,請先在您的資料副本上測試此宏。這個 VBA 解決方案特別適用於需要經常重複排序和合併過程或處理動態資料匯出的用戶。


最佳 Office 辦公效率工具

🤖 Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions
熱門功能查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入...
高級 LOOKUP多條件查找|多值查找|多表查找|模糊查找...
高級下拉列表快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ...
列管理器添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ...
精選功能網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)...
前15 大工具集12 款文本工具添加文本刪除特定字符,...)|50+ 種圖表 類型甘特圖,...)|40+ 實用 公式基於生日計算年齡,...)|19 款插入工具插入QR码按路徑插入圖片,...)|12 款轉換工具金額轉大寫匯率轉換,...)|7 款合併和分割工具高級合併行分割儲存格,...)| ...以及更多
使用 Kutools 支援你的語言——支援英語、西班牙語、德語、法語、中文及40 多種語言!

利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...


Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆

  • 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
  • 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
  • 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!