获取Excel单元格区域中的不重复值
发布时间:2023-01-04 13:59:09
在一个单元格区域中含有重复值,使用公式来获取该区域中的不重复值。
例如,下图所示的工作表单元格区域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函数将“1:13”转换成行区域$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函数分别取这个数组的第1、2、3、…、13最小值,即{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函数结合使用。
公式中蕴含着一些通用思想,可以在其他类似情形中借鉴。
猜你喜欢
- 深度技术win10这一系列的系统程序已经在市面上征战多年了,不然发现它还是深受用户青睐的。一个能活很多年的产品其背后定有较深的技术支撑,下面
- Select方法可用于多种对象,例如Bookmark、Field、Range 和Table对象。A:下列示例选定活动文档中的第一个表格Sub
- 许多用户在使用电脑的时候都非常喜欢连接WiFi上网,但是不少用户在使用的时候发现自己的电脑时,WiFi一直自动断开,这样非常影响使用,这要怎
- C盘如果不定期清理的话,无用的文件就会越来越多,会导致电脑的运行速度变慢。但是很多用户不知道如何才能清理C盘,有些文件删除了不知道会不会影响
- excel 2016表格打不开未响应该怎么办?今天在电脑中打开excel表格发现打不开,该怎么呢?收到的excel邮件,打不开,总是提示向程
- 有时候工作的需要,我们要把pdf转换成word,而且,有些pdf上的文字是不能复制的,转换成word就不同了。下面,小编就介绍一款pdf转换
- 在插入表格时,表格的的数量不能满足我们的需求。特别有时后需要用到三线格,三线格是我们常用的一种表格形式。下面让小编为你带来word如何制作三
- 本文介绍了如何通过在 Excel 2010 中显示打印预览,在打印之前预览页面。还介绍了如何使用“页面布局”视图,通过它您可以在查看文档的同
- 1、打开word文章,选择要列入目录的内容,如我想把每一页的第一行作为目录的标题,然后点击“格式”中的“段落”。2、在“段落”的设置界面中,
- 很多用户为了保证自己电脑的信息安全,会给电脑设置Windows Hello人脸识别,但是有用户跟小编反映说自己设置过程中出现了错误,系统提示
- 快乐码字里的拼字功能怎么使用?很多刚使用快乐码字的朋友们,可能还不太清楚快乐码字拼字功能的使用方法,本文详细介绍了快乐码字拼字操作过程,需要
- 方法:1、如下图的一段文字编号,你会发现编号与文字之间空着很大的距离,该怎样除去这个空格呢? 2、如下图,找到编号
- Win10烟雾头要怎么调?cf游戏玩家应该对烟雾头比较了解,通过烟雾头我们可以更清晰的看清敌人所在的位置。但是很多用户不知道怎么调节才是最好
- 1. Shift + Delete键 = 剪切当我们选中简历表格里的一段文字后,按住Shift并按动Delete键就相当于执行了剪切命令,所
- Excel表格数据很少但是文件却很大该怎么缩小?excel文件中的数据并不多,却占用了很大的空间,这是不合理的,该怎么办呢?下面分享处理数据
- 1、我们打开wps,然后使用wps文字打开文档,在文件上方栏的菜单栏中找到“审阅”,在“审阅”下面我们可以找到简繁转换按键。
- 苹果的无损音频被编码为苹果无损音频编解码文件,无损质量从 16 位 44.1kHz 到 24 位 48kHz,Hi-Res Lossless
- Word怎么添加段落边框?当我们在使用Word编辑文档的过程中,有时候会遇到一些特殊情况,需要为特定段落加上漂亮的边框,那么应该如何操作呢?
- 在Excel中我们可以设置超链接,当我们需要跳转到想查看的地方,只需要点击设置的超链接即可,一起来了解一下吧为了方便我们查看Excel不同地
- 利用VBA将数据区域不定的多个工作表数据快速合并到一个工作表方法。有需要的朋友可以跟着教程一起来学习!方法/步骤分别有工作表1、2、3数据区