ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5919|回复: 9

[求助] 两个excel做对比,并自动删除重复项,能做到吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-1 17:29 | 显示全部楼层 |阅读模式
本帖最后由 cmpesr 于 2018-4-2 23:19 编辑

各位大神,我算是个小白,简单的比对什么的我还是能做到,不过文件之间的我就真做不到了……

我这里有俩excel文件,A和B,我想实现A中某列去对比B中某列(所有的话更好)的数据,如果有重复的数据,就从A中删除。但是我希望是删除所在的一行,而不仅仅是数据。

请问这个能做到吗?是否已经超过函数所能完成的功能需要用到vb了?

退而求其次,如果不是两个不同文件,而是在两个不同的sheet中也行,毕竟我还可以复制黏贴。但是删除一行的一定要实现。

附件里的表格式完全一样,但是因为涉及到公司内部的信息所以没用原表。

目的是要删除表A中和表B重复的工号,因为涉及到人员离职升职和失误导致的一系列重号空号和旧号。

原表数据量就比较大了……

VBA的话真不太懂……特来求教。

还请各位大神赐教。

工号.rar

12.53 KB, 下载次数: 36

TA的精华主题

TA的得分主题

发表于 2018-4-1 18:27 | 显示全部楼层
想要直接删除一行肯定是需要用到vba了
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-4-2 09:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2018-4-2 10:23 | 显示全部楼层
如果不怕乱序的话,用辅助列试试,比如你用公式在重复的行标1,不重复的标0,然后选定降序排列,删除即可

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-2 23:21 | 显示全部楼层
朱荣兴 发表于 2018-4-2 09:31
欢迎新朋友,1、请上传你的excel文件,最好是实际使用的文件,不要随便模拟,2、这个问题,是能是VBA来做的 ...

文件已上传,格式一样。数据量和数据本身做了改动。还请大神过目。深表感谢……

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-2 23:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kkf5560 发表于 2018-4-2 10:23
如果不怕乱序的话,用辅助列试试,比如你用公式在重复的行标1,不重复的标0,然后选定降序排列,删除即可

朋友你这倒是个不错的思路。可否说下用什么函数?具体步骤?辛苦你了……

TA的精华主题

TA的得分主题

发表于 2018-4-3 10:02 | 显示全部楼层
cmpesr 发表于 2018-4-2 23:24
朋友你这倒是个不错的思路。可否说下用什么函数?具体步骤?辛苦你了……

B表E2=IF(OR(COUNTIF($B2:$D2,[表A.xlsx]Sheet1!$B$2:$B$11)>0),"1","0")三键下拉,选定B1:B6,自定义排序,E列降序,删除行

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-15 11:08 | 显示全部楼层
kkf5560 发表于 2018-4-3 10:02
B表E2=IF(OR(COUNTIF($B2:$D2,[表A.xlsx]Sheet1!$B$2:$B$11)>0),"1","0")三键下拉,选定B1:B6,自定义排 ...

朋友你这公式应该是在B表中标记的吧?事实上我是想要删除A表中的数据。A表是原始表,列出了所有的工号,B表是统计出来的有问题的工号,准备从A表挑出来并删除。
另外我测试了一下这个公式,似乎功能是这个样子:A表中的一格只会和B表中的同一格行对比,而不是和表中所有数据对比。

之前我说的比较模糊……现在结合朋友的想法再重新叙述一下,应该会相对准确些:
表A中的数据,挨个的和B中所有数据对比(或者单独对比某一列,比如错的,重的,空的),然后在表A的数据后面标记(表B里有的标1,没有的标0)。这样的表述不知道是不是清楚。

另外很抱歉今天才看到你的回复,对你的帮助深表感谢。

TA的精华主题

TA的得分主题

发表于 2018-4-15 15:50 | 显示全部楼层
cmpesr 发表于 2018-4-15 11:08
朋友你这公式应该是在B表中标记的吧?事实上我是想要删除A表中的数据。A表是原始表,列出了所有的工号,B ...

=IF(COUNTIF([表B.xlsx]Sheet1!$B$2:$D$6,$B2)>0,"1","0")
TIM图片20180415155237.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-15 17:19 | 显示全部楼层
kkf5560 发表于 2018-4-15 15:50
=IF(COUNTIF([表B.xlsx]Sheet1!$B$2:$D$6,$B2)>0,"1","0")

实用
朋友帮了我大忙了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-10-20 08:41 , Processed in 0.041744 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表