Reputation: 390
How do I find the average of the values held in a 2D array in excel VBA? I have an array named "Numbers" which has values of 1,2,3,4,6 How do I enter the average value into a value named NumbersAve
Upvotes: 0
Views: 4628
Reputation:
Application.Average is sufficient.
Dim numbers As Variant, NumbersAve As Double
'by rows
Range("A1") = 1
Range("A2") = 2
Range("A3") = 3
Range("A4") = 4
Range("A5") = 6
numbers = Range("A1:A5").Value2
Debug.Print LBound(numbers, 1) & " to " & UBound(numbers, 1) & ", " & _
LBound(numbers, 2) & " to " & UBound(numbers, 2) '<~~ 1 to 5, 1 to 1
NumbersAve = Application.Average(numbers)
Debug.Print NumbersAve '<~~ 3.2
'by columns
Range("A1") = 1
Range("B1") = 2
Range("C1") = 3
Range("D1") = 4
Range("E1") = 6
numbers = Range("A1:E1").Value2
Debug.Print LBound(numbers, 1) & " to " & UBound(numbers, 1) & ", " & _
LBound(numbers, 2) & " to " & UBound(numbers, 2) '<~~ 1 to 1, 1 to 5
NumbersAve = Application.Average(numbers)
Debug.Print NumbersAve '<~~ 3.2
Upvotes: 2