ARTICLE · 1296430
Excel 办公技巧之 FREQUENCY
做销售分析的时候,老板说,"你把咱们的门店按销售额分个段,看看哪个价位的最多。你第一反应是透视表拖个字段,拖个值两下就出来了。但老板紧接着又来一句:"这个数要放到仪表盘上,我换个月份它得自动变。透视表瞬间就不好使了。
于是你开始写公式。第一段:销售额小于1万的有多少家COUNTIFS(销售额列,"<10000")。
第二段:1万到5万的COUNTIFS(销售额列,">=10000",销售额列,"<50000")。
第三段:5万到10万的COUNTIFS(销售额列,">=50000",销售额列,"<100000")。
第四段:10万以上的COUNTIFS(销售额列,">=100000")。
四个区间,四个公式,每加一段就多写一层。
哪天老板说"再加个20万的档",你还得回去改公式、调区间、重新算。
有没有一个函数,把所有区间一次性算完?
有。那就是今天咱们要讲的FREQUENCY。
一、FREQUENCY 是干什么的
这个函数的名字直译过来就是"频率"数每个区间里有多少个值。
语法长这样:
=FREQUENCY(要统计的数据, 分段点)
两个参数:
第一个:你要数的那列数据,比如所有门店的销售额
第二个:你想怎么分段,比如 10000、50000、100000
它的工作逻辑是:
1. 自动把数据切成几段
2. 每段有多少个值,一次性全算出来
3. 结果是竖着一整列,不是一个格子一个格子写
举个例子:
=FREQUENCY(D2:D500, {10000,50000,100000})

意思是:
小于10000的有多少个
10000到50000之间的有多少个
50000到100000之间的有多少个
大于100000的有多少个,四个结果,一次出来。
你注意到了吗第二个参数写了三个分段点,结果出来了四段。
这是FREQUENCY的一个特点:分段点有N个,结果就有N+1个。最后那个永远是"大于最大分段点"的数量。
二、和COUNTIFS比,到底好在哪
光说语法没感觉,直接对比一下。
需求:把门店按销售额分成四段,数每段有多少家
用COUNTIFS写:
小于1万=COUNTIFS(D:D,"<10000")
1万-5万=COUNTIFS(D:D,">=10000",D:D,"<50000")
5万-10万=COUNTIFS(D:D,">=50000",D:D,"<100000")
10万以上=COUNTIFS(D:D,">=100000")
四个公式,每段一个。哪天老板说"把1万改成2万",你得四个公式全改一遍。
用FREQUENCY写:
=FREQUENCY(D2:D500, {10000,50000,100000})
就一个公式。分段点写在第二个参数里,要改阈值就改这一个地方,四个结果自动跟着变。
而且因为是数组公式,结果是竖着溢出一整列,不用一格一格往下拖。
三、真实场景:做一个自动更新的门店销售分层
表的结构
A列:门店名、B列:销售额,你想做一个分层表:
销售额小于1万有多少门店
销售额1万-5万有多少门店
销售额5万-10万有多少门店
销售额10万以上有多少门店
以前怎么做
要么透视表拖一遍,要么四个COUNTIFS写到底。
现在怎么做
找个空白列,比如F2,直接写:
=FREQUENCY(B2:B500, {10000,50000,100000})

按回车,F2到F5四个格子自动溢出结果:
F2:小于1万的门店数
F3:1万到5万的门店数
F4:5万到10万的门店数
F5:10万以上的门店数,就这么简单。
哪天老板说"把5万的档改成3万",你回去把公式里的50000改成30000,四个结果自动重算。
四、进阶用法:分段点写在单元格里,随时能调
上面那个例子,分段点是直接写在公式里的({10000,50000,100000})。
但实际工作中,你经常需要调区间。总不能每次都回去改公式吧?
更好的做法是:把分段点写在单独的一列里,公式引用这一列。
比如你的表是这样的:
E列是(分段点) | F列是(结果) ,然后F2写:
=FREQUENCY(B2:B500, E2:E4)

这样你想调区间,直接改E列的数字就行,公式不用动。
想加一个20万的档呢,E列多写一个200000,结果自动多出来一行。
这才是做仪表盘的正确姿势,阈值给用户自己调,结果自动跟着变。
五、三个新手容易踩的坑
坑1:按回车只出来一个数
这是最多人遇到的问题。
老版本Excel里,FREQUENCY是数组公式,写完要按 Ctrl+Shift+Enter 三键结束,它才会把所有结果都溢出来。
但现在365版本直接按回车就行,自动溢出。
如果你按回车只出来一个数,看看你的Excel版本老版本就得选好整个结果区域,再按三键。
坑2:分段点不能重复
第二个参数里的分段点如果有重复值,FREQUENCY会忽略掉重复的那个,结果就少一段。
比如你写 {10000, 50000, 50000, 100000},中间那个50000等于白写,结果直接少了一段。
分段点要从小到大排,不能重复。
坑3:它算的是"小于等于"还是"小于"
这个很多人搞混。
FREQUENCY的分段逻辑是:
第一段:小于第一个分段点的值
中间段:大于等于前一个分段点、小于后一个分段点的值
最后一段:大于等于最后一个分段点的值
也就是说,它的区间是左闭右开的:[0, 10000)、[10000, 50000)、[50000, 100000)、[100000 +)。
正好等于分段点的值,归到下一段。
比如有个门店刚好卖了10000,它不算在"小于1万"那一段,而是算在"1万-5万"那一段。
这个逻辑和COUNTIFS写的时候要注意的边界是一样的,别搞反了。
六、什么时候用透视表,什么时候用FREQUENCY
透视表是给人看的静态报表,FREQUENCY是给公式用的动态区间统计零件。
七、最后
FREQUENCY这个函数,很多人用了几年Excel都没碰过。
原因很简单数区间分布,透视表一拖就出来了,谁还会专门去记一个数组公式
但一旦你要做动态的东西仪表盘、联动看板、用户可调的分段阈值透视表就不够用了。这时候FREQUENCY的价值才出来:它能嵌在公式里,能跟着数据源自动更新,能让用户自己调区间。
和之前讲的UNIQUE、FILTER是一个道理:不是说老方法做不到,而是老方法做出来的东西是死的,新方法做出来的是活的。















































































