跳至頁尾內容
EXCEL 工具

如何取消保護Excel工作表(簡單指南)

由Iron Software團隊撰寫。 如果您想以程式方式自動化您的試算表任務,請務必造訪IronXL產品頁面以了解我們專業的.NET Excel程式庫。

在資料管理的世界中,準確性就是一切。 無論您是在管理郵件清單、分析季度銷售或審計財務記錄,重複的資料都是敵人。 這會扭曲您的度量標準,導致重複計費,並在報告中造成普遍混亂。

如果您正在尋找最快的方法來發現這些錯誤,答案就在條件格式化中。 在接下來的步驟中,我們將看看如何在Excel檔案中找到重複項的不同方法。

在Excel中找到重複項的最快方法

在Excel中找到重複項的最快方法是選擇您的資料並使用重複值工具。

  1. 選擇您的資料範圍。
  2. 前往首頁索引標籤。

  3. 點擊條件格式化 > 突出顯示單元格規則 > 重複值

  4. 點擊確定

對於那些偏好速度的人,使用這些條件格式化規則的鍵盤快捷鍵是 Alt → H → L → H → D。 這會立即觸發重複檢測引擎,突出顯示您的選擇中的每個重複輸入。

為何尋找重複項對資料完整性至關重要

在我們深入了解多種識別方法之前,了解我們為何要這樣做是很重要的。 資料冗餘通常在以下情況發生:

  • 手動資料輸入:人為錯誤是重複的最常見原因。
  • 系統匯出:從多個CRM或舊資料庫合併資料時。
  • 複製粘貼操作:意外地將資料重複粘貼到主表中。

如果不檢查這些重複項,可能會導致"髒資料",使您的樞紐分析表和公式產生錯誤的結果。 在本指南中,我們將涵蓋從基本紅框工具到高級Power Query技術的所有可能方法來查找、突出顯示和管理重複項。

方法1:使用條件格式化(視覺方法)

這是在即時審計期間處理重複的標準"專業"方式。 它不會刪除資料; 它只是應用一個視覺層,使您能夠看到問題所在。

步驟指南

  1. 選擇您的資料:點擊並拖動以突出顯示單元格,或者點擊列字母(如A)以選擇整個列。

如何在Excel中找到重複項:逐步指南:圖片1 - 突出顯示的單元格

  1. 進入選單:在首頁標籤中,找到樣式組並點擊條件格式化。

如何在Excel中找到重複項:逐步指南:圖片2 - 在首頁標籤樣式組內的條件格式化

  1. 應用規則:將滑鼠懸停在突出顯示單元格規則上,然後選擇重複值。

如何在Excel中找到重複項:逐步指南:圖片3 - 在突出顯示單元格規則標籤中選擇

  1. 選擇您的樣式:將會出現一個對話框。 您可以選擇"淺紅色填充和深紅色文字"(預設)或建立"自定義格式"以獲得特定顏色,如黃色或綠色。

  2. 確認:點擊確定

查找和突出顯示重複值的輸出

如何在Excel中找到重複項:逐步指南:圖片4 - 突出顯示的重複值

為什麼使用這種方法?

它是非破壞性的。您可以看到重複項,調查它們為何存在,並手動決定是否保留或刪除它們。

方法2:"刪除重複項"工具(清理方法)

如果您已經知道重複項是垃圾,並且只想刪除它們,不要浪費時間來突出顯示它們。 使用刪除重複項特徵可在幾秒鐘內去除它們。

如何使用

  1. 點擊資料表內的任意位置。

    1. 前往功能區上的資料標籤。

如何在Excel中找到重複項:逐步指南:圖片5 - Excel的資料標籤

  1. 資料工具組中,點擊刪除重複項

如何在Excel中找到重複項:逐步指南:圖片6 - 刪除重複項選項

  1. 選擇列:會彈出一個窗口詢問要檢查哪些列。

如何在Excel中找到重複項:逐步指南:圖片7 - 刪除重複項彈出窗口

  * 例如,如果您想刪除重複的電子郵件,您將只選擇"電子郵件",Excel將刪除任何重複的電子郵件所在的行。

* 如果您選擇所有列,Excel只會刪除那一行中每個單元格都與另一行完全匹配的行。
  1. 點擊確定。 Excel將告訴您找到並刪除了多少重複值。 它還會告訴您還剩下多少個唯一值。

如何在Excel中找到重複項:逐步指南:圖片8 - 移除重複項的範例輸出

專業提示:在使用此工具前,務必將資料複製到新工作表中。 一旦移除重複項並保存文件,如果您後來發現一些條目是合法的,將很難"取消刪除"它們。

方法3:使用COUNTIF公式查找重複項

有時,光是突出顯示還不夠。 您可能需要一個明確告訴您某個值出現次數的單獨列。 為此,我們使用COUNTIF函式。

邏輯

COUNTIF函式計算特定值在範圍內出現的次數。 如果計數大於1,您就有重複項。

如何實施

  1. 在新的一列(例如E列)中輸入以下公式:
=COUNTIF(B:B, B2)
=COUNTIF(B:B, B2)
This appears to be an Excel formula rather than C# code. If you have C# code that interacts with Excel or a specific C# snippet you'd like converted, please provide that code for conversion to VB.NET.
$vbLabelText   $csharpLabel
  1. 將公式拖到列表的底部。

    1. 解釋結果:

      • 1:這是一個唯一值。
    • 2或更高:此值是重複的。

範例輸出:使用COUNTIF公式查找重複行或資料

如何在Excel中找到重複項:逐步指南:圖片9 - 顯示找到的重複資料的結果輸出

高級公式:僅突出顯示第二次出現

如果您想保留一個名字的首次出現,但突出顯示它的後續出現次數,請使用"擴展範圍"公式:

=COUNTIF($A$2:A2, A2) > 1
=COUNTIF($A$2:A2, A2) > 1
$vbLabelText   $csharpLabel

通過鎖定範圍的第一部分($A$2)但留下第二部分相對(A2),公式會檢查"從上到當前行"。這是標記重複項以便刪除的最佳方法,同時保留原資料不變。

方法4:使用Power Query處理大型資料集

如果您正在處理10萬+行,Excel的標準格式可能會讓您的電腦卡住。 Power Query是一個內建的資料處理引擎,能夠輕鬆處理龐大資料集。

Power Query 工作流程

  1. 選擇您的資料,然後前往資料標籤。

  2. 點擊從表/範圍(這將把您的資料變成正式的Excel表)。

  3. 一旦打開Power Query編輯器,右鍵點擊您想檢查的列頭。
  4. 選擇保留重複項(僅查看錯誤)或刪除重複項(清理列表)。

  5. 點擊關閉並載入以將乾淨的資料導回到新的Excel工作表中。

方法5:使用VBA進行自動審計

對於每週審核相同型別文件的高級使用者來說,一個VBA巨集可以將5分鐘的任務變成1秒鐘的工作。

巨集程式碼

要使用此功能,按下Alt + F11,前往插入 > 模組,然後貼上:

Sub HighlightAllDuplicates()
    Dim myRange As Range
    Set myRange = Selection
    myRange.FormatConditions.AddUniqueValues
    myRange.FormatConditions(myRange.FormatConditions.Count).SetFirstPriority
    myRange.FormatConditions(1).DupeUnique = xlDuplicate
    With myRange.FormatConditions(1).Interior
        .Color = RGB(255, 199, 206) ' Light Red
    End With
End Sub
Sub HighlightAllDuplicates()
    Dim myRange As Range
    Set myRange = Selection
    myRange.FormatConditions.AddUniqueValues
    myRange.FormatConditions(myRange.FormatConditions.Count).SetFirstPriority
    myRange.FormatConditions(1).DupeUnique = xlDuplicate
    With myRange.FormatConditions(1).Interior
        .Color = RGB(255, 199, 206) ' Light Red
    End With
End Sub
Option Strict On



Sub HighlightAllDuplicates()
    Dim myRange As Range
    myRange = Selection
    myRange.FormatConditions.AddUniqueValues()
    myRange.FormatConditions(myRange.FormatConditions.Count).SetFirstPriority()
    myRange.FormatConditions(1).DupeUnique = xlDuplicate
    With myRange.FormatConditions(1).Interior
        .Color = RGB(255, 199, 206) ' Light Red
    End With
End Sub
$vbLabelText   $csharpLabel

現在,您只需選擇一個範圍並運行此巨集即可立即應用紅色高亮。

常見問題與故障排除

即使是最好的工具,如果您的資料"髒了",也可能會失敗。這裡是Excel可能會錯過重複項的最常見原因:

1. 隱形空格

Excel將"Apple"和"Apple "(最後有一個空格)視為完全不同的東西。

  • 修正:使用輔助列中的 =TRIM(A2) 函式去除所有前導和尾隨空格,然後再運行重複檢查。

2. 以文字形式儲存的數字

如果有一個單元格是數字123,另一個是文字'123,Excel將不會將它們標記為重複。

  • 修正:選擇該列,進入資料 > 文字轉列,然後點擊完成。 這將使該列中的所有內容轉換為一致格式。

3. 不間斷空格

從網站複製的資料通常包含TRIM函式無法去除的"不間斷空格"(ASCII 160)。

  • 修正:使用尋找和替換(Ctrl + H)。 在"查找"框中,按住Alt並在數字鍵盤中輸入0160。 將"替換"框留空,然後點擊全部替換

給開發者:使用IronXL自動化重複檢測

雖然上述手動方法非常適合辦公室工作人員,但開發者經常需要在應用程式中大規模處理重複檢測。 如果您正在構建.NET應用程式,手動打開Excel不是一個選項。

IronXL為.NET開發者提供了一個強大、高速的程式庫,可以在不需要在伺服器上安裝Microsoft Office的情況下與Excel檔案互動。

為什麼使用IronXL?

  • 無需Interop:避免Microsoft.Office.Interop的困擾。
  • 輕鬆操縱資料:在您的項目中輕鬆打開和編輯 Excel活頁簿,無論您是只需要找到重複的單元格並突出顯示它們,編輯整行,應用格式樣式,提取唯一值,還是只輸入新資料。
  • 速度:在毫秒內處理巨大試算表。
  • C#整合:使用熟悉的LINQ語法找到重複項並分組,即使您需要根據多個條件突出顯示重複行。

Code Snippet: Finding Duplicate Entries in C

以下是使用IronXL以程式方式查找和突出顯示重複項的簡便方法:

using IronXL;
using System.Linq;
// Load the workbook
WorkBook workbook = WorkBook.Load("financial_report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Select the column to audit (e.g., Column B - Revenue)
var range = sheet["B2:B20"];
// Use LINQ to find the duplicate values
var duplicateList = range.GroupBy(c => c.Value.ToString())
                         .Where(g => g.Count() > 1)
                         .Select(g => g.Key);
// Apply styling to those duplicates
foreach (var cell in range)
{
    if (duplicateList.Contains(cell.Value.ToString()))
    {
        cell.Style.BackgroundColor = "#FFC7CE"; // Light Red fill
        cell.Style.Font.Color = "#9C0006";       // Dark Red text
    }
}
// Save the audited file
workbook.SaveAs("Audited_financial_report.xlsx");
using IronXL;
using System.Linq;
// Load the workbook
WorkBook workbook = WorkBook.Load("financial_report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Select the column to audit (e.g., Column B - Revenue)
var range = sheet["B2:B20"];
// Use LINQ to find the duplicate values
var duplicateList = range.GroupBy(c => c.Value.ToString())
                         .Where(g => g.Count() > 1)
                         .Select(g => g.Key);
// Apply styling to those duplicates
foreach (var cell in range)
{
    if (duplicateList.Contains(cell.Value.ToString()))
    {
        cell.Style.BackgroundColor = "#FFC7CE"; // Light Red fill
        cell.Style.Font.Color = "#9C0006";       // Dark Red text
    }
}
// Save the audited file
workbook.SaveAs("Audited_financial_report.xlsx");
Imports IronXL
Imports System.Linq

' Load the workbook
Dim workbook As WorkBook = WorkBook.Load("financial_report.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Select the column to audit (e.g., Column B - Revenue)
Dim range = sheet("B2:B20")

' Use LINQ to find the duplicate values
Dim duplicateList = range.GroupBy(Function(c) c.Value.ToString()) _
                         .Where(Function(g) g.Count() > 1) _
                         .Select(Function(g) g.Key)

' Apply styling to those duplicates
For Each cell In range
    If duplicateList.Contains(cell.Value.ToString()) Then
        cell.Style.BackgroundColor = "#FFC7CE" ' Light Red fill
        cell.Style.Font.Color = "#9C0006"       ' Dark Red text
    End If
Next

' Save the audited file
workbook.SaveAs("Audited_financial_report.xlsx")
$vbLabelText   $csharpLabel

在選定範圍內突出顯示重複值的輸出

如何在Excel中找到重複項:逐步指南:圖片10 - 突出顯示的重複項

方法比較

方法 最適合 困難度
條件格式化 快速檢查小/中型列表的視覺審計。 初學者
刪除重複項 永久清理資料。 初學者
COUNTIF公式 將邏輯新增到您的工作表中(例如,"如果計數 > 3")。 中級
Power Query 非常大的資料集或定期的資料導入。 高級
IronXL(.NET) 構建應用或自動化伺服器端報告。 開發人員

總結和最佳實踐

在Microsoft Excel檔案中找到重複項不僅僅是格式化技巧; 這是專業資料分析中的關鍵步驟。 保持領先於錯誤:

  1. 使用"刪除重複項"之前,務必保存備份

  2. 使用TRIM和CLEAN先清理資料,以確保空格不會隱藏重複項。

  3. 在工作時使用視覺提示以實時捕獲錯誤。

無論您是使用功能區的商業專業人士,還是使用IronXL的開發人員,擁有資料去重策略將確保您的報告保持準確,資料庫保持輕量。

準備好自動化您的Excel工作流程了嗎? 查看IronXL免費試用,今天就開始像專業人員一樣處理試算表。

Curtis Chau
技術作家

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

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

Iron 支援團隊

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