ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 内容存在交叉重复的单元格,怎么做判重

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-10-29 11:21 | 显示全部楼层 |阅读模式
本帖最后由 biaobro@sina 于 2021-10-29 11:30 编辑

单元格内容单一时,可以用条件格式或者公式找到重复项。
但是像下面这种 1个单元格的内容包含在另一个单元格里的,有没有什么高效的方法可以直接在当前列里找出来。

现在能想到的方法,

1个是按分隔符分列,然后按行做条件格式标注,但是存在1个单元格里有几十条数据的情况,这种情况下分列就很不方便;

再有就估计得用VBA实现了

就是不知道还有没有其他方法,请大家指教

298C6E03-E080-4B5F-B950-1F4DBEBFCF0E.png



TA的精华主题

TA的得分主题

发表于 2021-10-29 16:43 | 显示全部楼层
https://club.excelhome.net/forum ... ead&tid=1601377
请看下这个,和你这个差不多,可以添加一列辅助列,然后按链接上的进行操作

TA的精华主题

TA的得分主题

发表于 2021-10-29 21:28 | 显示全部楼层
如果你的版本支持 TEXTJOIN 函数(应该是2019版),可以试试下面数组公式:
  1. =IF(COUNTIF(A1,"*,*")=0,IF(COUNTIF($A$1:$A$6,"*"&A1&"*")>1,A1,""),TEXTJOIN(",",,IFERROR(INDEX(MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/15)))*15-14,14),N(IF(1,SMALL(IFERROR(IF(COUNTIF($A$1:$A$6,"*"&MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/15)))*15-14,14)&"*")>1,ROW($1:$10)),FALSE),ROW($1:$10))))),"")))
复制代码
image.png

提取重复内容.rar

8.84 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-10-30 12:29 | 显示全部楼层
E风卍行H 发表于 2021-10-29 21:28
如果你的版本支持 TEXTJOIN 函数(应该是2019版),可以试试下面数组公式:

大哥牛逼,学习了。 没用过COUNTIF的*匹配,没用过数组公式

1,COUNTIF(A1,"*,*") 0表示单元格内只有1条数据,1表示存在多条
2,只有1条数据的,走 IF(COUNTIF($A$1:$A$6,"*"&A1&"*")>1,A1,"")

3,存在多条数据的,走 TEXTJOIN(",",,IFERROR(INDEX(MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/15)))*15-14,14),N(IF(1,SMALL(IFERROR(IF(COUNTIF($A$1:$A$6,"*"&MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/15)))*15-14,14)&"*")>1,ROW($1:$10)),FALSE),ROW($1:$10))))),""))

3.1,TEXTJOIN(用逗号分割,忽略空格,文本1,文本2,文本3....)

3.1,文本1:IFERROR(INDEX(MID(A7,ROW(INDIRECT("1:"&INT((LEN(A7)+1)/15)))*15-14,14),N(IF(1,SMALL(IFERROR(IF(COUNTIF($A$1:$A$6,"*"&MID(A7,ROW(INDIRECT("1:"&INT((LEN(A7)+1)/15)))*15-14,14)&"*")>1,ROW($1:$10)),FALSE),ROW($1:$10))))),"") 如果INDEX计算返回错误,就取空

3.1.1,INDEX(区域,行索引,列索引)  
3.1.1.1,区域:MID(A7,ROW(INDIRECT("1:"&INT((LEN(A7)+1)/15)))*15-14,14) 数组公式,意义是将单元格内容拆分成数组,如图
image.png

3.1.1.2,COUNTIF()  统计数组中的元素在区域中出现的次数,次数大于1的为True,否则为False,然后再和ROW()函数进行与运算
image.png






TA的精华主题

TA的得分主题

 楼主| 发表于 2021-10-30 12:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
E风卍行H 发表于 2021-10-29 21:28
如果你的版本支持 TEXTJOIN 函数(应该是2019版),可以试试下面数组公式:

之前没用过COUNTIF的 * 匹配,没用过数组公式。大哥牛逼,学习了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-11-2 21:09 来自手机 | 显示全部楼层
E风卍行H 发表于 2021-10-29 21:28
如果你的版本支持 TEXTJOIN 函数(应该是2019版),可以试试下面数组公式:

重新整理了下 7F791A75-3EF2-4A6A-90B1-6208BCEE0F03.png

TA的精华主题

TA的得分主题

发表于 2021-11-3 03:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

很用心!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-14 19:54 , Processed in 0.027272 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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