動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2507(ビルド19029.20184クイック実行)
「vba 中央値」
といった検索キーワードで時折アクセスがあります。
Excel VBAならば、WorksheetFunctionオブジェクトのMedianメソッドを使うのが簡単なコードで済みます。
[スポンサードリンク]
セルに入力されている値の中央値を求めるサンプルマクロ
A1:A5セルに数値が入力されている状態で以下のExcelマクロを実行すると、A1:A5セルの中央値がメッセージボックスに表示されます。
Sub ExcelVBAで中央値を求める__セル範囲から()
MsgBox _
WorksheetFunction.Median(Range("A1:A5"))
End Sub
MsgBox _
WorksheetFunction.Median(Range("A1:A5"))
End Sub
配列から中央値を求めるサンプルマクロ
配列から中央値を求めることもできます。
Sub ExcelVBAで中央値を求める__奇数個の配列から()
Dim arr(1 To 3) As Long
arr(1) = 1
arr(2) = 22
arr(3) = 333
MsgBox _
WorksheetFunction.Median(arr)
End Sub
Dim arr(1 To 3) As Long
arr(1) = 1
arr(2) = 22
arr(3) = 333
MsgBox _
WorksheetFunction.Median(arr)
End Sub
上記のマクロでは「22」がメッセージボックスに表示されます。
元データが偶数個の場合
元のデータが偶数個の場合には、真ん中の2つの数値の平均が返されます。
Sub ExcelVBAで中央値を求める__偶数個の配列から()
Dim arr(1 To 4) As Long
arr(1) = 1
arr(2) = 20
arr(3) = 30
arr(4) = 444
MsgBox _
WorksheetFunction.Median(arr)
End Sub
Dim arr(1 To 4) As Long
arr(1) = 1
arr(2) = 20
arr(3) = 30
arr(4) = 444
MsgBox _
WorksheetFunction.Median(arr)
End Sub
上記のマクロを実行したときいは、「20」と「30」の平均である「25」がメッセージボックスに表示されます。
[スポンサードリンク]
- Older:選択範囲をCSV出力するExcelマクロ
Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » Excel VBAで中央値を求める