文章目录
-
- 如下图所示,左侧是学员信息表,要统计这些学员在各年龄段人数,分三个年龄段来统计人数“18-26”、“27-35”、“36以上”,这三个年龄段的分界点是26和35。 只需在目标单元格中输入公式: =FREQUENCY(B2:B8,F2:F3) 然后点击回车即可 解读: FREQUENCY函数的第1参数是B2:B8单元格区域是学员年龄数据;第2参数是F2:F3单元格区域是年龄段的分界点26和35,函数会统计年龄数据中小于等于当前分界点,同时大于上一分界点的数量。 当然如果想统计男性学员在每个年龄段的人数,只需修改公式为: =FREQUENCY(IF(C2:C8="男",B2:B8,""),F2:F3) 上面公式利用IF函数想判断是否为男性,如果成立返回对应的年龄,否则返回空值。
- 如下图所示,表格中是员工10.1假期加班情况,需要统计每个员工连续加班到岗最大天数。 只需在目标单元格中输入公式: =MAX(FREQUENCY(IF(B2:I2="√",COLUMN(B:I)),IF(B2:I2<>"√",COLUMN(B:I)))) 然后点击回车即可 解读: ①IF(B2:I2="√",COLUMN(B:I))部分使用IF函数判断B2:I2单元格区域中是否是"√",如果是说明加班到岗,公式返回相应单元格的列号,否则返回逻辑值FALSE。 结果返回一个内存数组:{2,3,4,FALSE,FALSE,7,FALSE,FALSE} ②IF(B2:I2<>"√",COLUMN(B:I))部分的计算规则与上一个IF函数相反,在B2:I2单元格区域中不是"√"(没有加班))时返回对应的列号,否则(加班到岗)返回逻辑值FALSE。 结果返回一个内存数组:{FALSE,FALSE,FALSE,5,6,FALSE,8,9} ③然后借助FREQUENCY函数忽略参数中逻辑值的特点,以不加班对应的列号{5,6,8,9}为分组间隔值,统计加班到岗对应的列号{2,3,4,7}在各个分组中的数量,相当于分别统计在两个不加班列号之间有多少个加班的列号。 结果返回一个垂直内存数组:{3;0;1;0;0} ④最后使用MAX函数从中提取出最大值,就是连续加班到岗最大天数。 通用公式: 当然,如果觉得上面公式计算逻辑过程不容易理解,可以记住按条件统计频率个数的通用公式,到时直接套用即可: =FREQUENCY(IF(符合条件,相应列号),IF(不符合条件,相应列号))
今天跟大家分享的是Excel中的隐藏宝藏函数FREQUENCY,简直就是数据分段统计神器!只需几步,轻轻松松搞定数据分组,效率提升不是一星半点,同事都惊呆了!

微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新
- 类型:办公软件
- 大小:2.2GB
- 语言:简体中文
- 时间:2024-09-12
查看详情
FREQUENCY函数介绍:
- 功能:FREQUENCY函数主要是计算值在某个范围内出现的频率, 然后返回一个垂直的数字数组。
- 语法:FREQUENCY(一组数值,一组间隔值)
Frequency函数的作用与参数
Frequency函数:计算数字出现的频率,然后以一列垂直数组返回结果。
语法:=FREQUENCY(data_array, bins_array)
第一参数:data_array,需要计算频率的数据区域第二参数:bins_array,计算频率的间隔点以上就是这个函数的作用与参数,相信很多粉丝看到这里都是云里雾里的,不要担心,我通过一个例子,来具体分析下这个函数
如下图所示,左侧是学员信息表,要统计这些学员在各年龄段人数,分三个年龄段来统计人数“18-26”、“27-35”、“36以上”,这三个年龄段的分界点是26和35。

只需在目标单元格中输入公式:
=FREQUENCY(B2:B8,F2:F3)
然后点击回车即可

解读:

FREQUENCY函数的第1参数是B2:B8单元格区域是学员年龄数据;第2参数是F2:F3单元格区域是年龄段的分界点26和35,函数会统计年龄数据中小于等于当前分界点,同时大于上一分界点的数量。
当然如果想统计男性学员在每个年龄段的人数,只需修改公式为:
=FREQUENCY(IF(C2:C8="男",B2:B8,""),F2:F3)
上面公式利用IF函数想判断是否为男性,如果成立返回对应的年龄,否则返回空值。

如下图所示,表格中是员工10.1假期加班情况,需要统计每个员工连续加班到岗最大天数。

只需在目标单元格中输入公式:
=MAX(FREQUENCY(IF(B2:I2="√",COLUMN(B:I)),IF(B2:I2<>"√",COLUMN(B:I))))
然后点击回车即可

解读:
- ①IF(B2:I2="√",COLUMN(B:I))部分使用IF函数判断B2:I2单元格区域中是否是"√",如果是说明加班到岗,公式返回相应单元格的列号,否则返回逻辑值FALSE。
- 结果返回一个内存数组:{2,3,4,FALSE,FALSE,7,FALSE,FALSE}
- ②IF(B2:I2<>"√",COLUMN(B:I))部分的计算规则与上一个IF函数相反,在B2:I2单元格区域中不是"√"(没有加班))时返回对应的列号,否则(加班到岗)返回逻辑值FALSE。
- 结果返回一个内存数组:{FALSE,FALSE,FALSE,5,6,FALSE,8,9}
- ③然后借助FREQUENCY函数忽略参数中逻辑值的特点,以不加班对应的列号{5,6,8,9}为分组间隔值,统计加班到岗对应的列号{2,3,4,7}在各个分组中的数量,相当于分别统计在两个不加班列号之间有多少个加班的列号。
- 结果返回一个垂直内存数组:{3;0;1;0;0}
- ④最后使用MAX函数从中提取出最大值,就是连续加班到岗最大天数。
通用公式:
当然,如果觉得上面公式计算逻辑过程不容易理解,可以记住按条件统计频率个数的通用公式,到时直接套用即可:
=FREQUENCY(IF(符合条件,相应列号),IF(不符合条件,相应列号))
我们可以使用COUNTIF来处理,也可以使用FREQUENCY!

这里主要利用我们前面说过的一个点,FREQUENCY只会在第一次出现的间隔值上统计次数,第二次0,0/0会报错,我们统计一下最后有几个数值就是想要的结果

我们拆解看一下过程,方便大家理解!
第一次出现19,计数是2,第二次出现是0,最后一个大于20,没有对应的内容,结果是0,这样用0除以这组数,就可以得到不报错的个数或者或还是数值的个数就是不重复个数!

上一页12 下一页 阅读全文