带大家了解 Excel 中 Frequency 函数在最大连胜场数的应用
- 秋叶Excel
2022-12-05 22:53
原文标题:《千万别学 Frequency 函数,一学你就停不下来……》
大家好,我是小爽~
前面的文章我们介绍过 Frequency 函数的基础语法,里面利用了数据轴的方式进行解析~
Frequency 函数的基础语法:
=FREQUENCY(Data_array,Bins_array)
=FREQUENCY (统计的区域,分段点)
在我百般追着赵老师继续写 Frequency 函数的延伸做法的「高压」之下,今天他终于「熬」出来了!!
所以现在我们来学习一下 Frequency 函数的延伸应用之一 —— 最大连胜场数。
什么意思呢?我们来看几个实际生活工作中的案例。
一群学生在排队,连续排在一起的相同性别的学生,最多不能超过 N 个人,不然就要重新调整位置;
在考核中,如果员工连续出现 N 次客户投诉,就需要对该员工进行警告;
在比赛场上,有时候需要看最大连胜场数,用来判断成员的发挥情况。
……
这不,最近我跟赵老师来了一个比赛 —— 丢硬币!!
(总共十场,丢到字面我赢,丢到花面赵老师赢。)
我对自己的胜负结果,用 Excel 做了一下记录,结果如下:
现在我们需要计算出最大连胜场数是多少。
如果是你,你会怎么做?
思考中……
思考中……
思考中……
从表中,我们观察到:各个连续的胜,被「败」分隔成了一块一块的。
其实就是以「败」出现的位置作为分段点,计算各点之间有多少个「胜」的问题。
Frequency,是一个可以忽略逻辑值和文本,只针对数值进行分段统计的函数。
因此,我们需要按照场次顺序,编一组有序数值,如 G 列;
再将胜与败的序号分两列展示,如 I 列和 J 列;
在 I3 单元格输入公式,下拉填充:
=IF(C3="胜",G3)
在 J3 单元格输入公式,下拉填充:
=IF(C3="败",G3)
通过观察,我们可以发现,要想计算出每一段胜的连续个数,我们只需要统计:
2 之前有几个数,4~9 之间有几个数,9 之后有几个数。
这样我们就进入了 Frequency 函数,对数值进行分段统计个数的模式:
以「胜」对应的序号作为统计的数据点,「败」的序号作为分段点,Frequency 函数就可以帮我们数个数啦!
=FREQUENCY (胜的序值,败的序值)
公式返回的一组数值就是各自区间连胜的场数,其中的最大值便是最大连胜场数。
按照前面的思路拆解,现在我们就来看看用 Frequency 函数,怎么解决这个最大连胜次数的问题。
在 E3 单元格输入公式:
=MAX(FREQUENCY(IF(C3:C12="胜",ROW(1:10)),IF(C3:C12="败",ROW(1:10))))
按【CTRL+SHIFT+ENTER】进行数组运算,得到结果如下图:
一顿操作猛如虎,且看我下方慢慢解析~
公式如下:
=MAX(FREQUENCY(IF(C3:C12="胜",ROW(1:10)),IF(C3:C12="败",ROW(1:10))))
其中:
IF(C3:C12="胜",ROW(1:10))
—— 表示返回胜对应的行序,作为统计区域;
IF(C3:C12="败",ROW(1:10))
—— 表示返回败对应的行序,作为分段点值;
接下来就是用 Frequency 函数求出各区间数值的个数,结果返回数组 {1;0;0;4;1},也就是是各个连胜区间对应的个数。
最后再用 MAX 函数求出最大值,就是最大连胜场数了。
小小拓展一下,公式还可以简化为:
=MAX(FREQUENCY(ROW(1:11),IF(C3:C12<>"胜",ROW(1:10))))-1
为什么可以这么简化呢?
其实这个公式的原理,跟前面的思路是差不多的。
具体思路的拆解,就留给大家后面自己思考了。
本文介绍了 Frequency 函数在最大连胜场数的应用:
❶ Frequency 函数的语法规则:=Frequency(统计的区域,分段点)。
❷ 最大连胜场数的思路解析:当我们遇到类似关于统计连续出现最大次数的问题,可以构造一组有序数值,进入 Frequency 函数模式来解决。
❸ 公式原理:分段点就是败的序号,统计区域是胜的序号。
说好的 Frequency 函数基础语法相关文章,戳这里:
如果你工作中经常用到 Excel,偶尔还会为 Excel 熬夜加班,看教程觉得自己都会了,实操起来还是两眼一抹黑……
这个时候就需要系统地学习 Excel 啦!
本文来自微信公众号:秋叶 Excel (ID:excel100),作者:赵骄阳 & 小爽,编辑:竺兰
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。