史上最全FREQUENCY函数应用教程
史上最全
FREQUENCY函数
应用教程及案例解析
FREQUENCY函数是一个很强大的频率统计函数,凡工作中涉及到条件分段统计、数据分布统计和数值数据重复次数统计的问题,都可以用FREQUENCY函数来解决。
为了让大家认识FREQUENCY函数那些不为人知的强大功能,本文贴合办公实际场景,整理了多种FREQUENCY函数的应用方法,除了原理和基础性讲解外,还提供了使用场景介绍,帮助读者加深理解,便于在自己的实际工作中直接借鉴和使用。
由于正文字数限制,本教程给出Excel案例和公式解法,对公式的原理解析和详细说明请点击本文底部的“阅读原文”获取。
适用对象:本文面向的读者包括所有需要用到查找引用数据的用户,无论是初入职场的应届毕生生,还是在职场拼杀多年的白领精英,都将从本文找到值得学习的内容。
软件版本:本文的写作环境是Window10家庭版操作系统上的简体中文版Excel 2013。
本文绝大多数内容也适用于Excel的早期版本(2010、2007和2003),或者英文版和繁体中文版,所以读者大不必因自用版本不同而过多担心。
本文学习要点(强烈推荐收藏本教程)
1、FREQUENCY函数语法解析及基础用法
2、FREQUENCY函数按条件统计给定区间内的数据个数
3、FREQUENCY函数分段计数统计
4、FREQUENCY函数统计最大连续次数
5、FREQUENCY函数统计文本分布频率
6、FREQUENCY函数计算不重复值的个数
7、FREQUENCY函数统计字符串内不重复字符数
8、FREQUENCY函数按重复次数生成数据
9、FREQUENCY函数提取不重复的前3名成绩
10、FREQUENCY函数查找最接近目标值的数
11、FREQUENCY函数按条件提取不重复值
01 FREQUENCY函数语法解析及基础用法
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。
02 FREQUENCY函数按条件统计给定区间内的数据个数
FREQUENCY函数不但可以对数据进行多段区间的个数统计,配合其它函数还可以实现意想不到的效果,比如下面这个例子:
左侧的A列成绩是数据源区域,要在其中统计同时满足大于70且小于等于80的成绩个数。
在D2单元格输入以下公式。
=INDEX(FREQUENCY(A2:A12,{70,80}),2)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
03 FREQUENCY函数分段计数统计
常规的FREQUENCY函数分段统计,是按照左开右闭区间统计,如果需要按照左闭右开区间统计,应该如何实现呢?
下图展示的是某班级的学生成绩表,需要按区间分割点统计对应区间内的数据个数。
选定E2:E6单元格区域,输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
=FREQUENCY(B2:B8,{60,80}-0.1)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
04 FREQUENCY函数统计最大连续次数
FREQUENCY函数不但可以分段统计和根据给定区间统计,还可以统计最大连续次数,比如求冠军榜最高蝉联次数。
下图展示的是某企业销售冠军团队的月登记表,记录了每个月荣获冠军的团队名称,现在需要统计同一团队连续夺冠的最多次数。
在D2单元格输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
=MAX(FREQUENCY(ROW(2:8),IF(B2:B8<>B3:B9,ROW(2:8))))
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
05 FREQUENCY函数统计文本分布频率
FREQUENCY函数不但可以搞定数值数据的分段统计,而且可以处理简单的字符统计。
下图展示的是联欢晚会上用的气球拱桥的颜色排列,现在需要统计每种颜色的气球个数。
选定E2:E4单元格区域,输入数组公式,按<Ctrl+Shift+Enter>组合键。
=FREQUENCY(CODE(B2:B8),CODE(D2:D4))
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
06 FREQUENCY函数计算不重复值的个数
根据FREQUENCY函数对重复数值只在首次出现时统计个数,其余分段点返回0的特点,可以完成很多与不重复值有关的计算。
下图所示,左侧是数据源区域,需要统计B列不重复得分的个数。
D2单元格输入以下公式。
=COUNT(0/FREQUENCY(B2:B6,B2:B6))
(更详细的公式原理解析和说明,请点击本文底部的“阅读原文”获取)
07 FREQUENCY函数统计字符串内不重复字符数
如下图所示,需要统计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)))
(更详细的公式原理解析和说明,请点击本文底部的“阅读原文”获取)
08 FREQUENCY函数按重复次数生成数据
如下图所示,需要在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)&""
(更详细的公式原理解析和说明,请点击本文底部的“阅读原文”获取)
09 FREQUENCY函数提取不重复的前3名成绩
下图展示的是某班级的考试成绩表,现在需要统计前3个不重复的名次对应的成绩。如成绩表中最高分98有两个学生并列,但只占用一个名次。
在E2单元格输入以下公式,将公式向下复制到E4单元格。
=LARGE(IF(FREQUENCY(B$2:B$7,B$2:B$7),B$2:B$7),ROW(A1))
(更详细的公式原理解析和说明,请点击本文底部的“阅读原文”获取)
10 FREQUENCY函数查找最接近目标值的数
某企业组织员工竞猜销售额,对猜的最准的给予奖励,如下图所示,左侧是数据源区域,右侧的黄色单元格位置要使用公式智能判断猜的最准的员工姓名。
在D2单元格输入以下公式。
=LOOKUP(1,0/FREQUENCY(0,(B2:B8-E2)^2),A2:A8)
(更详细的公式原理解析和说明,请点击本文底部的“阅读原文”获取)
11 FREQUENCY函数按条件提取不重复值
结合下面这个具体案例,介绍根据条件提取不重复值列表的方法。
表格左侧是数据源,右侧的黄色区域需要写公式来提取不重复值,而且要根据D2选择类别而自动更新结果。
在E2单元格输入以下公式,并向下填充。
=LOOKUP(1,0/FREQUENCY(1,ISNA(MATCH($B$1:$B$11,E$1:E1,))*($A$1:$A$11=D$2)),B:B)&""