エクセルの関数とマクロ:SMALL関数の場合

excel

1. SMALL関数とは

SMALL関数は、指定した範囲の中からn番目に小さい値を返す関数です。データ分析で下位の値を抽出したい場合に非常に便利です。


以下のような数値データがあるとします。

| A列 |
| 50 |
| 20 |
| 80 |
| 10 |
| 40 |

=SMALL(A1:A5, 1)  ' A1:A5の中で最も小さい値(1番目)を返す → 10
=SMALL(A1:A5, 2) ' A1:A5の中で2番目に小さい値を返す → 20
=SMALL(A1:A5, 3) ' A1:A5の中で3番目に小さい値を返す → 40

2. マクロでSMALL関数を再現する方法

VBAを使用して、指定された範囲からn番目に小さい値を取得する方法を紹介します。

Sub FindNthSmallest()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim values() As Double
Dim i As Integer, j As Integer
Dim n As Integer
Dim temp As Double

' 対象のワークシートと範囲を設定
Set ws = ThisWorkbook.Sheets("Sheet1")
Set rng = ws.Range("A1:A10")

' 配列に範囲内の値を格納
ReDim values(1 To rng.Cells.Count)
i = 1
For Each cell In rng
values(i) = cell.Value
i = i + 1
Next cell

' 配列をソート(昇順)
For i = 1 To UBound(values) - 1
For j = i + 1 To UBound(values)
If values(i) > values(j) Then
temp = values(i)
values(i) = values(j)
values(j) = temp
End If
Next j
Next i

' n番目に小さい値を取得
n = 3 ' ここを必要な順位に変更
MsgBox "範囲内の" & n & "番目に小さい値は " & values(n) & " です。"
End Sub

3. SMALL関数が有効な場面

SMALL関数は以下のような場面で有効です:

  • テストの下位成績を調べる: 特定のテストで最も低い点数を確認する。
  • 最低価格の商品リストを抽出: 販売データから最安値の商品を探す。
  • 異常値の確認: 極端に小さい値を検出することでデータエラーを確認する。

4. 類似する関数との違い

  • LARGE関数: SMALL関数の逆で、範囲内のn番目に大きい値を返します。
    • 例: =LARGE(A1:A5, 1) は最も大きい値を返します。
  • MIN関数: 範囲内の最小値を返しますが、順位指定はできません。
    • 例: =MIN(A1:A5) は最小値を返します。

違い:

  • SMALL関数は特定の順位の小さい値を取得可能。
  • MIN関数は範囲内の最小値しか取得できない。
  • LARGE関数は逆に大きい値を扱うため、データの上位抽出時に使います。

5. 結び

SMALL関数は、データセットから下位の値を抽出するための強力なツールです。また、VBAを活用することで、手動作業を自動化し効率的にデータを処理できます。適切な場面で活用して、データ分析をさらに進化させましょう。


この記事を参考に、エクセルでのSMALL関数の使い方をマスターしましょう!

※ 本記事の内容は、実際にエクセルで操作して確認した上でご利用ください。

タイトルとURLをコピーしました