FREQUENCY函数的使用

FREQUENCY函数的使用

语法:Excel https://www.360docs.net/doc/da6737374.html, FREQUENCY(数据源,分段点)

结果:

以分段点为间隔,统计数据源值在各段出现的频数https://www.360docs.net/doc/da6737374.html,/d 其中:

数据源:为对一行/一列单元格或一个连续的单元格区域的引用

分段点:为对一行/一列单元格或一个连续的单元格区域的引用

数据引用支持跨工作表、工作簿

公式输入方法:

以多单元格数组方式输入,且必须是纵向数组;

所选单元格数比分段点个数大1,以统计数据源大于分段点最大值的频数

一、常规用法

数据源分段点函数的常规用法是进行频率统计,

78602>=60示例:统计数据源区各分数在分段点各段的频数。

80806<=80,>60要统计数据源在分段点出现的频率,选择C16:C19,输入数组67900<=90,>80同时按下ctrl+shift+enter结束

982>90每段计算小于等于此分段点、大于上一分段点的频数;

60

6959.9不及格1假设小于60为不及格;大于等于60小于80为及格;

8079.9及格5大于等于80小于90为良;大于等于90为优,

9589.9良2必须对分段点进行修正才能得到正确的统计数

77优2

56

二、函数特性

1·忽略文本或空白单元格

数据源区域出现文本或空格,只统计数据,其他没有影响

89缺考8960160

5665803良779090480

8877981

分段点出现文本或空格,忽略文本或空格,只对数值进行分段频率统计,及格

所需结果区域也相应减少,多余区域由#N/A填充:90 2·支持数据乱序

支持数据源的乱序,这一点不需说明803

分段点的乱序:904

对于每一分段点,统计小于等于此分段点,601

大于上一分段点的频数,1

最后一格始终统计大于最大分段点的频数:803

3·支持重复数据601

支持数据源的数据重复,这一点勿需说明800

对于分段点出现重复数据:904

只在分段点首次出现时统计频数,600

重复出现的分段点的统计数都为0:1

从下文可以看到,正是有了这点特性使得此函数有许多“妙用”

4·支持“块”区域引用

数据源是一个连续的区域的情况前面已经用过;806080分段点是一个“块”区域,情况怎样呢?

9060

可以看出公式区域按照先行后列的顺序统计频数,

文本/空格、乱序、重复数据的规律同样有效:三、函数应用1·函数特性3的应用match A·用于统计不重复值个数12aa

①如何统计左边数据区域内的不重复值?22ab

大家一定会想到这个公式:633bc

但也可以用frequency来解决,步骤如下:41bb

1.用match函数返回各数据在数据列中的位置20ab

对于查找目标,match函数都返回数列中首次出现的位置61ac

2.对于以上结果,用frequency特性,让重复的数字变为零10aa

可以用多种方法搭配数据源和分段点30bc

3.统计上一步结果中有多少个非零数字,即得答案91ba

统计非零数字也有不同的方法30

bc 6frequency生成的数组跟零判断大小,生成一组逻辑值,转换后用sum汇总

6对frequency生成的数组取倒数,生成一组分数和 #DIV/0! ,用count计算数字,排除错误值frequency用在这里并不显得简单,但它确有用武之地。看下面的例子:

a9i6o\p/bcad)fo(9u7 ,y65t%f54.r3df>6j2,mn#a

②如何统计上面单元格中的字符串中有多少个不重复值?

统计的对象在一个单元格中,怎么办?

用frequency来解决,思路和上面基本相同:

52用find返回各字符在字符串中第一次出现的位置,形成一列数组;

用frequency特性3,让非首次出现的字符返回的频数为零;

取倒数后用count统计数字个数。

或者用字符对应的ASC码作为frequency取数的对象:52

当然,也可以用以下方法来解决,思路类似用countif:52

B·frequency函数作为if函数的判断条件

由于frequency函数生成的值为非负整数,可用来作为if的判断条件

1

③2apolloh 2步骤:55参考:https://www.360docs.net/doc/da6737374.html,/dispbbs.asp?BoardID=3&ID=80266

ⅰ找到每个值在数列中首次出现的

frequen

ⅱ用frequency函数让空白单元格

ⅲ上一步数据作为if函数的条件,

ⅳ让上一步的位置值在数列前端返

ⅴ根据上一步的位置值返回原值;

注:为了简化公式,把数据值定义为名称

每一步都是用多单元格数组的形式生

公式不依赖数据列z的位置,如果z是

去错不彻底,最后的结果用条件格式

如果数据z是一个方形的区域怎么办?

可先用index函数转换成列数组,参看

参考:https://www.360docs.net/doc/da6737374.html,/dis

2·用于计算符合条件的最大连续/间隔值

在以下两期足彩中,每期有10场比赛,胜3平1负0:

这里巧妙利用了单元格函数所在的位置,满足/不满足条件的各返回一列数;

两列数分别作为frequency函数的数据源和分段点进行统计;

用max返回统计结果的最大值

再看下面这个例子

49545149514651

49505452505349

难点在于如何引用整个区域,但针对行的信息来统计,

好在chenjun版主早有解决办法,

再结合countif函数的三维引用,

可以用下面的公式直接得到答案:

3

注:如何计算有50出现的列的最大连续列数呢?4

FREQUENCY原来仅是一个计算频数的统计函数,我们利用它的特性,

并结合其他一些函数,发现它给我们带来了意想不到的效果。

如果大家还有此函数的其他用法,请补充。

Excel https://www.360docs.net/doc/da6737374.html,

snowpeak

2005-3-27

https://www.360docs.net/doc/da6737374.html,/dispbbs.asp?boardid=3&id=89154

择C16:C19,输入数组公式,

分段点的频数;

1

3

4

1

#N/A

#N/A

#N/A

1

4

1

#N/A

equency

2注:

2frequency函数的输入区域选择10或11,效果是一样的

3因为第11个频数肯定是零

1

0第二种方法中的row目前是数出来的,

1实际中可以用row(indirect("1:"&counta(data)))自动算出

1

计算数字,排除错误值

"'"?f/as3u9.d※&【『★▲

值在数列中首次出现的位置;

ncy函数让空白单元格和重复值返回零;

据作为if函数的条件,将非零值返回在数列中的位置;

的位置值在数列前端返回;

步的位置值返回原值;

式,把数据值定义为名称z;

用多单元格数组的形式生成;

数据列z的位置,如果z是内存数组,公式同样有效;

,最后的结果用条件格式不显示错误值;

是一个方形的区域怎么办?

ex函数转换成列数组,参看“题目三”的一种解法:

https://www.360docs.net/doc/da6737374.html,/dispbbs.asp?boardid=3&star=4&replyid=61548&id=24707&skin=0&page=1现的行号留空)

相关文档
最新文档