两种实用方法删除 Excel 重复行:Python + VBA
两种实用方法删除 Excel 重复行Python VBA2025-2026 实用版删除 Excel 中的重复行是非常常见的办公/数据清洗需求。下面介绍两种目前最实用、高效的方法Pythonpandas openpyxl—— 适合批量处理、自动化、跨文件、需要复杂去重逻辑的场景VBAExcel 自带宏—— 适合快速手动操作、不想安装额外环境、直接在 Excel 里完成的场景方法一Pythonpandas openpyxl —— 推荐用于自动化和批量处理优点可以处理超大文件几十万行支持多列组合去重、保留第一条/最后一条、按某列排序后去重可以把结果写回原文件或生成新文件完全可脚本化、定时任务代码示例保留第一条重复记录importpandasaspd# 方法1简单一行代码最常用defremove_duplicates_simple(file_path,sheet_nameSheet1,output_pathNone):# 读取 Exceldfpd.read_excel(file_path,sheet_namesheet_name,engineopenpyxl)# 删除重复行保留第一条出现的记录# keepfirst默认 / last / False全部删除cleaned_dfdf.drop_duplicates(keepfirst)# 如果想按某些列去重比如只看“姓名身份证”组合# cleaned_df df.drop_duplicates(subset[姓名, 身份证号], keepfirst)# 保存结果ifoutput_pathisNone:output_pathfile_path.replace(.xlsx,_cleaned.xlsx)cleaned_df.to_excel(output_path,indexFalse,engineopenpyxl)print(f去重完成原始{len(df)}行 → 去重后{len(cleaned_df)}行)print(f结果保存至{output_path})# 使用示例remove_duplicates_simple(原始数据.xlsx)更灵活版本保留最后一条 指定去重列 不保存索引importpandasaspddefremove_duplicates_advanced(input_file,output_fileNone,sheet_nameSheet1,subset_columnsNone,# 例如 [姓名, 电话]keeplast,# first / last / Falsesort_byNone# 先排序再去重例如 [日期]):dfpd.read_excel(input_file,sheet_namesheet_name,engineopenpyxl)original_rowslen(df)ifsort_by:dfdf.sort_values(bysort_by)cleaned_dfdf.drop_duplicates(subsetsubset_columns,keepkeep)ifoutput_fileisNone:output_fileinput_file.replace(.xlsx,_去重后.xlsx)cleaned_df.to_excel(output_file,indexFalse,engineopenpyxl)print(f去重完成)print(f原始行数{original_rows})print(f去重后行数{len(cleaned_df)})print(f保存路径{output_file})# 使用示例remove_duplicates_advanced(客户名单.xlsx,subset_columns[姓名,手机号,身份证号],# 只看这三列组合keeplast,# 保留最后出现的记录sort_by[登记日期]# 先按登记日期排序)方法二VBAExcel 宏 —— 适合快速手动清理优点无需安装任何软件直接在 Excel 里运行速度快几十万行也很快步骤按Alt F11打开 VBA 编辑器插入 → 模块粘贴下面代码Sub RemoveDuplicatesAdvanced() Dim ws As Worksheet Dim rng As Range Dim lastRow As Long Dim lastCol As Long 设置要处理的工作表可以改成 Sheets(Sheet1) Set ws ActiveSheet 找到最后一行和最后一列 lastRow ws.Cells(ws.Rows.Count, A).End(xlUp).Row lastCol ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 设置要处理的区域从第1行表头开始 Set rng ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)) 方式一删除所有完全重复的行保留第一条 rng.RemoveDuplicates Columns:Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), _ Header:xlYes 如果有表头就写 xlYes 方式二只按指定列去重例如只看第1列第3列第5列 rng.RemoveDuplicates Columns:Array(1, 3, 5), Header:xlYes MsgBox 去重完成 vbCrLf _ 当前剩余行数 ws.Cells(ws.Rows.Count, A).End(xlUp).Row, vbInformation End Sub常用修改方式需求修改方式只看 A、B、C 三列去重Columns:Array(1,2,3)保留最后一条记录先按某列排序Sort再去重包含表头Header:xlYes不包含表头Header:xlNo去重后自动筛选重复次数可加辅助列统计高级用法快捷键运行保存文件为.xlsm格式启用宏按Alt F8→ 选择RemoveDuplicatesAdvanced→ 运行两种方法对比总结维度Python (pandas)VBA (Excel 宏)环境依赖需要安装 pandas openpyxl无需安装Excel 自带处理数据量非常大百万行轻松几十万行也可以百万行稍慢灵活性极高多条件、排序、逻辑复杂中等主要靠列号自动化程度最高可定时、批量、命令行中等需手动触发学习成本中等需会一点 Python低复制粘贴就能用推荐场景经常处理、批量、需要可复用脚本临时快速清理、手动操作最终建议2026 视角日常小表、临时清理→直接用 VBA最快需要反复执行、批量处理、复杂去重逻辑、数据量大→强烈推荐 Python pandas企业内部自动化报表、ETL 流程→ 必选 Python如果你有具体需求例如只去重某些列、保留最新记录、处理多个 sheet、去重后还要统计重复次数等可以告诉我我可以给你更针对性的代码

相关新闻

办公党必存|输入法自动切换神器+6款纯净版输入法

办公党必存|输入法自动切换神器+6款纯净版输入法

谁懂啊家人们!切换窗口手动切输入法,五笔拼音来回乱跳,敲字效率直接砍半😭 今天给大家安排王炸组合——基于AutoHotkey(Ahk版本1.1.33.10)的中英文输入法自动切换工具,搭配6款今日更新/精选纯净…

2026/5/17 2:47:50 阅读更多 →
常搞混的PLC编程语言ST、STL、SCL到底有啥差别

常搞混的PLC编程语言ST、STL、SCL到底有啥差别

常搞混的PLC编程语言 ST、STL、SCL 到底有啥差别 很多人把这三个缩写搞混,尤其是西门子用户,最容易把它们当成“差不多”的文本语言。其实它们层次和定位完全不同,本质区别很大。 一、核心定位对比(一句话概括) 语言…

2026/7/5 3:32:43 阅读更多 →
跨境电商版权风控底层逻辑:为什么穷尽商标检索依然无法规避封店风险?

跨境电商版权风控底层逻辑:为什么穷尽商标检索依然无法规避封店风险?

在跨境电商的日常风控中,存在一个普遍的认知误区:认为只要通过了各国知识产权局(如USPTO、EUIPO)的商标(Trademark)和专利(Patent)数据库检索,上架合规性就得到了保障。然…

2026/7/5 11:12:07 阅读更多 →

最新新闻

锂电硬件级过压保护方案设计与STM32实现

锂电硬件级过压保护方案设计与STM32实现

1. 项目背景与核心器件选型锂离子电池因其高能量密度和长循环寿命,已成为便携式电子设备和储能系统的首选电源方案。但过充电是导致锂离子电池热失控甚至起火爆炸的主要诱因之一,这让我在去年开发户外储能电源时深有体会。当时测试组反馈,在快…

2026/7/5 15:58:53 阅读更多 →
Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能

Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能

Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能 【免费下载链接】gemma-4-E4B 项目地址: https://ai.gitcode.com/hf_mirrors/google/gemma-4-E4B 当你面对一个需要同时处理文本、图像、音频和视频的AI项目时,是否曾为选择合适模型而…

2026/7/5 15:56:41 阅读更多 →
Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战

Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战

Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战 【免费下载链接】IofTV-Screen-Vue3 一个基于 vue3、vite、Echart 框架的大数据可视化(大屏展示)模板 项目地址: https://gitcode.com/gh_mirrors/io/IofTV-Screen-Vue3 …

2026/7/5 15:56:41 阅读更多 →
Gin-Vue-Admin代码生成器字段编辑:5个深度优化技巧与架构解析

Gin-Vue-Admin代码生成器字段编辑:5个深度优化技巧与架构解析

Gin-Vue-Admin代码生成器字段编辑:5个深度优化技巧与架构解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin的开发基础平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下…

2026/7/5 15:54:41 阅读更多 →
3分钟掌握 facetype.js:终极字体转换工具完全指南

3分钟掌握 facetype.js:终极字体转换工具完全指南

3分钟掌握 facetype.js:终极字体转换工具完全指南 【免费下载链接】facetype.js typeface.js generator 项目地址: https://gitcode.com/gh_mirrors/fa/facetype.js facetype.js 是一个强大的在线字体转换工具,专门用于将标准字体文件转换为 type…

2026/7/5 15:54:41 阅读更多 →
DINOv3:重新定义视觉基础模型的无监督学习范式

DINOv3:重新定义视觉基础模型的无监督学习范式

DINOv3:重新定义视觉基础模型的无监督学习范式 【免费下载链接】dinov3 Reference PyTorch implementation and models for DINOv3 项目地址: https://gitcode.com/GitHub_Trending/di/dinov3 在计算机视觉领域,大规模预训练模型正经历着从监督学…

2026/7/5 15:54:41 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻