打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel公式练习8:获取单元格区域中的不重复值

 

本次的练习是:在一个单元格区域中含有重复值,使用公式来获取该区域中的不重复值。

例如,下图所示的工作表单元格区域A1:A13,将其命名为Data。在该区域中,含有很多重复值。现在要获取该区域中的不重复值。

先不看答案,动手试一试。

 



公式思路

首先求出单元格区域Data中每个值在区域中第1次出现的行号,然后根据行号取出这些值。

 

公式解析

在单元格区域C1:C13中输入下面的数组公式:

=INDEX(Data,SMALL(IF(MATCH(Data,Data,0)=ROW(INDIRECT('1:'&ROWS(Data))),MATCH(Data,Data,0),''),ROW(INDIRECT('1:'&ROWS(Data)))))

Ctrl+Shift+Enter组合键,即可得到区域Data中不重复值,如下图所示:

公式中,MATCH(Data,Data,0)得到数组{1;1;1;4;4;4;7;7;7;10;10;7;1},即区域Data中每个值在该区域中出现的行号。ROW(INDIRECT('1:'&ROWS(Data)))得到数组{1;2;3;4;5;6;7;8;9;10;11;12;13}INDIRECT函数将“113”转换成行区域$1:$13

MATCH(Data,Data,0)=ROW(INDIRECT('1:'&ROWS(Data)))即上述两个数组相比较,得到数组{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE}IF函数根据该数组获取MATCH(Data,Data,0)所得数组中的值,即{1;””;””;4;””;””;7;””;””;10;””;””;””}SMALL函数分别取这个数组的第12313最小值,即{1;4;7;10;””;””;””;””;””;””;””;””;””},将此数组作为INDEX 函数的参数,分别取区域Data中对应行的值。

 

从上图所示的工作表中可以看出,对于数组公式中多余的单元格会显示#NUM!。使用下面的数组公式避免显示#NUM!

=IFERROR(INDEX(Data,SMALL(IF(MATCH(Data,Data,0)=ROW(INDIRECT('1:'& ROWS(Data))),MATCH(Data,Data,0),''),ROW(INDIRECT('1:'& ROWS(Data))))),'')

IFERROR函数在错误值时输入空。

 

小结

  • ROW函数中不能再包括其它求值的函数,此时使用INDIRECT函数来间接引用。

  • IFERROR函数是Excel 2007及其后的版本中的函数,当第一个参数为错误值时,将另一个参数作为返回值。若要在Excel 2013中得到同样的结果,则要将IF函数和ISERR函数结合使用。

  • 公式中蕴含着一些通用思想,可以在其他类似情形中借鉴。


下期预告:

Excel公式练习9: 获取当前单元格所在列的列字符

使用一个公式来获取当前单元格所在列的列字符,例如当前单元格为B2,其所在列为列B


转载本文请联系我(xhdsxfjy@163.com)或者注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel公式练习11:颠倒单元格区域中的数据
多行多列筛选不重复的值(EXCEL)
比VLOOKUP厉害的函数公式,出列!!
在和值表中查找号码
excel排序求和:如何统计前几名数据合计 上篇
公式函数14202班第一课时查找引用函数学习暨课后作业解题思路小结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服