Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello: I am trying to calculate an average of numbers in an array for a
series of individuals. The quantity of numbers may range from none to more than 20 and I want to average no less than 2 numbers nor more than 8 numbers. I am using Select Case as I thought that a nested If..Then.. Else would be cumbersome. The calculation for 8 numbers works (with the exception of a rounding issue which will be explained further down), but when I want to calculate averages for any fewer than 8 numbers it returns erroneous values. It seems as if it is holding onto additional numbers so the averages are much higher than they should be. Following is the basic code: Dim avg As Single ' calculate average if =2, <=8 valid numbers avg = 0 Select Case 8 - 0 Case 8 If holdnumbers(0) 0 And holdnumbers(1) 0 And holdnumbers(2) 0 And holdnumbers(3) 0 And holdnumbers(4) 0 And holdnumbers(5) 0 And holdnumbers(6) 0 And holdnumbers(7) 0 Then golfavg = (holdnumbers(0) + holdnumbers(1) + holdnumbers(2) + holdnumbers(3) + holdnumbers(4) + holdnumbers(5) + holdnumbers(6) + holdnumbers(7)) / 8 End If Case 7 If holdnumbers(0) 0 And holdnumbers(1) 0 And holdnumbers(2) 0 And holdnumbers(3) 0 And holdnumbers(4) 0 And holdnumbers(5) 0 And holdnumbers(6) 0 Then golfavg = (holdnumbers(0) + holdnumbers(1) + holdnumbers(2) + holdnumbers(3) + holdnumbers(4) + holdnumbers(5) + holdnumbers(6)) / 7 End If and so forth to End Select. holdnumbers(0-7) is also cleared (set to 0) after every calculation as so: ' reset score array holdnumbers(0) = 0 holdnumbers(1) = 0 holdnumbers(2) = 0 Also, in calculating the average the result is returned rounded to one decimal place, though I have the worksheet set to two decimal places. The calculated number is set as Single. For example, a worksheet average calculated as 87.69 is returned by the code as 87.50. Thanks in advance for any advice you can provide. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Not at all clear on use of variables and/or object variables | Excel Discussion (Misc queries) | |||
Storing variables in a macro and using those variables to performcalculations. | Excel Programming | |||
Automating Calculation of Lagged Cross Correlations between Variables | Excel Programming | |||
Using Two Variables in Excel Calculation VBA | Excel Programming | |||
range.calculation with UDF not working when calculation is set to automatic | Excel Programming |