SMALL函数

使用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))))),””)

office办公软件入门基础教程 » SMALL函数

本文链接:【SMALL函数】https://www.officeapi.cn/87657.html

OFFICE,天天学一点,进步多一点

联系我们