函数公式: 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订阅用户开放。
联系作者
拉登哥已经改行了吗?
是的,已经不做写游戏教程了,改做Excel培训了,希望office不会想Flash一样,被我“做死”了,哈哈
牛牛牛,转行好!不过你封装的那个box2d的工具类4.0下载失效了,看看翻翻箱底还有不
https://github.com/ladeng6666
都在这里呢,你看看能帮到你不?