您可能有时需要在值列表中找到最低的数字。如果使用SMALL工作表功能,这相对容易做到。该函数有两个参数:要评估的值的范围和指示您想要的最小数字的指标。例如,以下将返回A1:A100范围内的第二个最低数字:

=SMALL(A1:A100,2)

如果您想知道该范围内的两个最低数字,请使用两个包含SMALL函数的公式-一个用1作为第二个参数(表示最小的数字)和一个用2作为第二个参数(表示第二个最小的数字) 。

当然,在某些情况下,范围内的两个最小数字实际上可能是相同的数字。例如,如果最低数字为3,并且列表中第二个数字为3,则两个最低数字将相同。如果要使用两个最低的唯一数字,则需要使用宏来确定它们。

Function SMALLn(rng As Range, n)

Application.Volatile     SMALLn = False     If n < 1 Then Exit Function     Dim i As Long, j As Long, k As Long, min, arr, arr2     arr = Application.Transpose(rng)

ReDim arr2(n - 1)

min = Application.WorksheetFunction.Min(arr)

j = UBound(arr)

k = 0     arr2(k) = min     For i = 1 To j         If Application.Small(arr, i) <> arr2(k) Then             k = k + 1             arr2(k) = Application.Small(arr, i)

If k = n - 1 Then                 SMALLn = arr2(k)

Exit For             End If         End If     Next i End Function

此用户定义的函数以下列方式使用:

=SMALLn(A1:A100,2)

当这样调用时,该函数将返回指定范围内的第二个最低的唯一值。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(10944)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在以下位置找到适用于Excel的较早菜单界面的本技巧的版本: