如何在 Excel 中删除重复列:4 种实用方法

无论是需要合并客户列表还是导入调查结果,重复列都会导致数据错误。尽管 Excel 中有内置功能可以用来删除重复行,但删除重复列则却不能一键完成,因为内置工具默认进行垂直搜索。在本指南中,我们将介绍 在 Excel 中删除重复列 的 4 种最有效方法,从简单的转置技巧到高级的 Python 自动化。不管文件大或小还是使用场景不同,这些方法都能确保你找到并删除重复列,创建一个清晰无误的表格。

目录

通过转置法删除 Excel 中的重复列

由于 Excel 的删除重复项工具仅适用于行,因此一个简单的技巧就是将数据旋转 90 度,然后使用该工具删除重复的行,最后再将整理后的数据又转置回去。

使用转置法的步骤:

  1. 复制数据: 选择单元格范围并按 Ctrl + C 进行复制。
  2. 转置粘贴: 右键单击空白区域并选择 转置 图标(或使用 选择性粘贴 > 转置),现在原始数据中的列变成了行。

使用转置功能将列变为行

  1. 删除重复项: 转到 数据 选项卡并点击 删除重复项。Excel 现在将识别并删除重复行

使用删除重复项功能删除重复行

  1. 转置: 复制清理后的数据,再次使用 转置 粘贴选项将其恢复到原始的列布局。

注意: 转置法是一种简单但有效的解决方案,最适合简单的文本和数字数据。但由于更改布局可能会破坏单元格引用,使用此方法可能会导致公式错误(#REF!)或轻微的格式变化。因此,建议在开始前保存工作簿的备份,以确保原始数据安全。

拓展阅读:删除 Excel 空白行的 5 种简单方法

使用辅助行手动识别重复项

如果你希望在删除内容之前先手动检查一次,以免出错,那么可以使用辅助行结合条件格式的方法。这种方案会将重复项使用颜色标记出来,方便你手动查看重复列,并进行删除。

突出显示冗余列的步骤:

  1. 创建辅助行: 在顶部插入一个新行(例如第 2 行)。
  2. 合并数据: 在单元格 A2 中输入如下公式并向右拖动到所有列:=CONCAT(A3:A21),该公式将每列单元格中的所有内容合并为一个文本字符串,方便进行比较。

在 Excel 中插入公式

  1. 突出显示: 选择第 2 行,转到 开始 > 条件格式 > 突出显示单元格规则 > 重复值

使用条件格式标记重复值

  1. 删除: 任何被高亮突出显示的列都是重复的。你现在可以手动检查并删除相同的列。

注意:A3:A21 替换为你的实际数据范围。由于 Excel 对单个单元格的字符数量有限制,如果列包含超过 32,767 个字符的海量文本,建议改用下文的 Python 解决方案。

使用 UNIQUE 函数删除重复列

对于 Microsoft 365 或 Excel 2021 的用户,UNIQUE 函数可能是最快且最安全的方法。它可以在新的单元格区域动态生成不含重复列的数据集,而不会修改原始数据。

如何使用:

  1. 单击空白单元格,用于显示删除重复列后的数据。

  2. 输入公式:

    =UNIQUE(A1:F10, TRUE)

    第二个参数 TRUE 限制了 Excel 比较列而不是行。

  3. 按回车键,Excel 会将表格的干净版本自动填充到空白区域,从而有效地从输出中删除重复列。

注意: 此方法在 Google Sheets 中也同样适用。但请注意,UNIQUE 函数仅在 Microsoft 365、Excel 2021 及更高版本 中可用。如果你使用的是旧版本(如 Excel 2019 或 2016),则该函数不可用,建议使用转置法或辅助行法。

使用 Python 自动化删除列

对于处理拥有数百列的大型电子表格的数据分析师来说,手动点击并不是一个高效的选择。建议使用 Free Spire.XLS for Python 以编程方式删除 Excel 文件中的重复列。

这个专业的 Python 库允许进行高精度的去重,例如去除经常导致标准 Excel 工具漏掉重复项的隐藏空格。

安装: pip install Spire.Xls.Free

Python 代码示例:

以下代码展示了 Free Spire.XLS 从右向左遍历列,识别具有相同数据的列,并自动删除重复项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 对象并加载示例文件
workbook = Workbook()
workbook.LoadFromFile("input/示例.xlsx")

# 获取第一张工作表
sheet = workbook.Worksheets[0]

# 获取最后一行和最后一列的索引
lastRow = sheet.LastRow
lastCol = sheet.LastColumn
seen_columns = set()

# 从右向左循环遍历列
for col in range(lastCol, 0, -1):
column_values = []

# 获取该列中所有单元格的内容
for row in range(1, lastRow + 1):
cell_text = sheet.Range[row, col].Text
column_values.append(cell_text.strip() if cell_text else "")

# 将列值合并为唯一标识符
column_key = "|".join(column_values)

if column_key in seen_columns:
# 删除重复列
sheet.DeleteColumn(col)
else:
seen_columns.add(column_key)

# 保存修改后的工作簿
workbook.SaveToFile("/output/删除重复列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

原始工作表对比输出文件的预览:

通过 Python 自动删除 Excel 中的重复列

选择最适合你的方法

选择如何删除 Excel 中的重复列,需要综合考虑数据规模、软件版本以及技术背景。下表从最佳适用场景、主要操作和难度级别三个维度对四种方法进行了横向对比,帮助你快速锁定最适合当前项目的方案。

特性 转置法 辅助行 UNIQUE 函数 Python 脚本
最佳适用场景 普通用户 手动审核 Excel 365/2021 用户 自动化/大数据
主要操作 物理删除 视觉突出显示 动态列表 程序化删除
难度 初学者 初学者 中级 高级

结论

掌握删除 Excel 重复列的技巧是确保数据准确性与专业性的基础。在实际操作中,转置法和辅助行法是大多数普通用户的首选;如果你已经升级到 Office 365 或 Excel 2021,那么UNIQUE 函数无疑是最高效的无损提取方案;而面对海量数据或需要高度自动化的复杂任务时,Python 代码则展现出了强大的逻辑处理能力和执行效率。总之,无论是应对日常的小规模数据调整,还是处理数万行的工业级报表,灵活选择工具都能让你的工作事半功倍。