Страницы: 1
RSS
Функция-макрос для стандартного отклоенния, VBA
 
Добрый день. Нужна функция стандартного отклонения видоизмененная. Нашел на просторах инета. Подскажите почему она "двоит"?
Код
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


Изменено: невеДимка Соколов - 26.06.2020 09:12:21 (доп. файл)
 
двоит не функция, а ваши исходные данные в объединенных ячейках
Код
  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
Изменено: buchlotnik - 26.06.2020 10:25:50
Соблюдение правил форума не освобождает от модераторского произвола
 
8-0  Вот лопух я
Страницы: 1
Наверх