;-)
Option Explicit
' variáveis para cálculo do desvio padrão
'========================================
Dim valores() As Double
Dim desvio_padrao As Double
Dim qtd_valores As Integer
Dim soma As Double
Dim soma_1 As Double
Dim i As Integer
Dim media As Double
'========================================
'Cálculo de desvio padrão
'Exemplo para valores na coluna A a partir de A1
'Os valores devem estar em células contíguas
'Resultado em B1
Sub calcular()
qtd_valores = Range("A1").CurrentRegion.Rows.Count
ReDim valores(qtd_valores)
For i = 1 To qtd_valores
valores(i) = Sheets("plan1").Cells(i, 1)
Next i
desvio_padrao = f_desvio_padrao(qtd_valores, valores)
Sheets("plan1").Cells(1, 4) = "Desvio Padrão = " & desvio_padrao
End Sub
Function f_media(ByVal x As Long, valores() As Double)
soma = 0
For i = 1 To x
soma = soma + valores(i)
Next i
f_media = soma / x
End Function
Function f_desvio_padrao(ByVal qtd_valores As Integer, valores() As Double)
soma_1 = 0
media = f_media(qtd_valores, valores)
For i = 1 To qtd_valores
soma_1 = soma_1 + (valores(i) - media) ^ 2
Next i
f_desvio_padrao = Sqr(soma_1 / (qtd_valores - 1))
End Function
Um comentário:
mais fácil mandar o excel selecionar o range e depois mandar
Application.WorksheetFunction.StDev(Selection)
Postar um comentário