calcular desviacion tipica con vba

23/05/2006 - 16:58 por carmen | Informe spam
Hola a todos!

Tengo un rango de celdas, todas en la misma columna, digamos que la
primera es la cells(i,1) y la ultima es la cells(i+k,1), donde i y
k son numeros que se determinan a lo largo del programa. Necesito
calcular la desviacion tipica de todas estas celdas, es decir, si
estuviera trabajando directamente en la hoja de calculo, haria
StDev("Ai:Ai+k").
He probado a crear una variable string y usarla directamente como
sigue:

Dim rango As String

'calculo mi "i" y mi "n"

rango = "D" & i & ":D" & n
desviacion=Application.WorksheetFunction.Sum (rango)

pero esto me da un error "Run-time error '1004'": StDev method or
WorksheetFunction class failed.

No tengo ni idea de por donde meterle mano a esto, pero por si sirve de
algo, tengo Excel 97...

Alguien que me ayude?
Muchas gracias,
Carmen

Preguntas similare

Leer las respuestas

#1 Valentín Playá
23/05/2006 - 18:11 | Informe spam
Carmen,

creo que la sentencia que buscas es:

desviacion= aplication.worksheetFunction.StDev(Range(Cells(7, i
Cells(10, n))

No la he probado, si te da algún problema dímelo.

Saludos,

Valentín Playá Serra
Sonotronic S.A.
Madrid, España
Respuesta Responder a este mensaje
#2 Valentín Playá
23/05/2006 - 18:14 | Informe spam
Carmen,

no se porque ha salido mal el mensaje anterior. Te lo pongo en tres
filas para que salga entero. En realidad va todo seguido en la misma
instrucción.

Respuesta Application.WorksheetFunction.StDev
(Range(Cells(7, 1), Cells(10, 1)))

Saludos,

Valentín
Respuesta Responder a este mensaje
#3 KL
23/05/2006 - 18:36 | Informe spam
Hola chicos,

"Valentín Playá" wrote
no se porque ha salido mal el mensaje anterior. Te lo pongo en tres
filas para que salga entero. En realidad va todo seguido en la misma
instrucción.



Para evitar ese problema yo personalmente suelo romper el codigo expresamente:

desviacion= _
Application.WorksheetFunction. _
StDev(Range(Cells(7, i),Cells(10, n))

Saludos,
KL
Respuesta Responder a este mensaje
#4 KL
23/05/2006 - 18:50 | Informe spam
Hola Carmen,

"carmen" wrote
Dim rango As String
'calculo mi "i" y mi "n"
rango = "D" & i & ":D" & n
desviacion=Application.WorksheetFunction.Sum (rango)
pero esto me da un error "Run-time error '1004'": StDev method or
WorksheetFunction class failed.



El problema esta en que intentas usar la variable rango (del tipo String) como si fuera una variable del tipo Range.

Podrias probar algo asi:

Dim rango As String
'calculo mi "i" y mi "n"
rango = "D" & i & ":D" & n
desviacion=Application.WorksheetFunction.Sum (Range(rango))

pero yo huebiera hecho:

'calculo mi "i" y mi "n"
desviacion=Application.StDev(Range(Cells(i, 4), Cells(n, 4)))

o bien

'calculo mi "i" y mi "n"
desviacion=Application.StDev(Range(Cells(i, "D"), Cells(n, "D")))

o bien

'calculo mi "i" y mi "n"
desviacion=WorksheetFunction.StDev(Range(Cells(i, 4), Cells(n, 4)))

o bien

'calculo mi "i" y mi "n"
desviacion=WorksheetFunction.StDev(Range(Cells(i, "D"), Cells(n, "D")))

Saludos,
KL
Respuesta Responder a este mensaje
#5 carmen
24/05/2006 - 09:26 | Informe spam
Muchas gracias,
funciona todo lo que me habeis dicho, ningun problema!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida