Skip to main content

如何在Excel中刪除重複項但保留空白行?

Author: Sun Last Modified: 2025-08-06

在Excel中,「刪除重複項」功能提供了一種方便的方法來從列表中消除重複值。然而,當您的列表包含空白行時,通常會遇到一個常見的挑戰:標準功能也會刪除這些空白行,這可能會通過關閉間隙而破壞數據的原始結構。如果空白行作為邏輯分隔符或出於格式化目的存在,這往往會帶來問題。

如果您的目標是刪除重複條目,但 完全保留所有空白行,有幾種有效的方法可以實現。這些方法幫助您清理列表而不影響空白行,提供更專業的數據管理,並維持工作表的視覺結構。以下將介紹在Excel中不同場景下實現此目的的多種解決方案。
A screenshot showing data in Excel with duplicates and blank rows

使用公式和刪除重複項功能刪除重複項並保留空白行

使用選擇重複與唯一單元格工具選擇並高亮顯示重複項good idea3

VBA宏:自動刪除重複項但保留空白行

Excel公式/高級篩選:提取唯一值同時保留空白行


使用公式和刪除重複項功能刪除重複項並保留空白行

為了刪除重複項並保留空白行,有必要首先使用輔助列標記哪些行是空白的,然後利用Excel內置的「刪除重複項」工具。這種組合方法確保唯一值保留,並且所有現有的空白行保持不變。如果您希望有一個可視化的輔助列且大部分為手動操作的Excel工作流程,這個解決方案非常適用。

步驟1. 在相鄰列(例如,如果您的數據從A1開始,則從B1開始)中輸入以下公式來標記空白行:

=IF(LEN(TRIM(A1))=0,ROW(),"")

該公式檢查單元格A1是否為空或僅包含空格。如果是這樣,它將顯示行號;否則,它將使單元格保持空白。將公式向下拖動以覆蓋列表中的所有條目,從而標記每個空白行。
A screenshot of the formula used to identify blank rows in Excel

注意:如果您的數據跨越多列,請調整引用(例如,根據需要使用A1B1)。使用TRIM確保僅包含空格的單元格也被視為空白。

步驟2. 選擇您的原始數據列和新的輔助列。然後前往 數據 > 刪除重複項。在彈出的對話框中,僅勾選您的原始列(而不是輔助列),以便根據您的目標數據識別重複項。
A screenshot showing the Remove Duplicates button on the Data tab in Excel
A screenshot showing the Remove Duplicates dialog

提示:確保您的數據選擇範圍包括輔助列,但使用原始數據列作為刪除重複項的關鍵。這可以防止意外刪除由輔助列標記的空白行。

步驟3. 將出現一個通知,顯示刪除了多少個重複值。點擊 確定 確認並關閉消息。
A screenshot of the Remove Duplicates notification dialog in Excel

此時,列表將顯示所有唯一值以及所有先前存在的空白行。如果不再需要輔助列,您可以刪除它。
A screenshot of the Excel sheet after removing duplicates but keeping blank rows

適用場景:當您只想使用標準Excel功能,且數據較簡單時,推薦使用此方法。如果數據經常更新,則不是完全自動化的,因為需要重複這些步驟。此外,在刪除重複項之前,請務必創建數據的備份,因為保存並關閉文件後無法撤銷此過程。

故障排除:如果空白行仍然被刪除,請仔細檢查輔助公式是否正確標記了所有空白行,並且在對話框中只使用主列作為「刪除重複項」的關鍵。


使用選擇重複與唯一單元格工具選擇並高亮顯示重複項

Kutools for Excel 的「選擇重複與唯一單元格」工具在刪除前視覺上識別重複條目特別有用,並且默認情況下會保留空白行。如果您希望在刪除之前手動審查重複項,或者只是想突出顯示它們以進行進一步的操作,這個解決方案非常出色。

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

1. 選擇包含您的數據的範圍(包括空白行),然後點擊 Kutools > 選擇 > 選擇重複與唯一單元格.
A screenshot of the Kutools Select Duplicate & Unique Cells menu in Excel

2.選擇重複與唯一單元格 對話框中,選擇 重複項(除第一個外) 在「規則」下。您還可以勾選 填充背景顏色填充字體顏色 框,以使用您選擇的顏色自動高亮顯示重複項。
A screenshot of the Select Duplicate & Unique Cells dialog

提示:如果您想選擇整個重複行,請選擇完整的數據範圍,而不僅僅是一列,然後相應地應用該工具。

3. 點擊 確定。將彈出一個對話框報告找到並選擇了多少個重複單元格或行。點擊 確定 關閉。
A screenshot of the notification dialog in Kutools for Excel after selecting duplicate rows

現在,列表中的重複項已被高亮顯示,讓您可以輕鬆發現並按需手動刪除它們,而不影響任何空白行。
A screenshot of highlighted duplicate cells in Excel using Kutools

優勢:更具靈活性、無風險,並支持在刪除前審查。默認情況下不會觸及空白行。當您希望獲得更多視覺控制或需要逐案處理重複項時,此方法也非常有用。

注意:如果需要批量刪除重複項,您可以對高亮顯示的行進行排序或篩選,並保留原始工作表的視覺結構。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

演示:使用 Kutools for Excel 選擇重複與唯一單元格

 
Kutools for Excel:超過 300 種實用工具任您使用!永久免費享受AI功能!立即下載!

VBA宏:自動刪除重複項但保留空白行

對於經常需要自動化刪除重複項並保留所有空白行的用戶來說,使用VBA宏是一個實際的選擇。使用宏,您可以一鍵清理數據,無論列表更改頻繁與否,且無需依賴輔助列。如果您的工作表結構一致且需要一個可重複的解決方案以確保性能和準確性,此方法非常理想。

注意:在運行任何宏之前,務必保存工作表的副本,因為執行後操作不易撤銷。

1. 前往開發工具 > Visual Basic。在VBA編輯器中,點擊插入 > 模塊。然後將以下代碼粘貼到新模塊窗口中:

Sub RemoveDuplicatesKeepBlankRows()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim dict As Object
    Dim cell As Range
    Dim checkRange As Range
    Dim i As Long
    
    Set ws = ActiveSheet
    Set dict = CreateObject("Scripting.Dictionary")
    
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    Set checkRange = ws.Range("A1:A" & lastRow)
    
    Application.ScreenUpdating = False
    
    For i = lastRow To 1 Step -1
        Set cell = ws.Cells(i, 1)
        
        If Trim(cell.Value) = "" Then
            ' Blank row, do nothing and keep row
        Else
            If dict.Exists(cell.Value) Then
                cell.EntireRow.Delete
            Else
                dict.Add cell.Value, True
            End If
        End If
    Next i
    
    Application.ScreenUpdating = True
End Sub

2. 要運行代碼,點擊 Run button 按鈕,或按下 F5 並選擇模塊。該宏將立即掃描您的第一列(A),刪除重複值,同時將所有先前的空白行保留在其原始位置。

工作原理:該宏從指定列的底部循環到頂部,刪除先前的值,同時保留所有空白行。它自動適應不同長度的列表,通過識別最後一個非空單元格。

參數和提示:

  • 如果您的數據位於其他列,請將Cells(i,1)更改為相關的列號(例如,B列為2,C列為3).
  • 該宏從最後一行向上開始,防止行移動干擾刪除過程。
  • 任何僅包含空格的單元格也將被視為空白。如果您只想識別真正空的單元格,請將Trim(cell.Value) = ""替換為cell.Value = "".

故障排除:如果宏未按預期工作,請檢查目標列中是否有合併單元格、隱藏行或意外的數據類型。

最適合:重複清理操作,處理大型數據集,或在自動化工作流中使用宏。


Excel公式/高級篩選:提取唯一值同時保留空白行

如果您想從原始數據中提取唯一列表並在適當的位置保留空白行,可以使用帶條件公式的高級篩選,或者巧妙地使用Excel公式構建一個新列表。如果您希望創建一個單獨的、去重的列表以用於報告或進一步分析,同時尊重包括空白行在內的原始布局,這尤其有用。

您可以使用以下公式在保留空白行的同時構建唯一值列表。以下是一種簡化的做法:

1. 在新列中(例如,B1),使用此公式(假設您的原始數據在A1:A100中):

=IF(TRIM(A1)="","",IF(COUNTIF(A$1:A1,A1)=1,A1,""))

2. 將此公式向下拖動以覆蓋數據的所有行。唯一條目將出現在其原始位置;後續重複項將顯示為空白,原始空白行將保持空白。

注意事項:確保沒有隱藏值或前導/尾隨空格可能影響唯一性。TRIM有助於防範此問題。對於舊版本的Excel,可能需要調整方法或使用輔助列進行手動過濾。

適用於:創建新報告、並排列表或準備進一步處理的清潔數據。這種方法也非常適合那些希望純粹使用公式而不用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% 的工作效率,每天為你大量減少滑鼠點擊次數!