首页 > 其他分享 >行数据横向删除重复值,终于学会这个方法了!

行数据横向删除重复值,终于学会这个方法了!

时间:2023-08-17 12:33:24浏览次数:33  
标签:删除 重复 公式 单元格 横向 查找 A2 COUNTIF

1职场实例

小伙伴们大家好,今天我们来解决一个互助群里面讨论的Excel职场办公实例如何将行数据横向批量删除重复值

如下图所示:

左侧表格为三行数据,每行数据都有几个单元格里的内容是重复的,例如第一行数据的A2单元格与C2单元格内容“3”是重复的,B2单元格和D2单元格内容“2”也是重复的,现在我们想要实现行数据横向批量删除重复值,还拿第一行数据为例,也就是说只保留唯一值3和2。

行数据横向删除重复值,终于学会这个方法了!_批量删除



2解题思路

以前我们只知道运用VBA代码的方式解决此类问题。而今天我们来利用IF函数以及经典的COUNIF函数单条件统计和查找功能来快速的解决此问题场景。

行数据横向删除重复值,终于学会这个方法了!_VBA_02

先使用COUNTIF函数统计每个元素出现的次数。

我们在F2单元格输入以下函数公式:

=COUNTIF($A2:A2,A2)

向右填充公式并向下填充公式。

即我们依次统计A2B2C2D2单元格中的数据在范围A2:A2范围A2:B2范围A2:C2范围A2:D2内出现的个数(次数)为1、1、22

公式第1参数$A2:A2,之所以在该范围的起始位置(冒号左边)$A2处加上混合引用符号&,即进行锁列不锁行,公式向右填充时,该范围的起始单元格始终固定不动,该范围结束单元格会随着公式向右填充而位置会发生实时位移,从而实现动态范围统计个数

行数据横向删除重复值,终于学会这个方法了!_VBA_03

我们惊喜的发现一个有趣的规律:COUNTIF函数对每个数据出现的次数进行统计后,返回值为1的单元格即代表不重复值。

我们运用这个规律再结合IF函数进行逻辑判断,逻辑是这样的:如果返回值为1的话,即COUNTIF($A2:A2,A2)等于1时,我们就返回左侧表格第一行对应原值单元格(即唯一值),否则则返回数值“0”。分别作为IF函数的三个参数。

继续完善F2单元格中的函数公式:

=IF(COUNTIF($A2:A2,A2)=1,A2,0)

向右填充公式并向下填充公式,那么就会实现唯一值显示对应的原值,重复值显示0的效果。

行数据横向删除重复值,终于学会这个方法了!_VBA_04

接下来,我们使用“查找”的功能将所有0值查找定位出来。

我们选中F2:I4单元格数据区域,按下快捷键Ctrl+F,调出“查找”的对话框,我们查找数值“0”,“查找范围”一定要设置为“”后,再点击“查找全部”按钮。点击“查找全部”按钮后,只会将目标单元格定位到其中的1个零值上,所以我们需要继续按下Ctrl+A全选后,再关闭“查找”的对话框。

行数据横向删除重复值,终于学会这个方法了!_批量删除_05

继续在任意一个查找定位到的零值单元格上右击鼠标,点击“删除-右侧单元格左移”,最终即可实现行数据横向删除重复值的效果

行数据横向删除重复值,终于学会这个方法了!_VBA_06


标签:删除,重复,公式,单元格,横向,查找,A2,COUNTIF
From: https://blog.51cto.com/u_15825298/7120743

相关文章

  • 删除windows版Adobe Photoshop (Btea)的Creative Cloud Files文件夹快捷方式
    计算机\HKEY_USERS\S-1-5-21-3673781915-3232438367-201350203-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace我的电脑是win11,其中的S-1-5-21-3673781915-3232438367-201350203-500可能有变化,其他的都是一样的,{0E270DAA-1BE6-48F2-AC49-A60F94A42F2......
  • Git删除tag
    1.idea在工具栏找到Terminal——》输入git ,确保支持git命令 2.查看所有tag 3. 删除git上指定tag单个删除: gittag-d<tagname>批量删除: gittag-d<tagname1><tagname2><tagname3> 4.push到远程 ......
  • Leetcode 19. 删除链表的倒数第N个结点(Remove nth node from end of list)
    题目链接给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点.示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=1001<=n<=sz思路暴力解法:可以先......
  • docker image列表中的镜像删除提示无此镜像,失败解决方法
    dockerimage列表中的镜像删除提示无此镜像,失败解决方法目录dockerimage列表中的镜像删除提示无此镜像,失败解决方法1、问题现象2、问题处理1、问题现象当存在不使用的镜像时,想删除掉它,dockerimages检查了一下镜像ID,后面根据IMAGEID和REPOSITORY直接停止镜像,发现提示不存在对......
  • 限制程序重复启动+全局异常捕获
    限制程序重复启动:boolnoAny;System.Threading.Mutexm=newSystem.Threading.Mutex(true,Application.ProductName,outnoAny);if(!noAny){MessageBox.Show("程序已在运行,禁止重复启动!","提示");System.Threading.Thread.Sleep(500);Environment.......
  • 【AGC】发布后应用信息支持设备不能删除问题
    【关键字】AGC、应用发布、兼容设备类型【问题描述】有开发者反馈发布新版本应用,应用信息可支持设备不能删除原有在架应用已选择的设备类型。发布应用问题,目前应用是面向车机开发的,在上一个开放性测试版本中,支持设备除了选择了“车机”,还有“手机”(方便测试,横屏查看测试功能),现准备......
  • 逻辑删除与唯一索引冲突的问题
    逻辑删除字段原设计是0表示未删除1表示已删除下面举例说明存在的问题和解决方案一个班的学生学号必须保持唯一,因此建立了唯一索引。如果删除了李明的信息之后,再录入李明的数据库无法插入成功。为了支持逻辑删除,将学号字段和逻辑删除字段建立联合索引但是如果是第二次再......
  • LeetCode -- 19. 删除链表的倒数第 N 个结点
     一般的删除问题,可以直接删除(找符合条件的,找到了直接删掉),延迟删除(打标记,找完了再删除),栈,双指针 在链表中删除一个节点,要找到其前面一个节点cur,然后cur->next=cur->next->next即可 方法一:直接删除我们先算出链表长度len,要删除倒第n个节点就是删除第len-n......
  • 2个数组删除
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>在一个数组中删除另一个数组存在的值</title><styletype="text/css">html,body{width:100%;height:100%......
  • 代码随想录算法训练营第十一天|力扣20.有效的括号、力扣1047.删除字符串中所有相邻重
    有效的括号(力扣20.)括号匹配时使用栈解决的经典问题题意其实就像我们在写代码的过程中,要求括号的顺序是一样的有左括号,那么在对应位置则必须有右括号第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以returnfalse第二种情况:遍历字......