分享

会员答疑(16)——如何删除一列数据中的重复值,但不删除单元格?

 Excel实用知识 2022-06-07 发布于广东
上午,SVIP群里有同学问了这样一个问题——

如何删除一列数据中的重复值(如下图B列所示),但是不删除单元格?

图片

删除重复值后的效果如图中D列所示。

以下从同学会会员讨论中选出几个解决方法,供大家参考。


01  函数法

——来自:SVIP | 陈章平

图片

首先加入辅助列,使用COUNTIF函数计算每个商品名称在B列中第几次出现,注意公式的引用:=COUNTIF($B$2:B2,B2)。

图片

然后,在新列中使用IF函数返回所有第1次出现的商品名称。以E1单元格为例,公式为:=IF(C2>1,'',B2)。

最后将E列复制粘贴为值,即可得到我们要的结果。


02  VBA

——来自:SVIP | 杨勇

图片

杨勇同学利用VBA很快地编写了一个删除重复值的程序,对D列商品名称进行循环遍历和判断。从第3行开始,如果名称与上方名称相同,则删除此单元格内容。

程序中,很好的使用了VBA中的经典语句,如For……Next,If……Then,Do……While等,快速解决问题。但是由于程序采用的是逐行判断,对于数据量较大的数据,运行速度会受到影响。


03  VBA数据字典

——来自:徐军泰

图片

为了提高程序的运行速度,采用数据字典方法。依次将D列中每个单元格的商品名称添加至数字字典,如果字典中没有该名称,则设置键值为1。否则,如果字典中已经有该名称,说明是重复项,则将单元格的值设置为空。


04  合并与取消合并

——来自:徐军泰

图片

我在Excel超能力插件中设计了一组快捷键,CTRL+SHIFT+M,一键合并相同单元格。从B列表到D列,只需先按相同值合并单元格,然后再取消合并单元格即可。

第1步:选中B列商品名称,按CTRL+SHIFT+M,一键合并相同单元格;
第2步:点击Excel开始选项卡下的【合并单元格】按钮,取消单元格合并,完成。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多