ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 一图带您理解FREQUENCY函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-9-23 18:38 | 显示全部楼层 |阅读模式
本帖最后由 ThxAlot 于 2021-9-23 19:33 编辑

FREQUENCY(data_array,bins_array)函数 (题外话,输入函数的时候,试试ALT+SHIFT+A有惊喜)她的强大毋庸置疑,对数据的分组+统计一步到位,在各种去重、排序、统计等花式应用中都有她的身影!如此妖娆,您绝对值得拥有!在此不免顺带吐槽一句,强大如PowerQuey/PowerPivot的函数库里竟然没有FREQUENCY的一席之地?!
若要抱得美人归,摸清她的脾气当然是第一步,我们从最基础的例子开始
  1. FREQUENCY({20,31,42,70,85}, {10,40,50,80})
复制代码
前戏:
同样是对FREQUENCY最基础的了解:
函数将返回一个数组,这个数组元素的总数是“二参的元素个数+1”,据此,可以先勾勒出结果的轮廓:
{(一); (二); (三); (四); (五)}
为了后续表述方便,我们用上(一)、(二)等占位符。

然后,我们上图来个看图说话
image.png


步骤一:
我们把二参{10,40,50,80}做这样的转换:
10是第1个值,40是第2个值。。。然后在坐标系的x/y轴上连线标记出来,这样,用来分组的“节点”就准备好了;

步骤二:
我们再把一参{20,31,42,70,85}数组里的值逐个标记在y轴右侧上;

步骤三:
(台下的朋友们,举起你们的一个手指,跟我一起来做)
从y轴右侧的最下面开始,先看看20,沿着y轴一路向北(伴唱:我遇见谁,会有怎样的对白;我等的人,他在多远的未来。。。),遇到最近的节点40;然后顺着我们在步骤一的连线拐弯,来到x轴的2,于是我们把40计入已经准备好的{(一); (二); (三); (四); (五)}中,这一轮后,我们有了这样的结果:{(一); (20); (三); (四); (五)}
对31做同样的操作,发现还是会来到x轴的2处,那么在{(一); (二); (三); (四); (五)}的(二)里又增加一个:{(一); (20/31); (三); (四); (五)}
...
重复重复再重复,最后只有85遇不上节点,那么就把把这个无法无天的装在(五)中,这样分装的结果将会是:
{(); (20/31); (42); (70); (85)}
简单的数数个每个隔档里数字的个数,是不是就是{0; 2; 1; 1; 1}。


明白了最基础的情况,我们对一参、二参里数字的个数和顺序分别做变换研究看看。
(此处省略文字若干)


  1. FREQUENCY({20,31,42,70,85}, {80,10,50,40})
复制代码


依然看图说话
image.png
同样的方法,我们让一参数组的各个数各就各位,就会变成{(70); (); (42); (20/31); (85)},最终结果也就是{1; 0; 1; 2; 1}了。

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-13 06:41 , Processed in 0.041833 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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