WPS表格如何用FREQUENCY函数按区间分段统计个数?

为什么区间分段统计首选 FREQUENCY
在 WPS 表格 12.9.1(桌面端/移动端同源内核)里,FREQUENCY 函数是唯一能一次性返回“左闭右开”多区间频数组的数组函数。相比 COUNTIFS 要少写 N 条公式,比透视表轻量,比 Python-in-Cell 更快。核心关键词WPS 表格 FREQUENCY 函数按区间分段统计个数,正是解决“把 10 万条成绩拆成 0–59、60–69、70–79、80–89、90–100 五档各多少人”这类运营日报最省事的路径。
功能定位与边界
FREQUENCY(data_array,bins_array) 返回的元素个数永远比 bins 多 1,最后一行自动统计“大于最大上限”的溢出值。它只认数字,忽略空值、文本、逻辑值;区间默认“上区间不包含”,无法直接改成“≤”。若源数据含表头或文本,需先 CLEAN+VALUE 清洗,否则返回 #VALUE!。
桌面端最短操作路径
- 在空白列输入区间上限:如 F2:F5 依次输入 59、69、79、89、100(F6 留空可省略,函数会自动补溢出栏)。
- 选中结果输出区:比区间多一���,如 G2:G7。
- 公式栏键入
=FREQUENCY($A$2:$A$10001,$F$2:$F$6),按 Ctrl+Shift+Enter 结束,花括号 {} 由 WPS 自动生成。 - 检查溢出栏:G7 应为“>100”的个数;若不需要,可隐藏或 -1 修正。
经验性观察:12.9.1 版对 10 万行数据执行约 0.08 秒,COUNTIFS 同区间需 0.21 秒,透视表刷新 0.15 秒;差距随区间数线性放大。
移动端差异与限制
WPS 安卓/iOS 12.9.1 暂不支持硬件键盘 Ctrl+Shift+Enter,但提供“一键数组”按钮:输入公式后点 √ 左侧「数组」图标即可。若未出现图标,需先在「设置-实验室功能」打开「数组公式兼容模式」。注意:移动端最大可返回 8192 行数组,超过会提示“范围过大”。
bins 区间写法对照表
| 需求 | bins 示例 | 函数返回解释 |
|---|---|---|
| 0–59,60–69… | 59,69,79,89,100 | 左闭右开,末行 >100 |
| ≤100,≤200… | 100,200,300 | 每档含上限,仍需右开逻辑 |
| 日期按周 | 序列号 7 天后、14 天后… | 日期本质是整数,可直接 bins |
常见失败分支与回退
#N/A 出现在结果中间
原因:输出区域大于 bins+1。处置:选中与 bins 行数+1 一致的区域重新数组输入,不可直接删除多余行,否则数组断裂。
#VALUE! 全列报错
原因:data_array 含文本或错误值。先使用 =IFERROR(VALUE(A2),) 清洗,再喂给 FREQUENCY。
结果全是 0
经验性观察:bins 未升序排列时,WPS 不会自动排序,也不会报错,只是返回 0。验证:在 bins 旁用 =ISNUMBER(F2) 与 =F2<F3 快速检查升序。
FREQUENCY vs COUNTIFS vs 透视表
COUNTIFS 可写“≥80”“<90”双条件,逻辑直观,但每区间一条公式,后期插入行易错位;透视表“组合”功能可双击改步长,但刷新依赖缓存,多人协同时冲突概率高;FREQUENCY 一次性返回静态数组,适合日报模板固化后不再改动的场景。若需动态可刷新的可视化,优先透视表;若需一次性输出到第三方系统,FREQUENCY 最干净。
何时不该用 FREQUENCY
- 区间需要“≤”且必须包含上限端点,且不能容忍右开溢出栏;
- 数据行数 >104 万(桌面端 12.9.1 数组上限),应改用数据透视或 Python-in-Cell;
- 需要按文本分组(如“A 级”“B 级”),FREQUENCY 无法识别文本 bins。
实战小场景:10 万订单年龄分段
假设 A 列为用户年龄,运营需要五档分布用于投放。F2:F6 写入 19、29、39、49、100,G2:G7 输入数组公式后,得到 ≤19、20–29…80–100 及 >100 的频数。将 G2:G6 作为数据源插入「百分比堆积柱形图」,即可在晨会 PPT 中展示“Z 世代占比 18.3%”结论。全程无透视表,模板可秒级复用到下月数据。
与 Python-in-Cell 协同(可选)
12.9.1 新增的 Python-in-Cell 支持 pandas.cut,写法:
import pandas as pd bins=[0,59,69,79,89,100] labels=["D","C","B","A","S"] pd.cut(df["score"],bins,labels).value_counts()
优点是可把区间标签直接写回表格;缺点是需启用 Python 环境、文件体积 +2 MB。若日报只统计不回写,FREQUENCY 仍是零依赖方案。
验证与观测方法
- 用
=SUM(G2:G7)与=COUNT(A:A)核对总数是否相等,差 1 即说明有文本漏清洗。 - 开启「公式-公式求值」逐步查看,可确认哪一步 bins 被识别为文本。
- 对 1 万行子样本先用 COUNTIFS 双条件验证区间逻辑,再全量跑 FREQUENCY,结果一致即通过。
版本差异与迁移建议
12.8 及更早版本数组公式需手动按 F2+Ctrl+Shift+Enter,不支持“一键数组”图标;若文件要分发给旧版用户,务必在「文件-选项-保存」里把「默认保存格式」设为「WPS 表格 2025 工作簿」,否则旧版打开会退化为普通公式,返回 #SPILL!。企业私有化部署若禁用宏,也不影响 FREQUENCY,因其属于内置工作表函数,无 VBA 依赖。
最佳实践检查表
快速落地前请逐项打钩:
- 区间上限列已升序且不含文本;
- 输出区域行数 =bins+1,且一次性数组输入;
- 源数据清洗完毕,空值已排除;
- 文件另存为 2025 格式,保证向下兼容;
- 若日报模板,设置「手动计算」避免每次编辑重算 10 万行。
未来趋势与官方动向
据 2025 Q4 公开路线图,WPS 表格将在 2026 下半年引入「动态数组」完全体,届时 FREQUENCY 会像 Office 365 一样自动溢出,无需 Ctrl+Shift+Enter;同时 Python-in-Cell 会支持「分组统计」一键模板,FREQUENCY 可能退居轻量级场景。但在离线、低内存、零依赖的三大前提下,FREQUENCY 仍是区间分段统计的性价比之王。
常见问题
FREQUENCY 能否直接支持“≤”区间?
不能。函数内部强制“左闭右开”,若业务必须包含上限,可在 bins 最右侧再扩一格,事后把溢出值手动合并到上一档。
溢出栏总是多一行,如何彻底去掉?
FREQUENCY 的返回规格就是 bins+1,无法减少。经验做法:把最后一行字体设成白色或加 IF 判断屏蔽显示,但物理行仍在。
移动端打开桌面文件后数组消失怎么办?
确认已在「设置-实验室功能」开启「数组公式兼容模式」,再点公式栏左侧「数组」图标即可恢复花括号;若仍失败,回桌面重新数组输入后保存。
数据超过 104 万行还有办法用 FREQUENCY 吗?
桌面端 12.9.1 的数组上限是 104 8576 行,超出会提示“范围过大”。此时可改用数据透视表“组合”或 Python-in-Cell 分块聚合,再对聚合结果二次 FREQUENCY。
bins 里能否写公式动态引用?
可以,但须保证引用区域为纯数值且升序。示例:在 F2 写 =MAX($A:$A)*0.2,向下填充形成等比分档,再数组输入 FREQUENCY 即可。
风险与边界
FREQUENCY 假定所有分段都是数值连续区间,遇到“文本等级”或“日期+时间”混合列必须先转换;它也不支持多条件交叉,如“性别=男且年龄分段”需先筛选再统计,或改用透视表/Pivot。一次性数组结果意味着后续插入行不会自动扩展,模板固化前务必留足空白行。
📺 相关视频教程
不要再打 =SUM 了!#Excel百科 #Excel教學
术语表
- bins_array:分段上限数组,必须升序且为数值。
- data_array:待统计的原始数值区域,空值与文本会被忽略。
- 左闭右开:区间包含左端点、不含右端点,是 FREQUENCY 的硬编码规则。
- 溢出栏:函数返回比 bins 多 1 的最后一行,用于统计大于最大上限的个数。
结论:今天就把 FREQUENCY 写进你的日报模板,它用一行数组公式解决“左闭右开”多区间计数,比 COUNTIFS 快、比透视表轻、比 Python 省心;只要记住 bins 升序、输出多一行、源数据无文本,就能在 10 万行级别实现秒级分段统计。


