「统计函数」 FREQUENCY 函数:数据背后的秘密
创作者俱乐部成员
FREQUENCY 函数是个旧函数,从2003年的Excel 2003版本引入至今有20年的历史了,可能很多人不会用到FREQUENCY 函数甚至不知道这个函数。
有些场景用新版函数或其他解决方法需要函数套函数若干层,不小心还会弄错,或用透视表、辅助列等方法不方便后期维护。使用FREQUENCY 函数就能轻松解决问题。
截止2024年3月新函数中目前还没有能完全替代FREQUENCY的。
FREQUENCY 函数简单介绍。
在WPS公式插入对话框中只有一句话的介绍:以一列垂直数组返回某个区域中数据的分布。
FREQUENCY 函数的参数
FREQUENCY(一组数值,分组间隔值)
好吧,以上都是复制网上的介绍,开始说人话:
第一个参数【一组数值】:指定要统计的区域,可理解为指定要在哪个区域内计算,
第二个参数【分组间隔值】:制定要统计的数值、条件等。
以下用模拟场景举例展示FREQUENCY 函数的功能
场景一:公司人力、社区工作人员统计下辖人员年龄段的数量
如图所示是一个下辖人员明细表
🔔 | 要统计这些人员的年龄段数量怎么做? |
方法一,使用透视表
这可能是大部分的想法
方法二,COUNTIF计算辅助列
在原数据表旁边新建辅助列,公式如下:
随后在统计数据中使用公式得到结果
方法三,使用FREQUENCY 函数
简单设置,支持数组,可随时修改条件
公式说明:FREQUENCY 函数的第一参数是D10:D1434单元格区域的年龄数据,第二参数是G3:G7单元格区域指定的分段点,函数会统计年龄数据中小于等于当前分段点。同时大于上一分段点的数量。
统计结果用文字描述如下:
2、大于6岁同时小于等于17岁的有212人
3、大于17岁同时小于等于28岁的有243人
4、大于29岁同时小于等于40岁的有382人
5、大于41岁同时小于等于65岁的有438人
6、大于65岁的有125人
无论是原数据,还是条件可随时修改,统计结果也随之变化。
场景二:某宝鞋铺店长对存货盘点是否有断码
🔔 | 某店长对存货盘点后,判断断码的规则为:同一款色连续3个码数有存货,则该款色为齐码,否则诶断码,并将“齐码”或“断码”标注在H列。 |
在H3单元格输入以下公式并向下复制到数据最后一行
公式说明:IF(B3:G3>0,COLUMN(B:G))部分使用IF函数判断B3:G3单元格区域中各个码数的存货量是否大于0,如果大于0说明该码数有货,公式返回相应单元格的列号,否则返回逻辑值FALSE。
结果返回一个内存数组:{FALSE,3,4,5,FALSE,FALSE}
IF(B3:G3=0,COLUMN(B:G))部分的计算规则与上一个IF函数相反,在B3:G3单元格区域中的码数为0(缺货)时返回对应的列号,否则(有货)返回逻辑值FALSE。
结果返回一个内存数组:{2,FALSE,FALSE,FALSE,6,7}
借助FREQUENCY函数忽略参数中逻辑值的特点,以缺货对应的列号{2,6,7}为分组间隔值,统计有货对应的列号{2,3,4}在各个分组中的数量,相当于分别统计在两个缺货列号之间有多个有货的列号。
结果返回一个垂直内存数组:{0;3;0;0}
最后使用MAX函数从中提取出最大值,再使用IF函数判断这个最大值是否大于等于2,如果条件成立,则返回“齐码”,否则返回“断码”。
演示案例下载
🔔 | 以上演示案例均可在此下载 链接: https://pan.baidu.com/s/1F9ZB3pcUZdx6raQ0uJOYFQ 提取码: 3636 |
以下为演示环境说明
以上操作均在Windows10系统下操作完成
演示软件版本如下
经测试,以上函数均可在macOS sonoma 14.4系统下测试
测试软件版本如下
由于MacOS的WPS不支持动态数组,场景一的公式需要转换为
可正常使用
由于MacOS的WPS不支持内存数组,场景二的公式在WPS for MacOS上无法编辑使用,但不影响查看结果。
你还知道哪些被大众遗忘的老函数至今依旧在发挥这不容忽视的用途?
创作者俱乐部成员