ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享]从原数据列中筛选出不重复数据,按升/降序排列。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-8-7 09:27 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:FREQUENCY

工作中经常遇到:将一组数据(行或列)的不重复数据筛选出后(即重复数据只显示一次,其余不显示),并按升/降序排列,将筛后结果显示在另一行/列中。

以上问题的解决方法很多,如高级筛选,数据透视表等等。今天我主要从利用count()、FREQUENCY()及small()或large()函数进行解决,有时既便有朋友把公式列出来但问其意义不乏其人,故在此顺便解释一下各关键字句的意义,文中有不妥之处请大虾们指点,不胜感激,同时也希望达到抛砖引玉的效果。

若原数据在A1:A22(22个数据中有许多重复数据),要求按22个数据中筛选出不重复数据列在C列中,

那么{C1:C22=IF(ROW()>COUNT(1/FREQUENCY(A1:A22,A1:A22)),"",SMALL(IF(FREQUENCY(A1:A22,A1:A22),A1:A22),ROW()))}

首先,不难看出这是个数组公式。

其次,FREQUENCY(A1:A22,A1:A22),是返回A1:A22数组中各数据出现的频率,也以数组显示出,即在A1:A22中,<=A1有多少个,>A1且=<A2有多少个……。

第三,COUNT(1/FREQUENCY(A1:A22,A1:A22)),是统计返回频率数组中不为0的个数,即有效个数,因FREQUENCY(A1:A22,A1:A22)结果有0值,那么1/FREQUENCY(A1:A22,A1:A22)的结果当然是错误了(大家知道,0不能作除数)。另外countif()也有类似同样效果。

第四,若IF()第一个条件满足,也就是说,所在单元格的行号大于这个数,就为空值。不难理解,假设一组数有10个数据,其中有2个重复,则只有8个有效唯一数值,根据当初的要求,当然从第9行及以后的行中单元格为空了。

第五,SMALL()函数据就是把筛选出来的数据从小到大排列,若要从大到小排列就用large()函数。

最后,若数据已经以行显示出来,欲转换为列显示出来,可用TRANSPOSE()进行转换,或用复制>选择性粘贴>转置。

详见附件:

  AXUysbRF.rar (7.57 KB, 下载次数: 915)


TA的精华主题

TA的得分主题

发表于 2007-8-7 10:42 | 显示全部楼层

謝謝提供分享 !!!

 

[em23][em23][em23][em24][em24][em24][em27][em27][em27]

TA的精华主题

TA的得分主题

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

多谢版主加分鼓励!

[此贴子已经被作者于2007-8-8 11:58:33编辑过]

TA的精华主题

TA的得分主题

发表于 2007-8-10 11:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢分享

TA的精华主题

TA的得分主题

发表于 2007-8-15 03:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-8-20 23:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

好东西,谢谢分享!

TA的精华主题

TA的得分主题

发表于 2007-8-27 15:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

果然是好东东,让我们这些菜鸟看了都能明白了.

有个问题不知道怎么处理,当数据中若有两个空单元格的话,出现错误. 请问该如何解决.谢啦 !

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-10-23 13:06 | 显示全部楼层
QUOTE:
以下是引用kidsing在2007-8-27 15:55:52的发言:

有个问题不知道怎么处理,当数据中若有两个空单元格的话,出现错误. 请问该如何解决.谢啦 !

谢谢关注,能否传个附件,并说明要求。

TA的精华主题

TA的得分主题

发表于 2007-10-23 15:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
5Be3Oj4J.rar (7.57 KB, 下载次数: 93)     此贴一些内容可以和楼主比较,另其中从“行”中求不重复数字望大家帮忙。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-10-23 15:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用博爱风雨同舟在2007-10-23 15:09:32的发言:
    此贴一些内容可以和楼主比较,另其中从“行”中求不重复数字望大家帮忙。

从“行”中求不重复数字就在26中有结果呀?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 18:33 , Processed in 0.044670 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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