跳至頁尾內容
EXCEL 工具

如何在 Excel 中檢查重複項:每種方法詳解 (2026)

您正盯著一個包含數百行員工記錄、客戶名稱或銷售記錄的試算表,總覺得有些不對勁。 某處有重複的值,您需要在它們扭曲您的分析之前找到它們。 Excel 提供了幾種強大的方法來檢查重複項,正確的方法取決於您是想突出顯示它們、計數它們、篩選它們還是完全刪除它們。

最快的方法是使用條件格式設定。 選擇您的儲存格範圍,然後進入首頁 > 條件格式設定 > 突出顯示儲存格規則 > 重複值,選擇格式樣式,然後點擊確定。 Excel 即時突出顯示您所選範圍內的每個重複值,而不會改變您的原始資料。

本文介紹了 Excel 中處理重複資料的每種可靠方法,回答了常見問題:如何有效地在 Excel 中檢查重複項:使用條件格式設定突出顯示重複項,使用 COUNTIF 公式計算重複項,使用進階篩選器篩選和提取唯一值,使重複和唯一值並排顯示,使用內建的刪除重複項功能刪除重複行,跨多列查找重複項,以及使用 Power Query 處理大資料集。 故障排除部分涵蓋了邊緣案例。 需要以程式化方式檢測和管理重複值的開發者也會在最後找到一個部分,展示 IronXL 如何用 C# 處理這個問題。

在深入方法之前,有一件事值得事先了解:不是所有的這些方法都以相同的方式運作。 條件格式和 COUNTIF 保持您的原始資料不變。 Remove Duplicates 功能會永久刪除重複行。 在使用任何破壞性方法之前,總是要備份您的資料。

方法一:使用條件格式設定突出顯示重複項(最快)

條件格式設定是無需改變原始資料而在 Excel 工作表中視覺識別重複儲存格的最快方式。 它會對選定儲存格範圍中的每個包含重複出現值的儲存格套用格式樣式。

  1. 選擇您要檢查的儲存格範圍。 例如,選擇 B2:B151 以檢查員工資料檔案中的員工 ID 列。

  2. 在 Excel 功能區中進入首頁標籤。

  3. 點擊樣式組中的條件格式設定

  4. 從下拉選單中懸停至突出顯示儲存格規則

  5. 從子選單中選擇重複值

  6. 在對話框中,從右側的下拉選單中選擇您偏好的格式樣式,如淡紅色填充或黃色填充。
  7. 點擊確定

Excel 立即突出顯示您所選範圍內每個包含重複值的儲存格。 唯一值保持無格式。 在以下截圖中,B 欄中的重複姓名以紅色突出顯示,使它們在 150 行資料中,即使不手動捲動也能即時可見。

如何檢查 Excel 中的重複項:解釋每種方法(2026):圖片1 - 與如何檢查 Excel 中的重複項:解釋每種方法(2026)相關的6張圖片1

新增圖片替代文字

此方法最適合:此方法適用於在單列上進行快速視覺檢查,例如掃描重複姓名、D 欄中的重複電子郵件或重複的員工 ID。 使用條件格式設定讓您在不改變原始資料的情況下視覺識別重複值,使其成為一種在決定下一步行動前快速發現重複項的方法。 如需生成內建重複檢測的 Excel 報告,IronXL 讓您以 C# 程式化應用這些檢查。

重要:此方法僅基於精確匹配突出顯示含重複值的儲存格。 這是不區分大小寫的,因此 "JAMES" 和 "james" 會被視為重複項。 空白儲存格不會被標記為重複項。

方法二:使用 COUNTIF 計數重複項

COUNTIF 函式為您提供每個值在範圍中出現的準確計數。 這在您不僅需要知道重複項是否存在,還需要知道每項目的確切重複數量以及哪些特定行受到影響時非常有用。

  1. 點擊資料旁的空白儲存格,例如 Z2,以建立輔助列。
  2. 輸入以下公式:=COUNTIF($B$2:$B$151,B2)
  3. Enter
  4. 將公式複制到其餘資料行,自Z2Z151

COUNTIF 公式返回 A2 中的值在 A2 至 A151 指定範圍內出現的次數。結果為 1 表示該值是唯一的。 任何大於 1 的結果表示該值出現多次,並且為重複項。 COUNTIF 函式在邏輯上下文中返回布林值:當公式返回 true 時,它表示一個重複值,而當條目是唯一時返回 false,這使得篩選資料的選擇簡單化。 當範圍包含空字串或空白時,那些空白儲存格將被視為相同值,並且如果存在多個空白,將返回大於 1 的行數。像 A2 這樣的儲存格引用在條件參數中總是相對的,因此當公式複製下來時會正確移動。

在以下截圖中,Z 欄中的輔助列顯示對於唯一員工 ID 的計數為 1,對於多次出現相同 ID 的行計數為 2 或更高,這使得很容易確定哪些行是重複的以及存在多少重複。

如何檢查 Excel 中的重複項:解釋每種方法(2026):圖片2 - 與如何檢查 Excel 中的重複項:解釋每種方法(2026)相關的6張圖片2

新增圖片替代文字

跨兩列計數重複項:若要根據多重條件檢查重複項,請改用 COUNTIFS 函式。 例如,=COUNTIFS($B$2:$B$151,B2,$C$2:$C$151,C2) 返回名和姓相同的行數,幫助您找到即使資料跨兩列仍然是重複的名字。

專家提示:要僅從第一次出現起計數重複項,請使用 =COUNTIF($A$2:A2,A2)。 該公式在複制時擴展,因此任何值的首次出現總是返回 1,只有重複出現才返回 2 或更高。 這使得您可以識別並僅刪除重複行,保持每個值的首次出現。

方法三:篩選以查找重複行

一旦您使用 COUNTIF 在輔助列中標記重複行,您可以使用 Excel 的篩選功能快速隔離和查找整個試算表中的重複行。

  1. 首先完成方法二以在 Z 列新增 COUNTIF 輔助列。
  2. 點擊資料範圍中的任何儲存格,例如 B2
  3. 進入 資料標籤並在排序與篩選組中點擊篩選

  4. 點擊 Z 欄輔助列標題上的下拉箭頭。
  5. 取消選擇 1,並保留所有其他值已勾選,然後點擊確定

Excel 現在僅顯示計數大於1的行,即您的重複行。 您可以按需檢查、編輯或刪除它們。 若要查找整個表格中的重複行,請在篩選準則檢查所有列後應用。

如何檢查 Excel 中的重複項:解釋每種方法(2026):圖片3 - 與如何檢查 Excel 中的重複項:解釋每種方法(2026)相關的6張圖片3

新增圖片替代文字

使用進階篩選器以獲取唯一記錄:另一種方法是在資料標籤下使用進階篩選選項。 前往 資料 > 高級,勾選"僅限唯一記錄",並選擇是就地篩選還是將結果複制到新位置。 這直接從資料集中提取唯一記錄,這比手動篩選重複項快,當您只需查看不同條目時尤其適用。

方法四:使用內建功能刪除重複項

Excel 中的刪除重複項功能是從資料中刪除重複行的最直接方法。 它永久刪除重複行,僅保留每組重複項的第一次出現。

在使用刪除重複項功能之前,請備份您的資料。 此操作永久刪除重複行,並在保存文件後無法撤消。

  1. 選擇資料範圍內的任何儲存格,例如 B2
  2. 進入 Excel 功能區中的資料標籤

  3. 在資料工具組中點擊刪除重複項

  4. 在刪除重複項對話框中選擇要檢查的列。 要根據整行刪除重複行,請檢查所有列。 要根據特定列如員工 ID 刪除重複項,請檢查僅該列。
  5. 點擊確定

Excel 根據您所選列刪除所有重複行,僅保留每個值的首次出現。 一個對話框確認最終結果:找到了多少重複值並刪除了它們,還剩下多少唯一值。

在以下截圖中,刪除重複項對話框顯示了員工資料文件中列出的所有25欄,並提供了檢查或取消檢查的選項。 點擊確定後,Excel 報告刪除了多少重複行,還有多少唯一記錄行數。

如何檢查 Excel 中的重複項:解釋每種方法(2026):圖片4 - 與如何檢查 Excel 中的重複項:解釋每種方法(2026)相關的6張圖片4

新增圖片替代文字

選擇要檢查的列:如果您選擇了所有列,Excel 只會刪除在每個字段上完全相同的行,這通常並不是您所希望的。 在大多數情況下,您只會檢查關鍵的識別符號列,例如資料範圍左上角的 A 列中的員工 ID,以根據單一列刪除重複行,同時保持其他資料不變。 要僅從特定列中刪除重複值,請在刪除重複項對話框中選中該列並取消選中所有其他列。 這允許您以 excel 風格從任何目標字段中刪除重複項而不擾亂其餘行。

注意:刪除重複項功能不會在刪除行之前預覽它們。 如果您希望在刪除重複行之前查看它們,請首先使用方法二和方法三識別它們,然後手動刪除。

方法五:使用 COUNTIFS 跨多列查找重複項

當您需要根據多個字段的組合而不是單一列識別重複項時,COUNTIFS 函式會一次處理多個條件。 當像名字這樣的單一列有很多重複而並非真正的重複,但只有名字和姓氏的組合才定義了一條唯一記錄時,這很有用。

  1. 新增一個輔助列,例如在 Z 列的 Z2 儲存格。
  2. 輸入公式:=COUNTIFS($B$2:$B$151,B2,$C$2:$C$151,C2)
  3. 複制公式到 Z151

該公式返回名和姓相同的行數。 一個大於1的結果表明該組合為重複項目。

為了在整個表格中進行更精確的重複檢測,您可以擴展 COUNTIFS 公式以包括其他列如 E 欄中的部門和 K 欄中的入職日期,這在您想找到共享相同日期的重複項時很有用。 像 COUNTIFS 這樣的 Excel 公式是這類工作的最靈活的工具,因為該函式會根據您定義的任何組合條件返回計數。

如何檢查 Excel 中的重複項:解釋每種方法(2026):圖片5 - 與如何檢查 Excel 中的重複項:解釋每種方法(2026)相關的6張圖片5

新增圖片替代文字

方法六:使用 Power Query 在大型資料集中刪除重複項

Power Query 建議用於刪除有超過 10,000 行的大資料集中的重複項。 這是 Excel 中一個先進的工具,比內建的刪除重複項功能更有效率地處理複雜的重複情況,並且會在一個單獨的查詢中保留您的原始資料,而不是直接修改原始資料。

  1. 單擊資料範圍內的任何儲存格,例如 B2
  2. 進入 資料標籤 並在獲取和轉換資料組中點擊 從表/範圍。如果提示是否確認您的資料有標頭。

  3. 開啟 Power Query 編輯器。 選擇您要檢查的重複項列,例如員工 ID 列。
  4. 右鍵點擊列標題並選擇刪除重複項
  5. 在 Power Query 編輯器的首頁標籤中點擊關閉並載入以將去重結果載入新工作表。

Power Query 編輯器將您的資料載入一個單獨的查詢並根據選定的列刪除重複行,僅保留首次出現的項。 結果載入至新工作表的新位置,因此您的原始資料保持不變。

如何檢查 Excel 中的重複項:解釋每種方法(2026):圖片6 - 與如何檢查 Excel 中的重複項:解釋每種方法(2026)相關的6張圖片6

新增圖片替代文字

Excel 365 和 UNIQUE 函式:Excel 365 使用者還可以使用 UNIQUE 函式直接在工作表中提取只有唯一值的資料集。 公式 =UNIQUE(A2:A151) 只需一步驟就能從員工 ID 列返回唯一值列表,無需打開 Power Query 編輯器。 這是一種在側邊同時管理重複項和唯一記錄的高級方法。

常見問題與疑難排解

條件格式設定標記不顯得像重複的儲存格

條件格式設定不區分大小寫,並且在比較之前會修剪前導或尾隨空格。 如果兩個儲存格看起來不同但被標記,請使用 TRIM 函式或搜索和替換檢查隱藏的字元。

刪除重複項顯示"未找到重複項"但我能看到相同的值

比較是對所有選中列的精確比較。 如果您檢查了所有列,這些行在每個字段中必須完全相同才能被標記。 嘗試只檢查關鍵列以縮小條件。

COUNTIF 為所有項返回 1,儘管我能看到重複項

範圍參數可能未被正確鎖定。 請確保它使用類似於 $A$2:$A$151 的絕對引用,而條件則使用像 A2 的相對引用。沒有鎖定的引用,公式往下複製時會縮小並遺漏行。

在我的 Excel 版本中找不到 Power Query

Power Query 在 Windows 的 Excel 2016 及更高版本,以及 Mac 的 Excel 2019 及更高版本中可用。 在 Windows 的 Excel 2010 和 2013 中,它作為免費的微軟附加元件可用。

條件格式設定將空白儲存格突出顯示為重複項

如果您的範圍包含多個空白儲存格,Excel 預設將它們視作相同的值。 改用自定義規則,帶有 COUNTIF 公式:=COUNTIF($A$2:$A$151,A2)>1,僅適用於您選定範圍中的非空儲存格。

選擇正確的方法:快速參考

目標 該怎麼做
視覺突出重複值而不更改資料 首頁 > 條件格式設定 > 突出顯示儲存格規則 > 重複值
計算每個值出現的次數 在輔助列中使用 =COUNTIF($A$2:$A$151,A2)
篩選,只顯示重複行 新增 COUNTIF 輔助列,然後在該列上資料 > 篩選
永久刪除重複行 資料標籤 > 移除重複項(先備份資料)
跨多列查找重複項 使用 =COUNTIFS() 以及每個相關列的條件
處理超過 10,000 行的大型資料集 資料標籤 > 從表/範圍 > Power Query 編輯器 > 移除重複項
在Excel 365中只提取唯一值 在工作表上直接使用 =UNIQUE(range)

開發者專區:使用 IronXL 檢測和處理重複值

如果您的應用程式會自動處理 Excel 文件,它往往需要檢查和移除重複資料作為資料管道的一部分。IronXL 提供一個乾淨的API來讀取儲存格值,以程式化方式進行比較,並在沒有在伺服器上安裝Microsoft Office的情況下用C#移除重複行。

以下是如何在 C# 中根據員工 ID 列找到並移除重複行的方法:

using IronXL;
using System.Collections.Generic;
using System.Linq;
WorkBook workBook = WorkBook.Load("employee_data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
var seen = new HashSet<string>();
var rowsToDelete = new List<int>();
// Start from row 2 to skip the header row
for (int i = 2; i <= 151; i++)
{
    string cellValue = sheet[$"A{i}"].StringValue;
    if (!seen.Add(cellValue))
    {
        // Value already seen, this is a duplicate row
        rowsToDelete.Add(i);
    }
}
// Delete duplicate rows in reverse order to preserve row numbers
foreach (int rowIndex in rowsToDelete.OrderByDescending(r => r))
{
    sheet.RemoveRow(rowIndex);
}
workBook.SaveAs("employee_data_deduplicated.xlsx");
using IronXL;
using System.Collections.Generic;
using System.Linq;
WorkBook workBook = WorkBook.Load("employee_data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
var seen = new HashSet<string>();
var rowsToDelete = new List<int>();
// Start from row 2 to skip the header row
for (int i = 2; i <= 151; i++)
{
    string cellValue = sheet[$"A{i}"].StringValue;
    if (!seen.Add(cellValue))
    {
        // Value already seen, this is a duplicate row
        rowsToDelete.Add(i);
    }
}
// Delete duplicate rows in reverse order to preserve row numbers
foreach (int rowIndex in rowsToDelete.OrderByDescending(r => r))
{
    sheet.RemoveRow(rowIndex);
}
workBook.SaveAs("employee_data_deduplicated.xlsx");
Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

Dim workBook As WorkBook = WorkBook.Load("employee_data.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
Dim seen As New HashSet(Of String)()
Dim rowsToDelete As New List(Of Integer)()

' Start from row 2 to skip the header row
For i As Integer = 2 To 151
    Dim cellValue As String = sheet($"A{i}").StringValue
    If Not seen.Add(cellValue) Then
        ' Value already seen, this is a duplicate row
        rowsToDelete.Add(i)
    End If
Next

' Delete duplicate rows in reverse order to preserve row numbers
For Each rowIndex As Integer In rowsToDelete.OrderByDescending(Function(r) r)
    sheet.RemoveRow(rowIndex)
Next

workBook.SaveAs("employee_data_deduplicated.xlsx")
$vbLabelText   $csharpLabel

該程式碼會讀取員工 ID 列(A 欄)中的每個值,使用 HashSet 跟蹤已出現過的值,並標記任何之前出現過的行為重複。 行以相反順序刪除,以避免刪除一行後其餘行的索引偏移。

要使用背景顏色突出重複值而不是刪除它們,IronXL 的 條件格式 API 可讓您以程式化方式將格式規則應用於任何儲存格範圍,模擬出 Excel 內建的突出顯示儲存格規則功能的可視輸出。

IronXL 還可處理 讀取和寫入 Excel 資料儲存格格式和樣式設定,並且在伺服器上不需安裝 Microsoft Office 的情況下處理大型工作簿。

開始入門:透過 NuGet 安裝 IronXL:PM> Install-Package IronXL.Excel 並開始免費試用。 IronXL可以在.NET 6+上運行,且與Windows,Linux,macOS,Docker,Azure和AWS相容。

總結

無論是清理客戶名單,核實員工記錄還是準備資料進行分析,檢查 Excel 中的重複項是您需要定期進行的事情。 快捷視覺檢查中,條件格式為最快的解決方法:它在不觸碰原始資料的情況下突出顯示所選範圍內的每個重複值。 對於在 .NET 中自動化的開發者而言,IronXL 提供了程式化檢測和移除重複項的工具,無需在伺服器上安裝微軟Office。

要準確查找重複值,COUNTIF 和 COUNTIFS 可讓您計算出現次數,識別特定行並構建其周圍的篩選器。 準備永久刪除重複行時,資料標籤中的刪除重複項功能可以用幾下點擊處理,而 Power Query 則是為大型資料集提供更好的工具,因為性能和非破壞性處理很重要。 無論您選擇哪種方法,在移除任何內容之前備份您的原始資料。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話