摘要:在日常工作中,日常工作中我们经常会遇到需要查找核对重复数据的情况。今天就跟大家分享查找重复数据的实用公式,简单实用,快速定位所有重复行号!
——
在日常工作中,日常工作中我们经常会遇到需要查找核对重复数据的情况。今天就跟大家分享查找重复数据的实用公式,简单实用,快速定位所有重复行号!
场景一:判断数据是否有重复
如下图所示,我们需要判断表格中的编号是否有重复数据。
在目标单元格中输入公式:
=IF(COUNTIF(A:A,A2)>1,"是","")
然后点击回车,下拉填充即可
解读:
①首先利用COUNTIF函数判断A2单元格的值在整个A列中出现的次数。
②然后使用IF函数判断A2单元格的值在整个A列中是否出现了不止一次,如果是就代表有重复数据,则标记为“是”,否则留空。
场景二:计算重复数据个数
如下图所示,我们需要计算表格中姓名重复个数。也就是不仅判断A2单元格的值是否重复,还精确计算出它重复了多少次。
在目标单元格中输入公式:
=IF(COUNTIF(A:A,A2)>1,COUNTIF(A:A,A2)-1&"个","")
然后点击回车,下拉填充即可
解读:
①首先利用COUNTIF函数判断A2单元格的值在整个A列中出现的次数。
②然后使用IF函数判断A2单元格的值在整个A列中是否出现了不止一次。
如果是就代表有重复数据,则返回计算重复次数:COUNTIF(A:A,A2)-1 & "个"
COUNTIF统计的是总出现次数。减去1,意味着排除掉它本身,得到的就是重复的次数。
否则,返回空值。
场景三:快速定位所有重复行号
如下图所示,我们需要统计出表格对应姓名的重复数据,在对应的第几行。
在目标单元格中输入公式:
=IF(COUNTIF($A$2:$A$13,A2)>1,"重复于:行"&TEXTJOIN("、行",TRUE,FILTER(ROW($A$2:$A$13),($A$2:$A$13=A2)*(ROW($A$2:$A$13)ROW),"")),"")然后点击回车,下拉填充即可
解读:
这是一个非常强大且实用的高级Excel公式,用于不仅标记重复项,还精确列出所有重复项所在的行号。
1、最外层:IF函数 - 决策判断层
①条件:COUNTIF($A$2:$A$13,A2)>1 (检查A2的值在A2:A13中是否重复)
②真值返回:"重复于:行"&TEXTJOIN(...) (如果重复,执行复杂的拼接操作)
③假值返回:"" (如果不重复,显示空单元格)
2、中层:TEXTJOIN & FILTER 组合 - 核心计算与拼接层
TEXTJOIN函数:用一个分隔符将多个文本字符串连接起来。
①分隔符:"、行"
这意味着它会用“、行”来连接各个数字。例如,数字3和7会被连接成3、行7。再与前面的"重复于:行"拼接,就形成了“重复于:行3、行7”这样符合中文阅读习惯的句子。
②是否忽略空单元格:TRUE(是)
③要连接的文本:FILTER(...) (这是一个数组,FILTER函数会提供一列要连接的行号)
3、最内层:FILTER函数 - 数据查找与过滤层
①返回结果的数组:ROW($A$2:$A$13)
ROW($A$2:$A$13)会返回一个由数字组成的数组:{2;3;4;5;6;7;8;9;10;11;12;13}(即A2:A13中每个单元格所在的行号)。
②筛选条件:($A$2:$A$13=A2)*(ROW($A$2:$A$13)ROW)
条件1:($A$2:$A$13=A2)
找出区域内所有值等于当前单元格(A2)的值。结果是一个由TRUE和FALSE组成的数组。
条件2:(ROW($A$2:$A$13)ROW)
ROW如果不加参数,返回公式所在单元格的行号。这个条件的意思是:“区域中单元格的行号不等于当前单元格的行号”。
它确保了在列出重复行时,不会包含自身所在的行。比如,如果公式在第2行,它就不会列出“行2”。
两个条件相乘,只有同时为TRUE的结果才会被保留。
③无结果时的返回值:""(如果筛选后没有结果,返回空文本)。
当然,大家可能觉得上面的组合公式太复杂,不过遇到类似场景可以直接套用公式,修改对应数据参数即可。
以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!
来源:桃大喵学习记一点号