那些年一起打过的卡
2、80个必学必会Excel常用函数教程合集(已坚持打卡61天)
5、Power Query 15天速成营(已坚持打卡15天)
80个必学必会Excel常用函数
第61天 频率分布函数frequency
技巧1:frequency分段统计函数用法教程
技巧2:间隔数组参数重复值怎么处理
技巧3:计算最大连续数
技巧4:计算最接近值
练习软件:office Excel 2016
01
frequency分段统计函数用法教程

FREQUENCY函数计算数值在某个区域内的出现频率,然后返回一个垂直数组。
语法:FREQUENCY(数值数组, 间隔数组)
data_array参数表示要对其频率进行计数的一组数值或对这组数值的引用,空白单元格和文本会被忽略。如果 data_array 中不包含任何数值,则 FREQUENCY 返回一个零数组。
Bins_array表示要将 data_array 中的值插入到的间隔数组或对间隔的引用。如果 bins_array 中不包含任何数值,则 FREQUENCY 返回 data_array 中的元素个数。
因为函数返回的结果是数组,所以必须以数组公式的形式进行输入。
示例中,虽然只有4个分数等级,但其实frequency函数在执行时还自带一个隐藏区间,就是大于最大值的部分,所以最终公式执行的结果数组中,一共有5个元素。因此,建议在选择结果单元格区域时,数量要比间隔数组元素数量多一个。

02
间隔数组支持乱序

之所以高手都喜欢用FREQUENCY函数,那是因为这个函数是真的的“牛叉”。相比于其他函数严格的参数要求,frequency函数的间隔数组不需要严格排序,函数在计算时会自动在后台先排序再给出结果。更过分的是,如果间隔数组中出现了重复值,函数只取第一个,后边的自动忽略。记住这个神奇的隐藏功能,后边有大用。

03
计算最大连续数

除了示例中的球队最多连败场次记录,公式还适用于最多连续打卡次数,流水线最多连续无次品记录等等场景。
因为场次的记录结果都是文本,那就要考虑将其转换成frequency函数能够识别的数字,使用if函数条件判断进行转换,B2单元格公式为“=IF(A2="负",ROW(A2))”,如果本场结果为负,就将单元格内容置为行号,负责显示默认值False,向下填充得到所有场次结果为负的行号记录;C2单元格公式“=IF(A2<>"负",ROW(A2))”,和B列数据相反,将不败场次的行号标记出来。
这样,咱们就可以把连败的记录转换成C列的两个数字之间,B列最多出现多少个数字,这就是frequency函数的主场了。
D2单元格公式“=MAX(FREQUENCY(B2:B31,C2:C31))”,使用max函数提取frequency函数结果数组的最大值。
当然,实际工作中,因为辅助列数据不太好看,所以咱们都是直接用数组公式的,类似这样的“=MAX(FREQUENCY(IF($A$2:$A$31="负",ROW($A$2:$A$31)),IF($A$2:$A$31<>"负",ROW($A$2:$A$31))))”,数组公式,记得按下ctrl+shift+enter组合键生效。

04
查找最接近值

查找最接近值也是一类问题的统称,今天咱们用的案例是经典的猜价格游戏,看看谁猜的价格更接近实际价格。D2单元格公式“=LOOKUP(1,0/FREQUENCY(0,ABS(A2:A10-C2)),A2:A10)”,公式的核心思路是这样的。
ABS(A2:A10-C2)返回一个竞猜价格与实际价格差值绝对值的数组,作为frequency函数间隔数组参数使用。
FREQUENCY(0,ABS(A2:A10-C2)),数值数组参数只有一个元素0,所以返回的结果中除了最接近的价格结果为1外,其余都为0。
经典零除用法搭配lookup模糊查找的特性,找到最终结果。
