千万别学Frequency函数,一学你就停不下来……

Frequency 函数的基础语法:
=FREQUENCY(Data_array,Bins_array)=FREQUENCY(统计的区域,分段点)
在我们百般追着秋叶 Excel 赵老师继续写 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 函数模式来解决。
❸ 公式原理:分段点就是败的序号,统计区域是胜的序号。
💪
如果你工作中经常用到 Excel,偶尔还会为 Excel 熬夜加班,看教程觉得自己都会了,实操起来还是两眼一抹黑……
这个时候就需要系统地学习 Excel 啦!
编辑推荐你加入秋叶 Excel 3 天集训营~
在秋叶 Excel 集训营,每天学习大概 30 分钟,从日常的功能出发,全程演示,一课一练,夯实进阶每一步。
秋叶 Excel 3 天集训营
原价 99 元
现在 只需 1 元
每天学习 30 分钟
你也有可能成为 Excel 高手!
现在就扫码报名吧!
👇👇👇
