SMALL函数求一组数值中第几小的数值 , 其第1个参数指定数据组 , 第2个参数指定要求的第几小的值 , 其基本用法如图1所示 。

图1
SMALL函数之美
SMALL函数的原理很简单 , 但将其组合在公式中 , 能够帮助我们按顺序获取数据 , 这可能就是SMALL函数的美妙之处 。
结合ROW函数对数据排序
如图2所示 , 在单元格C1中输入公式:
=SMALL($A$1:$A$6,ROW(A1))
下拉至单元格C6 , 即将单元格区域A1:A6中的数字由小到大排列 。

图2
也可以选择单元格C1:C6 , 输入数组公式:
=SMALL(A1:A6,ROW(1:6))
结果相同 , 如图3所示 。
【小而美的函数之SMALL函数】

图3
这样 , 原数据区域A1:A6中的数据改变时 , 排序区域C1:C6会实时更新 。

结合IF函数获取数据的位置
如图4所示 , 单元格区域A1:A6中放置示例数据 , 想要得到“Excel”在该区域第3次出现的位置 , 使用数组公式:
=SMALL(IF($A$1:$A$6=”Excel”,ROW($A$1:$A$6)-ROW($A$1)+1),3)
公式中:
$A$1:$A$6=”Excel”表示单元格区域中的值与“Excel”相比较 , 得到逻辑值组成的数组{TRUE;FALSE;TRUE;FALSE;FALSE;TRUE} 。
ROW($A$1:$A$6)-ROW($A$1)+1生成由单元格区域的行号组成的数字数组{1;2;3;4;5;6} 。
IF函数得到数组{1;FALSE;3;FALSE;FALSE;6} , 作为SMALL函数的数据值参数 , 取第3个最小值即为6 , 表明“Excel”第3次出现在第6行 。

图4
注意到 , SMALL函数忽略逻辑值 。
在很多公式中都使用了该示例的原理 , 来获取想要的数据的位置 , 然后获取该数据 。
猜你喜欢
- 小而美的函数之LEN函数
- excel图表怎么发挥IF函数的威力
- 怎么通过中间值获取数据的INDIRECT函数
- 上 10个示例让你的VLOOKUP函数应用从入门到精通
- LOOKUP函数的特别之处
- VLOOKUP函数的秘密
- MATCH函数的几个使用技巧
- INDEX函数,不仅获取数据,还能得到单元格区域
- 理解VLOOKUP函数第4个参数的真实含义
- MATCH函数使VLOOKUP函数更灵活高效
