Все, ниже приведен скрипт VBA для Excel, который я написал, чтобы попытаться вычислить среднеквадратичное значение в Excel. переменная avg
является значением отдельной ячейки, setter
является диапазоном. Это должно имитировать функцию среднеквадратичной ошибки. Он должен применяться на скользящей основе по всему листу, а не только над одним статическим набором данных, поэтому он должен быть UDF.
Для ясности, это возвращает ошибку #NAME?
. Введена формула =runs_test(S86,T66:T86)
; все столбцы S и T являются формулами, которые возвращают числа.
Любой совет приветствуется, спасибо!
Function runs_test(avg As Double, setter As Range)
Option explicit
Dim i As Variant
Dim counter As Double
Dim er As Double
For Each i In setter
er = (avg - i.Value) ^ 2
counter = counter + er
Next i
total = setter.Cells.Count
er = counter / total
er = er ^ (1 / 2)
runs = er
End Function