Excel公式技巧89:使用FREQUENCY函数统计不同值、唯一值和连续值(下)
统计满足条件的不同值
如下图5所示,想要得到与列A中字母b相对应的列B中的不同值的数量。
图5
很显然,对应于字母b的不同值为2、aa和3,共3个。使用数组公式:
=SUM(--(FREQUENCY(IF((A4:A12=D4)*(B4:B12<>''),MATCH('~'&B4:B12,B4:B12&'',0)),ROW(B4:B12)-ROW(B4)+1)>0))
这个公式与上面所讲公式的不同点在于,添加了一个AND条件,通过在公式中添加(A4:A12=D4)*来实现。
统计满足条件的唯一值
这个示例与上例相似,只是统计与字母b相对应的唯一值的数量。
图6
很显然,与字母b相对应的行中仅2、aa和3出现1次,因此共有3个唯一值。使用数组公式:
=SUM(--(FREQUENCY(IF((A4:A12=D4)*(B4:B12<>''),MATCH('~'&B4:B12,B4:B12&'',0)),ROW(B4:B12)-ROW(B4)+1)=1))
除了将>0修改为=1外,这个公式与上例中的公式相同。因为我们仅想得到只出现1次的数值的数量。
最大出现的次数
如果想从列表中获取给定值的出现次数,那么可以使用COUNTIF函数。但是如果我们想获得出现最多的值的次数怎么办?
仅数值
如下图7所示,列表中数值1出现了4次,是出现次数最多的数值。
图7
使用公式:
=MAX(FREQUENCY(B4:B12,B4:B12))
公式解析为:
=MAX({4;3;1;0;1;0;0;0;0;0})
得到结果:
4
文本和/或数值
如下图8所示,出现次数最多的是“aa”和“3”,各出现了2次。
图8
使用数组公式:
=MAX(FREQUENCY(IF(B4:B12<>'',MATCH('~'&B4:B12,B4:B12&'',0)),ROW(B4:B12)-ROW(B4)+1))
最小出现的次数
获得最小出现次数不像获得最大出现次数那么简单,因为FREQUENCY函数对于重复值在数组中返回 0,但我们实际上想要忽略它。
仅数值
如下图9所示,数值3和7仅出现了1次,因此最小出现的次数应该是1。
图9
使用数组公式:
=MIN(IF(FREQUENCY(B4:B12,B4:B12)>0,FREQUENCY(B4:B12,B4:B12)))
公式中,通过>0来解决了FREQUENCY函数针对重复值返回0的问题。公式可以解析为:
=MIN(IF({4;3;1;0;1;0;0;0;0;0}>0,{4;3;1;0;1;0;0;0;0;0}))
进一步解析为:
=MIN({1;1;2;FALSE;1;FALSE;1;2;FALSE;FALSE})
返回结果:
1
注意,MIN函数忽略逻辑值。
文本和/或数值
如下图10所示,“1”、“2”、“e”和“b”仅出现了1次,因此出现次数最小值是1。
图10
使用数组公式:
=MIN(IF(FREQUENCY(IF(B4:B12<>'',MATCH('~'&B4:B12,B4:B12&'',0)),ROW(B4:B12)-ROW(B4)+1),FREQUENCY(IF(B4:B12<>'',MATCH('~'&B4:B12,B4:B12&'',0)),ROW(B4:B12)-ROW(B4)+1)))
公式可解析为:
=MIN(IF(FREQUENCY({1;2;3;3;5;FALSE;7;8;8},{1;2;3;4;5;6;7;8;9}),FREQUENCY({1;2;3;3;5;FALSE;7;8;8},{1;2;3;4;5;6;7;8;9})))
进一步解析为:
=MIN(IF({1;1;2;0;1;0;1;2;0;0},{1;1;2;0;1;0;1;2;0;0}))
即:
=MIN({1;1;2;FALSE;1;FALSE;1;2;FALSE;FALSE})
得到结果:
1
所给值最大连续出现的次数
如下图11所示,想要计算给定值1在列表中连续出现的最大次数。
图11
使用数组公式:
=MAX(FREQUENCY(IF(B4:B12=D4,ROW(B4:B12)),IF(B4:B12<>D4,ROW(B4:B12))))
公式可解析为:
=MAX(FREQUENCY({4;FALSE;FALSE;7;FALSE;FALSE;FALSE;11;12},{FALSE;5;6;FALSE;8;9;10;FALSE;FALSE}))
进一步解析为:
=MAX({1;0;1;0;0;2})
得到结果:
2
小结
正如上文所见,一旦必须开始处理文本值,FREQUENCY公式就会变得更加复杂且速度变慢。当使用FREQUENCY函数的公式变得冗长、复杂和计算慢时,可以考虑使用VBA自定义函数。
你有一些FREQUENCY函数应用公式可以分享吗?
注:本文学习整理自colinlegg.wordpress.com,供有兴趣的朋友学习参考。