函数公式: UNIQUE函数按次数提取唯一值

本文由 拉小登Excel 翻译
原文地址: https://exceljet.net/formula/unique-values-by-count

根据出现的次数,提取数据当中的唯一值,可以使用UNIQUE和FILTER函数来实现,同归使用COUNTIF函数设计筛选条件。
在这个案例中,D5单元格的公式如下:

=UNIQUE(FILTER(data,COUNTIF(data,data)>1))

计算结果是“data”区域(即B5:B16)中的3个唯一值。

公式解析

案例中,使用了UNIQUE和FILTER函数,点击链接,查看着两个函数的基本用法。

这个案例的技巧在于,FILTE函数在筛选数据的时候,是根据数据出现的字数筛选的。公式从内到外依次拆解,大致过程是这样的。

FILTER(data,COUNTIF(data,data)>1)

首先COUNTIF函数,计算并返回了一个数组:

{3;1;3;3;2;1;1;3;1;2;3;3}

然后用 >1 进行逻辑判断,并返回由TRUE和FALSE组成的一个数组:

{TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE}

注意,TRUE表示数据出现了1次以上。这个数组由作为FILTER的第2个参数“include”,用来筛选数据。然后FILTER函数又返回了另外一个数组:

{"red";"green";"green";"blue";"red";"blue";"red";"green"}

然后这个数组直接作为UNIQUE函数的参数,注意到没有,原本12个数据,最后只剩下了8个。

然后UNIQUE函数又删除了重复的数据,返回最后的数组。

{"red";"green";"blue"}

如果B5:B16的数据发生变化,计算的结果会同步更新。

筛选次数>2的数据

F5单元格的公式,作用是筛选出现2次以上的数据,并提出唯一值。

=UNIQUE(FILTER(data,COUNTIF(data,data)>2))

动态数据区域

因为B5:B15是一个普通的自定义名称区域,添加或者删除数据的时候,这个区域大小不能同步更新。如果希望数据区域能够自动更新,可以把数据区域转成超级表格,或者使用一个动态的自定义名称

注意:UNIQUE函数,是office预览版中,Excel新增的动态数组函数,现在还是beta版本。动态数据函数目前只对2019 和office365订阅用户开放。

联系作者

公众号:拉小登 | 微博:拉登Dony | B站:拉小登Excel

4 Replies to “函数公式: UNIQUE函数按次数提取唯一值”

  1. 牛牛牛,转行好!不过你封装的那个box2d的工具类4.0下载失效了,看看翻翻箱底还有不

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注