Добрый день. Нужна функция стандартного отклонения видоизмененная. Нашел на просторах инета. Подскажите почему она "двоит"?
Код
Function СтандОтклон1(Arr)
Dim x, aCnt&, aSum#, aAver#, tmp#
For Each x In Arr
aSum = aSum + x 'вычисляем сумму элементов массива
aCnt = aCnt + 1 'вычисляем кол-во элементов
Next x
aAver = aSum / aCnt 'среднее значение
For Each x In Arr
tmp = tmp + (x - aAver) ^ 2 'вычисляем сумму квадратов разницы элементов массива и среднего значения
Next x
СтандОтклон1 = Sqr(tmp / (aCnt * (aCnt - 1))) 'вычисляем СТАНДОТКЛОН.Г()
End Function
двоит не функция, а ваши исходные данные в объединенных ячейках
Код
Function СтандОтклонNew(Arr, Optional gen = 0)
For Each x In Arr
If x <> "" Then
n = n + 1
s = s + x
sq = sq + x ^ 2
End If
Next
If gen = 1 Then
СтандОтклонNew = Sqr((sq - s ^ 2 / n) / n)
Else
СтандОтклонNew = Sqr((sq - s ^ 2 / n) / (n - 1))
End If
End Function