ある時点で、値のリストから最小の数値を見つける必要がある場合があります。 SMALLワークシート関数を使用すると、これは比較的簡単に実行できます。この関数は、評価する値の範囲と、必要な最小数のインジケーターの2つのパラメーターを取ります。たとえば、次の場合、A1:A100の範囲で2番目に小さい数値が返されます。

=SMALL(A1:A100,2)

範囲内の最小の2つの数値を知りたい場合は、SMALL関数を含む2つの数式を使用します。1つは2番目のパラメーター(最小の数値)として1を使用し、もう1つは2番目のパラメーター(2番目に小さい数値)として2を使用します。 。

もちろん、範囲内の2つの最小の数値が実際には同じ数値である可能性がある状況もあります。たとえば、最小の番号が3で、リストに2番目の3がある場合、両方の最小の番号は同じになります。最小の2つの一意の番号が必要な場合は、マクロを使用してそれらを判別する必要があります。

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)

このように呼び出されると、関数は指定された範囲で2番目に低い一意の値を返します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3420)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。