Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

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

Author Siluvia Last modified
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 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
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%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用