1职场实例
小伙伴们大家好,今天我们来解决一个互助群里面讨论的Excel职场办公实例:如何将行数据横向批量删除重复值。
如下图所示:
左侧表格为三行数据,每行数据都有几个单元格里的内容是重复的,例如第一行数据的A2单元格与C2单元格内容“3”是重复的,B2单元格和D2单元格内容“2”也是重复的,现在我们想要实现行数据横向批量删除重复值,还拿第一行数据为例,也就是说只保留唯一值3和2。
2解题思路
以前我们只知道运用VBA代码的方式解决此类问题。而今天我们来利用IF函数以及经典的COUNIF函数单条件统计和查找功能来快速的解决此问题场景。
先使用COUNTIF函数统计每个元素出现的次数。
我们在F2单元格输入以下函数公式:
=COUNTIF($A2:A2,A2)
向右填充公式并向下填充公式。
即我们依次统计A2、B2、C2、D2单元格中的数据在范围A2:A2、范围A2:B2、范围A2:C2、范围A2:D2内出现的个数(次数)为1、1、2、2。
公式第1参数$A2:A2,之所以在该范围的起始位置(冒号左边)$A2处加上混合引用符号&,即进行锁列不锁行,公式向右填充时,该范围的起始单元格始终固定不动,该范围结束单元格会随着公式向右填充而位置会发生实时位移,从而实现动态范围统计个数。
我们惊喜的发现一个有趣的规律:COUNTIF函数对每个数据出现的次数进行统计后,返回值为1的单元格即代表不重复值。
我们运用这个规律再结合IF函数进行逻辑判断,逻辑是这样的:如果返回值为1的话,即COUNTIF($A2:A2,A2)等于1时,我们就返回左侧表格第一行对应原值单元格(即唯一值),否则则返回数值“0”。分别作为IF函数的三个参数。
继续完善F2单元格中的函数公式:
=IF(COUNTIF($A2:A2,A2)=1,A2,0)
向右填充公式并向下填充公式,那么就会实现唯一值显示对应的原值,重复值显示0的效果。
接下来,我们使用“查找”的功能将所有0值查找定位出来。
我们选中F2:I4单元格数据区域,按下快捷键Ctrl+F,调出“查找”的对话框,我们查找数值“0”,“查找范围”一定要设置为“值”后,再点击“查找全部”按钮。点击“查找全部”按钮后,只会将目标单元格定位到其中的1个零值上,所以我们需要继续按下Ctrl+A全选后,再关闭“查找”的对话框。
继续在任意一个查找定位到的零值单元格上右击鼠标,点击“删除-右侧单元格左移”,最终即可实现行数据横向删除重复值的效果。