函数名称:
FREQUENCY
2
函数作用
FREQUENCY函数用于计算数值在某个区域内的出现频率,然后返回一个垂直数组。
3
函数语法
FREQUENCY(计算数据区域, 分布区间)
4
注意事项
1、该函数有且只有两个必选参数;
2、第1参数表示一个值数组或对一组数值的引用,我们要为它计算频率;
3、第2参数表示一个区间数组或对区间的引用,该区间用于对第1参数中的数值进行分组;
4、如果第2参数中不包含任何数值,函数FREQUENCY返回的值与第1参数中的元素个数相等;
5、函数FREQUENCY将忽略空白单元格、逻辑值和文本;
6、返回的数组中的元素个数比第2参数中的元素个数多1个,多出来的元素表示最高区间之上的数值个数;
7、对于返回结果为数组的公式,必须以数组公式的形式输入。
应用实例
实例1
下表为某公司业务员销量信息表,要求计算销量小于等于100,销量大于100小于等于300,销量大于300小于等于600,以及销量大于600的人数分别有多少,如E列所示。
函数公式
选中E2:E5单元格区域,输入公式=FREQUENCY(B2:B11,D2:D4),数组公式CTRL SHIFT 回车键三键结束
解释说明
1、按区域计算频率分布是FREQUENCY的拿手好戏;
2、其中第1参数要计算的数据区域,也就是B2:B11单元格区域;
3、第2参数为要计算的区间划分,这里的区间是D2:D4,至于为什么不是D2:D5,请看语法注意事项第6点,我们要返回的是4个结果的值,所以参数只要3个单元格划分区间即可;
4、FREQUENCY函数对于分段区间的计算规则是含尾不含头,例如区间100-300就是大于100小于等于300。
实例2
根据下表A列数据计算不重复数值个数,效果如C2单元格所示。
函数公式
C2单元格输入 =SUM(N(FREQUENCY(A2:A11,A2:A11)>0)),数组公式CTRL SHIFT 回车键三键结束
解释说明
1、分别以每一个数值作为区间的一个分段点计算分布频率FREQUENCY(A2:A11,A2:A11);
2、根据FREQUENCY函数的区间含尾不含头的计算规则我们可以发现当出现重复值的时候FREQUENCY的结果为0;
3、所以我们用IF判断FREQUENCY的结果是否大于0,如果是就是不重复的,否则就是重复的,然后用N函数将TRUE转换为1,FALSE转换为0然后相加。
实例3
下表为某公司部分业务员姓名,要求将不重复姓名提取出来,如C列所示。
函数公式
C2单元格输入 =IFERROR(INDEX(A:A,SMALL(IF(FREQUENCY(MATCH($A$2:$A$11,$A$2:$A$11,0),MATCH($A$2:$A$11,$A$2:$A$11,0))>0,ROW($2:$11)),ROW(A1))),''),数组公式CTRL SHIFT 回车键三键结束,公式下拉即可
解释说明
1、首先用MATCH函数计算出每一个姓名在A2:A11单元格区域中的位置MATCH($A$2:$A$11,$A$2:$A$11,0);
2、然后用FREQUENCY函数分别统计每一个区间在MATCH($A$2:$A$11,$A$2:$A$11,0)中的频率分布,大于0则为第1次出现的,等于0则为重复出现的;
3、接着就是我们最常用的组合IF SMALL INDEX IFERROR组合使用。
实例4
下表为某班部分学生的测试成绩,要求对这些分数进行中国式排名,效果如C列所示。
函数公式
C2单元格输入 =SUM(N(FREQUENCY(IF($B$2:$B$11>B2,$B$2:$B$11),$B$2:$B$11)>0)) 1,数组公式CTRL SHIFT 回车键三键结束,公式下拉即可
解释说明
1、首先用IF函数判断B2:B11单元格区域的每个值是否大于当前判断的单元格,如果是就返回单元格内容,否则返回FALSE,IF($B$2:$B$11>B2,$B$2:$B$11);
2、然后用FREQUENCY函数分别统计B2:B11的每一个单元格每一个区间在IF($B$2:$B$11>B2,$B$2:$B$11)中的频率分布;
3、然后判断FREQUENCY的结果是否大于0,最后用N函数将TRUE和FALSE分别转换成1和0然后相加。
实例5
根据下表A列姓名分别计算指定姓名连续出现最多的次数,效果如D列所示。
函数公式
D2单元格输入 =MAX(FREQUENCY(IF($A$2:$A$11=C2,ROW($1:$10)),IF($A$2:$A$11=C2,,ROW($1:$10)))),数组公式CTRL SHIFT 回车键三键结束,公式下拉即可
解释说明
1、首先用IF判断把不等于当前姓名的姓名转换成1-10的序列号,等于当前姓名的变成0,作为FREQUENCY的第2参数IF($A$2:$A$11=C2,,ROW($1:$10));
2、然后用IF判断把等于当前姓名的转成1-10的序列号,不等于当前姓名的变成FALSE,作为FREQUENCY的第1参数IF($A$2:$A$11=C2,ROW($1:$10));
3、最后用MAX函数取FREQUENCY函数结果中的最大值,就是我们要计算的连续出现最多次数。
注意事项
今天是函数365系列教程结束的前一天,也是该系列教程连载的第99天,明天是最后一天,也是第100天,很高兴我能坚持写完,我们明天不见不散。祝大家端午节快乐,阖家幸福安康!
每日一歌
陈晓东《比我幸福》
请记得你要比我幸福
才值得我对自己残酷
我默默的倒数 最后再把你看清楚
看你眼里的我好模糊 慢慢被放逐
放心去追逐你的幸福
联系客服