跳至页脚内容
EXCEL 工具

在 C# 中如何查看 PowerPoint 文件

_由 Iron Software 团队撰写。 如果您希望以程序方式自动化电子表格任务,请务必访问 IronXL 产品页面,以了解有关我们 .NET 专业 Excel 库的更多信息。

在专业的数据管理中,维护信息的完整性至关重要。 数据冗余,通常以重复项呈现,可能会严重影响分析模型、财务报告和数据库同步的准确性。 无论您是在管理庞大的客户列表,还是在审核复杂的总分类账,知道如何在 Excel 中突出显示重复项都是确保高质量、可操作数据的基本技能。

识别这些冗余的最快方法是通过 Excel 的内置条件格式功能引擎。通过选择您的数据范围并使用键盘顺序 Alt -> H -> L -> H -> D,您可以立即触发重复值对话框。 这使您可以在电子表格中应用一个视觉层,突出显示每个重复数据的实例,而不改变基础值。

方法 1:最快的方法(基于功能区的条件格式)

对于绝大多数任务,您不需要复杂的公式或脚本。Excel 提供了专门设计用于扫描选定单元格范围内的相同值的专用 GUI 工具。

使用功能区界面突出显示值

  1. 选择您的目标范围: 单击并拖动要分析的单元格。 或者,您可以单击列标头(例如,A 列)以选择整列数据。

如何在Excel中突出显示重复项:完整的逐步指南:图片1 - 选中的单元格

  1. 导航到顶部功能区中的主页选项卡。

如何在Excel中突出显示重复项:完整的逐步指南:图片2 - 转到主页选项卡

  1. 在样式组中单击条件格式

如何在Excel中突出显示重复项:完整的逐步指南:图片3 - 样式组中的条件格式选项

  1. 选择突出显示单元格规则,然后单击 重复值 以突出显示给定范围内的重复项。

如何在Excel中突出显示重复项:完整的逐步指南:图片4 - 突出显示单元格规则选项

  1. 在出现的对话框中,确保左侧下拉列表设置为 重复。 选择您喜欢的格式样式(例如,"浅红填充和深红文本"),然后单击 确定

如何在Excel中突出显示重复项:完整的逐步指南:图片5 - 设置自定义条件格式规则

使用键盘快捷键

如果您更喜欢将双手保持在键盘上,按照以下顺序使用以下序列:

  1. Alt: 激活功能区快捷键。

  2. H: 选择主页选项卡。

  3. L: 打开条件格式菜单。

  4. H: 选择突出显示单元格规则。

  5. D: 打开重复值对话框。

突出显示重复值的示例

如何在Excel中突出显示重复项:完整的逐步指南:图片6 - 突出显示Excel中重复项的示例输出

方法 2:自定义公式突出显示(COUNTIF 函数)

标准的"重复值"工具非常适合进行简单检查,但它缺乏细粒度。 如果您需要仅在出现次数超过两次时突出显示值,或者需要根据单列数据突出显示整行,则必须使用逻辑公式。

使用公式突出显示重复条目的逻辑

我们使用 COUNTIF 函数来确定值在范围内的频率。 如果频率大于 1,则条件返回 TRUE,并应用格式。

实施步骤:

  1. 从第一个记录开始选择数据范围(例如,A2:A500)。

如何在Excel中突出显示重复项:完整的逐步指南:图片7 - 选择单元格数据范围

  1. 前往 主页 > 条件格式 > 新建规则。

如何在Excel中突出显示重复项:完整的逐步指南:图片8 - 前往新建规则

  1. 选择 使用公式确定要格式化的单元格。

如何在Excel中突出显示重复项:完整的逐步指南:图片9 - 使用公式查找重复项

  1. 在公式栏中输入:
=COUNTIF($A$2:$A$500, A2) > 1
=COUNTIF($A$2:$A$500, A2) > 1
The provided C# code snippet seems to be a fragment of an Excel formula rather than C# code. However, if you intended to convert a C# code snippet that uses a similar logic or functionality, please provide the complete C# code, and I will convert it to VB.NET for you.
$vbLabelText   $csharpLabel
  1. 单击 格式,在 填充 选项卡下选择填充颜色,然后单击 确定

现在,我们可以看到由于使用上述公式,重复行被突出显示,使它们更容易找到。

如何在Excel中突出显示重复项:完整的逐步指南:图片10 - 突出显示重复单元格

为什么要使用公式?

通过更改公式末尾的整数,您可以创建更具体的规则。 例如,如果您只关心"极端"重复(例如出现 5 次或更多),您会使用:

=COUNTIF($A$2:$A$500,A2) ≥ 5
=COUNTIF($A$2:$A$500,A2) ≥ 5
The provided C# code snippet appears to be incomplete or incorrect as it seems to be a fragment of an Excel formula rather than C# code. If you intended to provide a C# code snippet that involves a similar logic or operation, please provide the complete and correct C# code for conversion to VB.NET.
$vbLabelText   $csharpLabel

方法 3:基于多列条件突出显示重复数据

通常,重复项不是由单个单元格定义,而是由多个单元格或多个条件的组合定义。 例如,您可能有两个名为"John Smith"的客户,但只有在他们还共享相同的"邮编"时,才算作"重复"。

串联技巧(辅助列)

  1. 在数据旁边创建一个"辅助列"。
  2. 使用和符号 (&) 组合列:=$A2 & $B2。
  3. 将方法 1 的突出显示应用于这个新的辅助列。

高级公式方法

如果您不想添加额外的列,可以在条件格式中使用 $COUNTIFS$(复数)公式:

  1. 选择您的数据范围。
  2. 转到 条件格式 > 新建规则 > 使用公式... 3. 输入以下公式(假设姓名在 A 列,邮编在 B 列):
=COUNTIFS($A$2:$A$9,$A2,$B$2:$B$9,$B2)>1
=COUNTIFS($A$2:$A$9,$A2,$B$2:$B$9,$B2)>1
This C# code appears to be a fragment of an Excel formula rather than a complete C# statement. However, if you want to use this logic in VB.NET, you would typically use Excel Interop or a library like EPPlus to interact with Excel files. Below is an example of how you might write a similar logic in VB.NET using Excel Interop:

net

This code assumes you have a reference to the Microsoft Excel Object Library in your project. Adjust the workbook path and sheet index as necessary for your specific use case.
$vbLabelText   $csharpLabel
  1. 设置您的格式。 Excel 现在只会突出显示姓名和邮编都与列表中另一项匹配的行。

如何在Excel中突出显示重复项:完整的逐步指南:图片11 - 基于多个标准的突出显示的重复数据

方法 4:基于列重复项突出显示整行

一个常见的专业需求是,当特定的唯一标识符(例如发票 ID 或员工编号)重复时,突出显示整行。 标准工具不会这么做; 它只会突出显示单元格本身。

  1. 选择整个表(不包括标题)。 确保您的活动单元格(在选择中保持白色的那个)位于数据的第一行。

如何在Excel中突出显示重复项:完整的逐步指南:图片12 - 选中的表格

  1. 打开 条件格式 > 新建规则 > 使用公式... 3. 假设您的"重复检查"列是 A 列。 输入以下公式:
=COUNTIF($A$2:$A$9,$A2)>1
=COUNTIF($A$2:$A$9,$A2)>1
This C# code snippet appears to be a fragment of an Excel formula rather than a complete C# code. However, if you are looking to convert a similar logic into VB.NET code, you might be dealing with a scenario where you need to check if a value appears more than once in a range. Here's how you might write a similar logic in VB.NET:

net

This assumes you are working within an Excel interop context in VB.NET. If this is not what you intended, please provide more context or clarify the request.
$vbLabelText   $csharpLabel

注意: 在"A"前的美元符号 ($) 是关键。 它将公式锚定到 A 列,而允许行号更改,以便 Excel 检查您表格的其余部分。

  1. 选择您的格式并应用。

如何在Excel中突出显示重复项:完整的逐步指南:图片13 - 突出显示重复值的表格

方法 4:查找唯一值(反向突出显示)

有时,目标不是查找重复项,而是识别"孤儿",仅出现一次的值。 这对于执行的任务至关重要,在这些任务中您正在寻找缺失条目或一次性交易。

  1. 选择要突出显示的范围。
  2. 转到 条件格式 > 突出显示单元格规则 > 重复值...

    1. 在左侧下拉列表中,将"重复"更改为 唯一

如何在Excel中突出显示重复项:完整的逐步指南:图片14 - 查找唯一值

  1. 选择对比色(例如,绿色填充)以将它们与数据集的其余部分区分开。

我们的规则检查唯一记录与重复值的输出

如何在Excel中突出显示重复项:完整的逐步指南:图片15 - 数据中突出显示的唯一值

方法 5:频繁审核的 VBA 宏

如果您发现自己每天在多个工作簿中突出显示重复项,小型 VBA(应用程序可视化基础)宏可以自动化此过程。 这是在 Excel 内处理该任务的最"技术性"方法,无需转向外部代码。

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

  2. 转到插入 > 模块
  3. 粘贴以下代码:
Sub HighlightDuplicates()
    Dim Rng As Range
    Set Rng = Selection
    Rng.FormatConditions.AddUniqueValues
    Rng.FormatConditions(Rng.FormatConditions.Count).SetFirstPriority
    Rng.FormatConditions(1).DupeUnique = xlDuplicate
    With Rng.FormatConditions(1).Font
        .Color = -16383844
    End With
    With Rng.FormatConditions(1).Interior
        .Color = 13551615
    End With
End Sub
Sub HighlightDuplicates()
    Dim Rng As Range
    Set Rng = Selection
    Rng.FormatConditions.AddUniqueValues
    Rng.FormatConditions(Rng.FormatConditions.Count).SetFirstPriority
    Rng.FormatConditions(1).DupeUnique = xlDuplicate
    With Rng.FormatConditions(1).Font
        .Color = -16383844
    End With
    With Rng.FormatConditions(1).Interior
        .Color = 13551615
    End With
End Sub
Option Strict On



Sub HighlightDuplicates()
    Dim Rng As Range
    Rng = Selection
    Rng.FormatConditions.AddUniqueValues()
    Rng.FormatConditions(Rng.FormatConditions.Count).SetFirstPriority()
    Rng.FormatConditions(1).DupeUnique = xlDuplicate
    With Rng.FormatConditions(1).Font
        .Color = -16383844
    End With
    With Rng.FormatConditions(1).Interior
        .Color = 13551615
    End With
End Sub
$vbLabelText   $csharpLabel
  1. 关闭编辑器。 您现在可以选择任何范围并立即运行此宏以应用红色高亮。

常见问题及故障排除

即使设置正确,您可能会发现 Excel 无法突出显示重复项或突出显示看似唯一的单元格。 这通常源于数据格式不一致。

1. 前导和尾随空格

Excel 将"Data"和"Data "视为两个不同的值。 如果您的信息是从 CRM 或网络数据库导出的,可能包含不可见空格。

  • 解决方案: 在辅助列中使用 =TRIM() 函数在运行重复检查之前清理文本。

2. 存储为文本的数字

包含数字 $100$ 的单元格将不与包含文本"100"的单元格匹配。

  • 解决方案: 选择该列,进入 数据 选项卡,选择 文本到列,然后点击 完成。 这通常会迫使 Excel 重新评估数据类型。

3. 大小写敏感性

Excel 的标准重复工具 不是 大小写敏感的。它将"APPLE"和 "apple"视为相同。 如果您的工作流程需要大小写敏感的匹配(例如,用于大小写敏感的密码或 ID),您必须使用结合 $SUMPRODUCT$ 和 $EXACT$ 的公式:

=SUMPRODUCT(--EXACT($A$2:$A$500,A2))>1
=SUMPRODUCT(--EXACT($A$2:$A$500,A2))>1
The provided C# code appears to be a fragment of an Excel formula rather than C# code. If you intended to convert a C# code snippet, please provide the correct C# code. If this is indeed an Excel formula, it does not translate directly to VB.NET code, as it is specific to Excel's formula language. Please clarify your request if needed.
$vbLabelText   $csharpLabel

4. 不可换行空格

常见于从网络复制的数据中,"不可换行空格"(ASCII 160)不会被标准的 TRIM 函数移除。

  • 解决方案: 使用 查找和替换(Ctrl + H)。 在"查找"框中按住 Alt 键,并在数字键上输入 0160,然后将"替换"框留空后点击 全部替换

超越突出显示:删除重复项

一旦您突出显示重复行,您可能想要删除重复的数据。

  1. 前往 数据 选项卡。

  2. 数据工具 组中,点击 删除重复项

  3. 选择要匹配的列,以便将一行视为重复。

警告:此操作是永久的。 在运行此工具之前,始终保留原始数据的备份。

对于开发人员:使用 IronXL 自动化重复检测

虽然 Excel 的 GUI 足以进行手动数据输入,但企业级应用程序通常需要以编程方式进行这些检查。 如果您正在构建一个处理用户上传或生成报告的 .NET 应用程序,手动点击不是一个选项。

IronXL 允许开发人员 操作 Excel 文件,完全控制样式和格式,而无需Microsoft Office Interop 的开销。您可以通过 C# 代码直接执行快速扫描重复项和应用条件格式。

为什么使用 IronXL 进行数据审核?

  • 性能: 比 Excel GUI 快得多地扫描数百万个单元格。
  • 自动化: 将重复检查集成到您的 CI/CD 管道或后端服务中。
  • 格式控控制: 以编程方式将十六进制颜色、边框和字体应用于重复记录。

Code Snippet: Identifying Duplicates in C

以下示例演示了如何 加载电子表格、识别特定列中的重复值,并应用视觉突出显示。

using IronXL;
using System.Linq;
// Load your workbook
WorkBook workbook = WorkBook.Load("Quarterly_Report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Define the range you want to check (e.g., Column B)
var range = sheet["B2:B1000"];
// Identify duplicate values using LINQ logic
var duplicateValues = range.GroupBy(cell => cell.Value.ToString())
                           .Where(group => group.Count() > 1)
                           .Select(group => group.Key);
// Iterate through the range and apply a "Duplicate" style
foreach (var cell in range)
{
    if (duplicateValues.Contains(cell.Value.ToString()))
    {
        cell.Style.BackgroundColor = "#FFC7CE"; // Light Red
        cell.Style.Font.Color = "#9C0006";       // Dark Red
    }
}
// Save the workbook with highlighted duplicates
workbook.SaveAs("Audited_Report.xlsx");
using IronXL;
using System.Linq;
// Load your workbook
WorkBook workbook = WorkBook.Load("Quarterly_Report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Define the range you want to check (e.g., Column B)
var range = sheet["B2:B1000"];
// Identify duplicate values using LINQ logic
var duplicateValues = range.GroupBy(cell => cell.Value.ToString())
                           .Where(group => group.Count() > 1)
                           .Select(group => group.Key);
// Iterate through the range and apply a "Duplicate" style
foreach (var cell in range)
{
    if (duplicateValues.Contains(cell.Value.ToString()))
    {
        cell.Style.BackgroundColor = "#FFC7CE"; // Light Red
        cell.Style.Font.Color = "#9C0006";       // Dark Red
    }
}
// Save the workbook with highlighted duplicates
workbook.SaveAs("Audited_Report.xlsx");
Imports IronXL
Imports System.Linq

' Load your workbook
Dim workbook As WorkBook = WorkBook.Load("Quarterly_Report.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Define the range you want to check (e.g., Column B)
Dim range = sheet("B2:B1000")

' Identify duplicate values using LINQ logic
Dim duplicateValues = range.GroupBy(Function(cell) cell.Value.ToString()) _
                           .Where(Function(group) group.Count() > 1) _
                           .Select(Function(group) group.Key)

' Iterate through the range and apply a "Duplicate" style
For Each cell In range
    If duplicateValues.Contains(cell.Value.ToString()) Then
        cell.Style.BackgroundColor = "#FFC7CE" ' Light Red
        cell.Style.Font.Color = "#9C0006"       ' Dark Red
    End If
Next

' Save the workbook with highlighted duplicates
workbook.SaveAs("Audited_Report.xlsx")
$vbLabelText   $csharpLabel

输出

如何在Excel中突出显示重复项:完整的逐步指南:图片16 - 突出显示重复项的已修改文件

重复检测方法的比较

|翻译方法|最适合|数据大小|技能水平| |---|---|---|---| |功能区工具|快速视觉"一次性"检查。 |小/中型|初学者| |$COUNTIF$|特定阈值(> 2次出现)。 |语言|中级| |整行公式|在审核期间使表格可读。 |语言|中级| |Power Query|大型数据集和ETL工作流程。 |大型项目|高级| |VBA宏|在本地文件上重复相同的检查。 |语言|高级| |IronXL (.NET)|构建处理用户文件的应用程序。 |无限制|开发人员|

总结和最佳实践

保持无重复环境是一个持续的过程,而不是一次性任务。 为了确保数据的最高准确性,请遵循以下行业最佳实践:

  1. 始终先验证: 在突出显示之前,使用TRIM和CLEAN函数确保您的数据已"标准化"。

  2. 使用视觉提示: 在录入数据时使用条件格式实时捕捉错误。

  3. 删除前审核: 在"删除重复项"之前,务必先目视检查亮点。 某些"重复项"可能是合法的(例如,同一客户在同一天的两个不同订单)。

  4. 尽可能自动化: 如果您每周一早上进行相同的清理工作,可以考虑使用VBA宏或类似 IronXL 的编程解决方案,以节省大量手动工作时间。

准备好提升您的Excel技能吗? 无论您是数据分析师还是软件工程师,拥有合适的工具至关重要。 试用 IronXL的免费试用版,发现用代码管理复杂电子表格逻辑是多么简单。

Curtis Chau
技术作家

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

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

钢铁支援团队

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