Excel函数学习37:SMALL函数
微信公众号:excelperfect
使用SMALL函数,可以获得一组数值中指定第几小的数值。
什么情况下使用SMALL函数?
SMALL函数数据组中第k个最小值。它能够:
获取单元格区域中第3个最小值
求n个最小值之和
返回单元格区域中的负值
动态排序单元格区域中的数值
获取单元格区域中唯一值列表
SMALL函数语法
SMALL函数有2个参数,其语法如下:
SMALL(array,k)
array: 代表要求第k个最小值点的数值数组或者数值区域。
k: 指定要求第几个最小值。
如果参数array中包含任何非数字值,则会忽略该值。如果包含的值均为错误值,则返回其中的第1个错误值。如果包含相等的数值,那么会依次显示该值。
SMALL函数陷阱
如果指定的最小值数大于数组总数,则会返回#NUM!错误。
示例1: 获取单元格区域中第3个最小值
要获取单元格区域A1:A5中第3小的值,使用公式:
=SMALL(A1:A5,3)
返回数值3,即该区域中第3小的值为3。
下面的公式获取数组中第3小值:
=SMALL({50,20,30,60,50,10},3)
返回30。
示例2: 求n个最小值之和
下图所示工作表中,命名区域Data为A1:A9。求区域Data中前3个最小值之和的公式为:
=SUM(SMALL(Data,{1,2,3}))
这是一个数组公式,因此输入完成后要按Ctrl+Shift+Enter组合键。公式依次获取Data区域中第1个、第2个、第3个最小值,然后将它们相加。
也可以使用数组公式:
=SUM(SMALL(Data,ROW(INDIRECT("1:3"))))
相比于上面的公式,这个公式使用了ROW函数和INDIRECT函数,将更灵活。
示例3: 返回单元格区域中的负值
单元格区域A2:A10命名为“Num”。将该区域中所有负值提了出来的公式为:
=INDEX(Num,SMALL(IF(Num<0,ROW(INDIRECT("1:"& ROWS(Num)))),ROW(INDIRECT("1:" & ROWS(Num)))))
该公式为数组公式,因此选取与Num区域相同大小的区域,输入公式后按Ctrl+Shift+Enter组合键。
上述公式获得的结果包含#NUM!错误值,可以使用IFERROR函数消除错误值:
=IFERROR(INDEX(Num,SMALL(IF(Num<0,ROW(INDIRECT("1:"& ROWS(Num)))),ROW(INDIRECT("1:" &ROWS(Num))))),"")
示例4: 动态排序单元格区域中的数值
如下图所示的工作表,将单元格区域A1:A15命名为SortNum,现在要求对该区域中的数值态排序,即在该区域输入数值时,列D中的排序会自动调整。
下面的数组公式由小到大排列SortNum区域的数值:
=IFERROR(SMALL(SortNum,ROW(INDIRECT("1:"& ROWS(SortNum)))),"")
示例5: 获取单元格区域中唯一值列表
如下图所示的工作表,单元格区域A1:A8命名为“DataValue”,可以看出,该区域中有许多重复值。下面的数组公式提取并返回该区域中唯一值列表:
=IFERROR(INDEX(DataValue,SMALL(IF(MATCH(DataValue,DataValue,0)=ROW(INDIRECT("1:"&ROWS(DataValue))),MATCH(DataValue,DataValue,0),""),ROW(INDIRECT("1:"& ROWS(DataValue))))),"")
本文属原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎关注[完美Excel]微信公众号:
方法1—在微信“添加朋友”或者通讯录中搜索“完美Excel”或者“excelperfect”后点击关注。
方法2—扫一扫下面的二维码
- 双师课堂榜样在你身边——优秀学员学习经验分享(一)
- 胡说有理 | 学习如何学习,成为高效率学习者!(一次演讲)
- 这些让人欲罢不能的学习方法,让学习从此停不下来!
- 期末考又要来检阅你的学习了,这份历史观备考资料助你拿到漂亮的
- PHP中eval函数的危害与正确禁用方法
- 如何解决大规模机器学习的三大痛点?
- AWS DeepLens 先睹为快 | 10分钟搞定你的第一个深度学习项目!
- 倪海厦老师《伤寒论》讲解全套视频免费学习,不能错过的中医经典
- 怕学生生日喝酒出事,贵州宿管阿姨提供学习室聚会并炒菜做饭
- 中国这一创举震撼全球!英国、德国排着队来学习