2014-09-24 2 views
0

Предположим, что я хочу вручную рассчитать sample standard deviation. Как вы знаете, мы имеем эту формулу, чтобы сделать это:Сумма в EXCEL для расчета стандартного отклонения

enter image description here

Я использую эту функцию в EXCEL, чтобы сделать это: (диапазон данных: E3:E32)

=SQRT((E3-GEOMEAN($E$3:$E$32))^2/(COUNT($E$3:$E$32)-1)) 

Но эта функция расчета standard deviation для каждой ячейки (здесь E3). Мне нужно суммирование, как в приведенной выше формуле. (+ Это ручная функция для вычисления стандартного отклонения с использованием geometric mean). Как я могу это сделать в EXCEL?

Спасибо.

+0

Чтобы уточнить, вам нужна формула, которая заменяет сумму в приведенной выше формуле продуктом? Еще лучше вставьте нужную формулу. – Bathsheba

+0

Да. Мне нужна полная формула в ячейке. Я хочу получить окончательный результат формулы в одной ячейке, используя единственную функцию 'EXCEL' – user2991243

+1

Просто для встречи. Будьте ангелом и поставьте формулу. Я предполагаю, что кто-то еще ответит, прежде чем я вернусь! – Bathsheba

ответ

2

Здесь вы идете. В фигурные скобки указывают, что это необходимо ввести как формулу массива (нажмите Ctrl + Shift + Enter завершить формулу в Excel, см here для получения дополнительной информации о формулах массива):

{=SQRT(SUM(((E3:E32)-GEOMEAN(E3:E32))^2)/(COUNT(E3:E32)-1))} 

Следующий код VBA будет также выполняйте то, что вы хотите. Создать новый модуль и добавить следующее:

Function GeoSampleStdDev(rng As Range) 
    Dim meanGeo, sum As Double 

    meanGeo = WorksheetFunction.geoMean(rng) 

    Dim cell As Range 
    For Each cell In rng.Cells 
     sum = sum + (cell.Value - meanGeo)^2 
    Next 

    GeoSampleStdDev = Sqr(sum/(rng.Count - 1)) 
End Function 

Он может быть вызван в клетке, используя следующее выражение:

=GeoSampleStdDev(E3:E32) 

Кроме того, обратите внимание, что формула для геометрического стандартного отклонения отличается от чего вы есть выше. Это еще одна реализация формулы, полученной из Википедии. Это также формула массива:

{=EXP(SQRT((LN((E3:E32)/GEOMEAN(E3:E32))^2)/COUNT(E3:E32)))} 
+0

Благодарим вас за ответ. Можете ли вы добавить код VBA для последней функции рядом с вышеуказанным кодом VBA? – user2991243

+0

@ user2991243: Да ладно, вы можете сделать это сами, используя вышеприведенный фрагмент кода. +1 ответ, кстати. – Bathsheba

+0

Большое спасибо Бретт Вольфтингтон и Вирсавия за помощь ;-) – user2991243