频率统计之王FREQUENCY,会用这个Excel函数的,都是高手!
个人微信号 | (ID:ExcelLiRui520)
微信公众号 | Excel函数与公式(ID:ExcelLiRui)
本文关键字:frequency
频率统计之王FREQUENCY
会用这个Excel函数的,都是高手!
工作中涉及到条件分段统计、数据分布统计和数值数据重复次数统计的问题,都可以借助一个函数轻松搞定,他就是FREQUENCY。
很多同学可能是头一次听说这个函数,但要想晋升到Excel中级水平,FREQUENCY是必会函数之一,至于为什么这么说,看完本篇教程你就懂了。全文4000字,看不完可以先分享到朋友圈给自己备查。
函数语法解析及基础用法
FREQUENCY函数计算数值在某个区域内的出现频率,然后返回一个垂直数组,其基本语法为:
FREQUENCY(data_array,bins_array)
data_array:必需。要对其频率进行计数的一组数值或对这组数值的引用。如果data_array中不包含任何数值,则FREQUENCY返回一个零数组。
bins_array:必需。要将data_array中的值插入到的间隔数组或对间隔的引用。如果bins_array中不包含任何数值,则FREQUENCY返回data_array中的元素个数。
FREQUENCY函数将data_array中的数值以bins_array为间隔进行分组,计算数值在各个区域出现的频率。
FREQUENCY函数的data_array可以升序排列,也可以乱序排列。无论bins_array中的数值升序还是乱序排列,统计时都会按照间隔点的数值升序排列,对各区间的数值个数进行统计,并且按照原本bins_array中间隔点的顺序返回对应的统计结果,即按n个间隔点划分为n+1个区间。
对于每一个间隔点,统计小于等于此间隔点且大于上一个间隔点的数值个数。结果生成了n+1个统计值,多出的元素表示大于最高间隔点的数值个数。
对于data_array和bins_array相同时,FREQUENCY函数只对data_array中首次出现的数字返回其统计频率,其后重复出现的数字返回的统计频率都为0。
说明:
(1)FREQUENCY函数将忽略空白单元格和文本。
(2)对于返回结果为数组的公式,必须以数组公式的形式输入。
(3)返回的数组中的元素比bins_array中的元素多一个。返回的数组中的额外元素返回最高的间隔以上的任何值的计数。
例如,在对输入到三个单元格中的三个值范围(间隔)进行计数时,确保将FREQUENCY函数输入到结果的四个单元格。额外的单元格将返回data_array中大于第三个间隔值的值的数量。
如下图所示,需要将A2:A12单元格区域中的数据按C2:C4单元格区域的区间分割点分割,并统计每个区间的数据个数。
选定D2:D5单元格区域,输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
{=FREQUENCY(A2:A12,C2:C4)}
FREQUENCY函数按{1;5;7}进行区间分割,结果为{1;4;2;4},分别表示:
小于等于1的数据个数为1;大于1且小于等于5的数据个数为4;大于5且小于等于7的数据个数为2;大于7的数据个数为4。
按条件统计给定区间内的数据个数
FREQUENCY函数不但可以对数据进行多段区间的个数统计,配合其它函数还可以实现意想不到的效果,比如下面这个例子:
左侧的A列成绩是数据源区域,要在其中统计同时满足大于70且小于等于80的成绩个数。
在D2单元格输入以下公式。
=INDEX(FREQUENCY(A2:A12,{70,80}),2)
分段计数统计
常规的FREQUENCY函数分段统计,是按照左开右闭区间统计,如果需要按照左闭右开区间统计,应该如何实现呢?
下图展示的是某班级的学生成绩表,需要按区间分割点统计对应区间内的数据个数。
选定E2:E6单元格区域,输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
=FREQUENCY(B2:B8,{60,80}-0.1)
同级最大连续次数
FREQUENCY函数不但可以分段统计和根据给定区间统计,还可以统计最大连续次数,比如求冠军榜最高蝉联次数。
下图展示的是某企业销售冠军团队的月登记表,记录了每个月荣获冠军的团队名称,现在需要统计同一团队连续夺冠的最多次数。
在D2单元格输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
=MAX(FREQUENCY(ROW(2:8),IF(B2:B8<>B3:B9,ROW(2:8))))
统计文本分布频率
FREQUENCY函数不但可以搞定数值数据的分段统计,而且可以处理简单的字符统计。
下图展示的是联欢晚会上用的气球拱桥的颜色排列,现在需要统计每种颜色的气球个数。
选定E2:E4单元格区域,输入数组公式,按<Ctrl+Shift+Enter>组合键。
=FREQUENCY(CODE(B2:B8),CODE(D2:D4))
计算不重复值的个数
根据FREQUENCY函数对重复数值只在首次出现时统计个数,其余分段点返回0的特点,可以完成很多与不重复值有关的计算。
下图所示,左侧是数据源区域,需要统计B列不重复得分的个数。
D2单元格输入以下公式。
=COUNT(0/FREQUENCY(B2:B6,B2:B6))
统计字符串内不重复字符数
如下图所示,需要统计A列字符串内不重复字符数。
1、区分大小写统计字符串内不重复字符
在B2单元格输入以下公式。
=COUNT(0/FREQUENCY(FIND(MID(A2,ROW($1:$99),1),A2),ROW($1:$99)))
2、不区分大小写统计字符串内不重复字符
在C2单元格输入以下公式。
=COUNT(0/FREQUENCY(SEARCH(MID(A2,ROW($1:$99),1),A2),ROW($1:$99)))
按重复次数生成数据
如下图所示,需要在E列按B列指定的重复次数生成A列数据的列表。
提供两种解法,并分别解析公式原理。
在E2单元格输入以下数组公式,按<Ctrl+Shift+Enter>结束输入,将公式向下复制到D11单元格。
=INDEX(A:A,1+MATCH(1,FREQUENCY(ROW(A1),SUBTOTAL(9,OFFSET(B$2,,,ROW($1:$4)))),))&""
再多提供一种解法。这种解法是普通公式,直接按Enter输入即可。
=LOOKUP(1,0/FREQUENCY(ROW(A1),SUMIF(OFFSET(B$1,,,ROW($1:$9)),">0")),A:A)&""
提取不重复的前3名成绩
下图展示的是某班级的考试成绩表,现在需要统计前3个不重复的名次对应的成绩。如成绩表中最高分98有两个学生并列,但只占用一个名次。
在E2单元格输入以下公式,将公式向下复制到E4单元格。
=LARGE(IF(FREQUENCY(B$2:B$7,B$2:B$7),B$2:B$7),ROW(A1))
查找最接近目标值的数
某企业组织员工竞猜销售额,对猜的最准的给予奖励,如下图所示,左侧是数据源区域,右侧的黄色单元格位置要使用公式智能判断猜的最准的员工姓名。
在D2单元格输入以下公式。
=LOOKUP(1,0/FREQUENCY(0,(B2:B8-E2)^2),A2:A8)
按条件提取不重复值
结合下面这个具体案例,介绍根据条件提取不重复值列表的方法。
表格左侧是数据源,右侧的黄色区域需要写公式来提取不重复值,而且要根据D2选择类别而自动更新结果。
在E2单元格输入以下公式,并向下填充。
=LOOKUP(1,0/FREQUENCY(1,ISNA(MATCH($B$1:$B$11,E$1:E1,))*($A$1:$A$11=D$2)),B:B)&""
希望这篇文章能帮到你!记不全可以分享到朋友圈自己备份。
今天就先到这里吧,希望这篇文章能帮到你!更多干货文章加下方小助手查看。