跳至页脚内容
EXCEL 工具

如何在Excel中固定行:5种实际有效的方法

由Iron Software团队撰写。 如果您希望以编程方式自动化Excel工作流,请访问IronXL产品页面以了解更多关于在.NET中构建强大电子表解决方案的信息。

在数据驱动决策的世界中,您的分析只有在其数据基础上才有价值。 冗余信息,通常称为重复数据,会扭曲财务总额、增加线索数量,并导致在与客户沟通时出现令人尴尬的错误。 无论是清理邮件列表还是核对每月开支,知道如何在Excel中删除重复项对于任何专业人士来说都是不可或缺的技能。

从Excel中移除重复项的最快方法是使用数据选项卡上的删除重复项按钮。 只需选择您的数据集,点击数据 > 删除重复项,选择要检查匹配的列,然后点击确定。 这将立即清除所有冗余条目,只留下您的表中的唯一记录。

方法1:最快的方法(数据工具命令)

对于大多数办公室任务,您不需要复杂的公式。 Excel包括一个专门针对重复值的"核选项",可以在几秒钟内清理您的数据。

使用Microsoft Excel删除重复项工具

  1. 选择您的数据范围:点击数据表中的任意位置。 Excel通常足够聪明,可以检测到边界,但您也可以点击并拖动以选择特定区域。

如何在Excel中删除重复项:完整的逐步指南:图片1 - 选择数据范围

  1. 导航到数据选项卡:查看顶部功能区并点击数据

如何在Excel中删除重复项:完整的逐步指南:图片2 - 导航到数据选项卡

  1. 点击删除重复项:数据工具组中,您会找到删除重复项图标。

  2. 配置对话框: * 我的数据有标题:确保选中此项,如果您的第一行包含标题(如"姓名"或"日期")。

如何在Excel中删除重复项:完整的逐步指南:图片3 - 删除重复项对话框

* **选择列:**选择Excel必须考虑为重复行的列。 如果您选择所有列,则仅删除100%相同的行。
  1. 点击确定:Excel将显示一个摘要,显示找到和删除的重复值数量,以及剩余的唯一值。

如何在Excel中删除重复项:完整的逐步指南:图片4 - 删除Excel中重复项的示例输出

使用键盘快捷键

执行此任务而不使用鼠标,请使用以下序列:

  • Alt:激活功能区。
  • A:打开数据选项卡。
  • M:触发删除重复项功能。

方法2:安全的方法(使用高级筛选器)

标准的"删除"工具是永久的。 如果您希望保持原始数据不变但又要提取唯一列表到其他位置,则高级筛选是您最好的朋友。

提取唯一记录的步骤

  1. 选择您的数据范围。
  2. 转到数据选项卡并点击高级(在筛选图标旁边)。

  3. 在对话框中选择复制到另一个位置
  4. 验证列表范围是否正确。

  5. 复制到框中,点击要放置干净数据的单元格。

  6. 关键步骤:勾选仅唯一记录的选项。

  7. 点击确定

这将创建一个全新的、干净的列表,而不会触及原始杂乱的内容,非常适合审计用途。

方法3:使用UNIQUE函数动态删除Excel中的重复项

如果您正在使用Excel 365或Excel 2021+,可以使用自带的"Office 365 公式",自动更新。 这比手动按钮强大得多,因为如果您将新数据添加到原始列表中,'唯一'列表会实时更新。

如何使用=UNIQUE()公式

  1. 在您希望干净数据开始的空单元格中单击。
  2. 输入以下公式:=UNIQUE(A2:A500)

  3. 按下Enter

如何在Excel中删除重复项:完整的逐步指南:图片5 - 使用UNIQUE公式删除重复值

Excel将"溢出"结果向下和向外扩展,创建一个动态范围的唯一值。

专业提示: 如果您希望列表在删除重复单元格时按字母顺序排序,可像这样包装公式:=SORT(UNIQUE(A2:A500))

如何在Excel中删除重复项:完整的逐步指南:图片6 - 排序后的数据和已删除的重复项

方法4:使用Power Query删除重复值(适用于大数据)

处理5万行或以上的数据集时,标准Excel GUI有时会卡顿或迟缓。 Power Query是专业人士进行"重负荷工作"的首选。

  1. 选择您的数据,转到数据 > 从表格/范围。 点击确定以打开Power Query编辑器。
  2. 选择要检查重复的列。 (按住Ctrl选择多个)。

  3. 右键单击列标题。

  4. 选择删除重复项
  5. 点击关闭 & 加载选项卡上的按钮,将干净数据回载到新的Excel工作表中。

方法5:使用数据透视表查找唯一值

数据透视表作为清理工具经常被忽视,但它们对将成千上万行压缩为一个干净的唯一列表非常有效,同时还会告知您每个重复项出现的次数。

  1. 选择您的数据范围。

  2. 转到插入 > 数据透视表

 related to 方法5:使用数据透视表查找唯一值

  1. 选择新工作表并点击确定。

如何在Excel中删除重复项:完整的逐步指南:图片8 - 添加透视表对话框

  1. 将您希望去重的字段(例如,"客户电子邮件")拖到区域。

  2. 将相同的字段拖到区域。

  3. Excel将会向您显示列表中的每一个唯一电子邮件地址,并且旁边的计数会告诉您该"重复项"在原始文件中出现的确切次数。

方法6:处理区分大小写的重复项(公式方法)

标准Excel工具是"区分大小写"的。这意味着Excel认为"APPLE"和"apple"是同一个东西。 如果您需要仅在大小写匹配时识别重复项,则需要一个辅助列。

  1. 在您的数据旁创建一个辅助列。
  2. 使用公式检查精确匹配:=SUMPRODUCT(--EXACT($A$2:$A$100, A2))>1

  3. 这将返回TRUE表示重复(区分大小写)。

如何在Excel中删除重复项:完整的逐步指南:图片9 - 使用公式的辅助列

  1. 筛选辅助列中的TRUE并手动删除这些行。

如何在Excel中删除重复项:完整的逐步指南:图片10 - 过滤TRUE值

方法7:使用VBA自动删除重复项(宏自动化)

如果您是每周一早上收到一份杂乱报告的分析师,则无需每周点击相同的五个按钮。 您可以通过简单的VBA脚本自动化"删除重复项"过程。

  1. 按下Alt + F11打开VBA编辑器。

  2. 转到插入 > 模块
  3. 粘贴以下代码:
Sub RemoveAllDuplicates()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    'Assuming your data starts in A1 and goes to Column C
    ws.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
    MsgBox "Duplicate removal complete!", vbInformation
End Sub
Sub RemoveAllDuplicates()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    'Assuming your data starts in A1 and goes to Column C
    ws.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
    MsgBox "Duplicate removal complete!", vbInformation
End Sub
Option Strict On



Sub RemoveAllDuplicates()
    Dim ws As Worksheet
    ws = ActiveSheet
    'Assuming your data starts in A1 and goes to Column C
    ws.Range("A1").CurrentRegion.RemoveDuplicates(Columns:=New Integer() {1, 2, 3}, Header:=xlYes)
    MsgBox("Duplicate removal complete!", vbInformation)
End Sub
$vbLabelText   $csharpLabel
  1. 按下F5运行。 此宏自动检测您的数据边界,并清除所有三个列中的重复项。

常见问题和故障排除

1. "未找到重复项"(但我看到了!)

这几乎总是由隐藏的空格引起的。 如果一个单元说"John",另一个说"John ",Excel将它们视为不同。

  • 修复:在运行删除工具之前对数据使用=TRIM()函数以去除尾随空格。

2. 存储为文本的数字

如果您的ID号码是从数据库导出的,有些可能会被格式化为"文本",而另一些则格式化为"数字"。

  • 修复:高亮显示该列,点击出现的小警告图标,然后选择转换为数字

3. 合并单元格

如果您的数据范围包含合并的单元格,Excel无法删除重复项。

  • 修复:选择整个工作表,点击【合并单元格】在主页选项卡,然后继续进行清理。

4. 不可见字符

有时从网页复制的数据包含"非断开空格"(字符160)。 标准的TRIM函数不能捕获这些。

  • 修复:使用查找和替换(Ctrl + H)。 按住Alt键,在数字键盘上输入0160到"查找内容"框,然后点击全部替换

开发者:使用IronXL进行编程去重

在企业环境中,数据清理通常在用户打开电子表格之前进行。 如果您正在构建一个.NET应用程序,您不应依赖用户手动点击"删除重复项"按钮。

IronXL允许您完全自动化此过程。 您可以加载一个工作簿,使用LINQ识别冗余行,并以编程方式清除它们,确保只有干净的数据到达您的数据库或最终用户。

为什么使用IronXL进行数据清理?

  • 无需安装Excel:在服务器上处理文件而无需Microsoft Office。
  • 速度:处理大表格,比标准Excel GUI快。
  • 精确度:使用复杂的C#逻辑定义什么是"重复",而不仅仅是简单的行匹配。

Code Snippet: Delete Duplicate Data in C

以下示例展示了如何使用IronXL找到并删除基于特定列值的重复行。

using IronXL;
using System.Linq;
using System.Collections.Generic;
// Load the workbook
WorkBook workbook = WorkBook.Load("financial_report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Use LINQ to identify unique rows based on the 'Email' column (Column B)
var seenEntries = new HashSet<string>();
var rowsToRemove = new List<int>();
for (int i = 1; i < sheet.RowCount; i++)
{
    string email = sheet["B" + (i + 1)].Value.ToString();
    if (seenEntries.Contains(email))
    {
        rowsToRemove.Add(i);
    }
    else
    {
        seenEntries.Add(email);
    }
}
// Remove the flagged duplicate rows (in reverse order to maintain index integrity)
foreach (var rowIndex in rowsToRemove.OrderByDescending(r => r))
{
    sheet.Rows[rowIndex].RemoveRow();
}
// Save the sanitized file
workbook.SaveAs("Clean_financial_report.xlsx");
using IronXL;
using System.Linq;
using System.Collections.Generic;
// Load the workbook
WorkBook workbook = WorkBook.Load("financial_report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Use LINQ to identify unique rows based on the 'Email' column (Column B)
var seenEntries = new HashSet<string>();
var rowsToRemove = new List<int>();
for (int i = 1; i < sheet.RowCount; i++)
{
    string email = sheet["B" + (i + 1)].Value.ToString();
    if (seenEntries.Contains(email))
    {
        rowsToRemove.Add(i);
    }
    else
    {
        seenEntries.Add(email);
    }
}
// Remove the flagged duplicate rows (in reverse order to maintain index integrity)
foreach (var rowIndex in rowsToRemove.OrderByDescending(r => r))
{
    sheet.Rows[rowIndex].RemoveRow();
}
// Save the sanitized file
workbook.SaveAs("Clean_financial_report.xlsx");
Imports IronXL
Imports System.Linq
Imports System.Collections.Generic

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

' Use LINQ to identify unique rows based on the 'Email' column (Column B)
Dim seenEntries As New HashSet(Of String)()
Dim rowsToRemove As New List(Of Integer)()

For i As Integer = 1 To sheet.RowCount - 1
    Dim email As String = sheet("B" & (i + 1)).Value.ToString()
    If seenEntries.Contains(email) Then
        rowsToRemove.Add(i)
    Else
        seenEntries.Add(email)
    End If
Next

' Remove the flagged duplicate rows (in reverse order to maintain index integrity)
For Each rowIndex In rowsToRemove.OrderByDescending(Function(r) r)
    sheet.Rows(rowIndex).RemoveRow()
Next

' Save the sanitized file
workbook.SaveAs("Clean_financial_report.xlsx")
$vbLabelText   $csharpLabel

输出:原始工作表与重复项被移除的工作表

如何在Excel中删除重复项:完整的逐步指南:图片11 - IronXL示例输出

方法比较

|翻译方法|最适合|数据大小|困难| |---|---|---|---| |数据工具|快速、一次性清理|小/中型|初学者| |高级筛选|保持原始数据完整|小型项目|中级| |UNIQUE函数|动态、实时更新的列表|语言|中级| |数据透视表|分析重复频率|语言|中级| |Power Query|重复复杂的清理|大型/企业|高级| |VBA宏|重复的本地任务|语言|高级| |IronXL (.NET)|自动化服务器端清理|无限制|开发人员|

总结和最佳实践

清理数据是实现准确报告的第一步。 保持您的工作簿专业且无错误:

  1. 备份您的数据:在使用"删除重复项"工具之前,请始终复制您的标签,因为这是永久性的,有时当您后来意识到需要那些数据时,可能很难"撤销"。

  2. 首先标准化:在查找重复项之前,使用 TRIM、PROPER 或 CLEAN 以确保文本一致。

  3. 删除前先检查:首先使用条件格式(突出显示单元格规则)突出显示重复数据,查看Excel计划删除的内容,然后再采取行动。

  4. 验证结果:移除后,检查您的行数。 如果您预期要删除100行但却删除了1,000行,请立即按下Ctrl + Z,并在工具中重新检查您的列选择。

准备好将您的Excel技能提升到更高水平了吗? 试用IronXL的免费试用版本。 无论您是数据分析师还是软件工程师,拥有合适的工具至关重要。 浏览IronXL产品页面以了解如何通过专业级代码管理复杂的电子表格逻辑。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我