ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 85347|回复: 118

[原创] 解读FREQUENCY函数

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-5 21:45 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:FREQUENCY
函数学习资料之——解读FREQUENCY函数
【声明】原创文章,非允勿转

FREQUENCY(data_array,bins_array)

一个只有2个参数的貌似简单的统计函数,经过高手们的运用,在解决不重复问题连续问题方面发挥出了奇妙的作用。

【帮助文件】解读

1、概述:计算数值在某个区域内的出现频率,然后返回一个垂直数组。例如,使用函数 FREQUENCY 可以在分数区域内计算测验分数的个数。由于函数 FREQUENCY 返回一个数组,所以它必须以数组公式的形式输入注意:返回的是一个垂直数组,必须以多单元格数组公式的形式输入。参考:多单元格数组公式是如何输入的?

2、语法
FREQUENCY(data_array,bins_array)
Data_array   是一个数组或对一组数值的引用,您要为它计算频率。如果 data_array 中不包含任何数值,函数 FREQUENCY 将返回一个零数组。
Bins_array   是一个区间数组或对区间的引用,该区间用于对 data_array 中的数值进行分组。如果 bins_array 中不包含任何数值,函数 FREQUENCY 返回的值与 data_array 中的元素个数相等。

说明

  • 在选择了用于显示返回的分布结果的相邻单元格区域后,函数 FREQUENCY 应以数组公式的形式输入。 也就是多单元格数组公式
  • 返回的数组中的元素个数比 bins_array 中的元素个数多 1 个。多出来的元素表示最高区间之上的数值个数。例如,如果要为三个单元格中输入的三个数值区间计数,请务必在四个单元格中输入 FREQUENCY 函数获得计算结果。多出来的单元格将返回 data_array 中第三个区间值以上的数值个数。 这一点非常重要,经常有些人忘了这一点导致数组尺寸不匹配产生#N/A错误。
  • 函数 FREQUENCY 将忽略空白单元格和文本。
  • 对于返回结果为数组的公式,必须以数组公式的形式输入。


[ 本帖最后由 gouweicao78 于 2009-12-22 14:41 编辑 ]

补充内容 (2017-10-29 08:54):
在ExcelHome技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html

解读FREQUENCY函数.rar

27.1 KB, 下载次数: 4244

评分

7

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-5 21:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

应用示例

应用示例1:求分布频率。

如图:A2:A8存放成绩,C2:C5存放分段的间隔(注意成绩以整数为例,如果有0.5分,可以将69等改为69.9等。
解法:选择D2:D6(注意:比C2:C5多一个元素,垂直数组,不能选择横向的单元格哦),输入=FREQUENCY(A2:A8,C2:C5)并按下CTRL+SHIFT+ENTER结束,形成多单元格数组公式。
FREQUENCY统计分布频率.jpg
这个是FREQUENCY函数的基本用法。实质上,FREQUENCY函数返回的是一个内存数组,可以用于下一步运算。

应用示例2:统计不重复之一
如图:A2:A15包含空单元格、文本和有重复的数值,要统计共有多少个不重复的数值。
普通公式:=COUNT(1/FREQUENCY(A2:A15,A2:A15))
1、为什么是普通公式,而无须按三键形成数组公式?
猜测:设计FREQUENCY函数本身返回的就是数组,也就是相当于给COUNT(1/{Frequency})一个类似于常量数组的待遇。

2、FREQUENCY(A2:A15,A2:A15)的运算解析过程
FREQUENCY计算不重复的解析过程.jpg

由此可见:FREQUENCY(data,data)——第1、2参数相同时:
1、第一次出现的数值,将返回其个数,第2次出现就返回0;
2、忽略空单元格和文本(直接跳过统计)

因此,1/Frequency,分母为0将返回#DIV/0!错误,再利用COUNT函数忽略错误值,统计不重复数值个数。

应用示例3:统计不重复之二
A2:A15都是数字{1;1;5;1;1;6;9;8;4;9;8;1;8;3},没有空单元格格和文本。求第3大的数(2个9算1次,3个8算1次,因此不重复的第3大值是6)
公式1:

  1. =LARGE(IF(FREQUENCY(A2:A15,A2:A15),A2:A15),3)
复制代码
公式2:
  1. {=LARGE((FREQUENCY(A2:A15,A2:A15)>0)*A2:A16,3)}
复制代码
通过应用示例2的分析,可以理解,因为A2:A15没有需要忽略的东西,因此返回的数组保持了与A2:A15一一对应的关系(即第1次数值出现的位置,返回个数,第2次出现及以后都返回0),并且多一个元素。
对比两个公式,区别:
一是IF对Frequency函数多出的那一行元素并不感冒,公式1的IF用A2:A15或A2:A16都可以(前提,A16是空单元格);而且在IF函数中,Frequency仍然享受了无需按三键形成数组公式的待遇;
二是作为数组相乘(Frequency>0)*A2:A16,要求元素个数一致,因此要记得A16也算进去。当然,公式2的A16位置返回的是0,如果A列有负数,或LARGE改SMALL,则统计会有问题。
FREQUENCY计算不重复之二.jpg

应用示例3:统计“连续”问题
如图:统计A2:A15中连续出现最多的次数
FREQUENCY统计连续问题.jpg
公式:
  1. =MAX(FREQUENCY(IF(A2:A14=A3:A15,ROW(2:14)),IF(A2:A14<>A3:A15,ROW(2:14))))+1
复制代码
利用IF函数,将上下行内容相同(也就是连续出现)的记录,返回为上行的行号(数值,FREQUENCY只玩数值)以及FALSE
利用IF函数,将上下行内容不同(也就是间隔的内容)的记录,返回为上行的行号以及FALSE

再利用frequency对两组行号和FALSE组成的数值进行统计,忽略FALSE,只计算:
FREQUENCY(满足条件的行号,不满足条件的行号)
得到满足条件的行号的分布频率,也就是连续出现次数-1

最后再用MAX(FREQUENCY)+1返回结果。

[ 本帖最后由 gouweicao78 于 2009-12-22 14:39 编辑 ]

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-8-5 21:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

坐版主的沙发
真不容易

谢谢

TA的精华主题

TA的得分主题

发表于 2009-8-5 21:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
表示强烈……
的支持

TA的精华主题

TA的得分主题

发表于 2009-8-5 21:56 | 显示全部楼层
原帖由 biaotiger1 于 2009-8-5 21:55 发表

坐版主的沙发
真不容易

谢谢

你做的板凳了 沙发人家自己占着呢

TA的精华主题

TA的得分主题

发表于 2009-8-5 21:56 | 显示全部楼层
刚刚发现文件是07版的,正在遗憾中,,,发现后面有配图
兴奋中。。。。

TA的精华主题

TA的得分主题

发表于 2009-8-5 22:00 | 显示全部楼层
{=LARGE((FREQUENCY(A2:A15,A2:A15)>0)*A2:A16,3)}
求第N大的值公式又缩短了

TA的精华主题

TA的得分主题

发表于 2009-8-5 22:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
占位学习,先下载收藏了

TA的精华主题

TA的得分主题

发表于 2009-8-5 22:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我想知道FREQUENCY的第二参数是乱序的时候它的分段点是怎么定的?
例   =FREQUENCY({1,2,4,6,7,8,9},{2,6,3,7,1})

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-5 22:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 9楼 syz105729913 的帖子

乱序的用法,除了类似COUNT(1/FREQUENCY(A1:C10,A1:C10))统计不重复个数外,还比较少用。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-28 23:17 , Processed in 0.050320 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表