频率统计之王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)&""

希望这篇文章能帮到你!记不全可以分享到朋友圈自己备份。

今天就先到这里吧,希望这篇文章能帮到你!更多干货文章加下方小助手查看。

(0)

相关推荐