En este ejemplo haremos uso de la sentencia While ... WEnd para codificar una macro que nos permita obtener los extremos de los intervalos correspondientes a la media más o menos uno, dos y tres veces la desviación estándar de un conjunto de datos.
En consecuencia, la presente macro va a realizar los siguientes cálculos:
Suma, Promedio, Varianza, Desviación estándar, Coeficiente de variación, el intervalo que cubre el 68%, el 96% y el 99%.
Vamos de inmediato a codificar la macro. En cada instrucción pondremos un comentario a la derecha y con un apóstrofe '
Ahora vamos a formalizar el uso del While con C. Como C contiene lo que se digita, podemos equivocarnos y editar espacio en blanco y luego el número, etc. Para eliminar los espacios en blanco, se usa la función TRIM(...).
Recuerde que, cuando digite los datos, al final, debe presionar
Abra el arcivo "MisMacros.xlsm" o haga clic aquí
Vaya al editor y, haciendo doble clic en el Módulo5, ingrese el siguiente prcedimiento al final de todos los que hubieran en este módulo.
Sub Calc2()
' Declaramos las variables. C recibirá el dato como cadena; n contará el número de datos
Dim Suma, Promedio, Varianza, DesEst, CoefVar, LimInf, LimSup As Double
Dim C As String
Dim n As Integer
Suma = 0 ' La suma que es el único que acumula, se pone en 0
n = 0
C = InputBox("Ingrese el dato: ") ' Leemos el primer número
While Trim(C) <> ""
Suma = Suma + Val(C)
Suma2 = Suma2 + Val(C) * Val(C)
n = n + 1
C = InputBox("Ingrese el dato: ") ' Volvemos a leer para repetir. Para terminar, [Intro]
Wend
' Ahora se realiza
Promedio = Suma / n ‘ Calcula el promedio
Varianza = (Suma2 - n * Promedio * Promedio) / (n - 1) ‘ Calcula la varianza
DesEst = Sqr(Varianza) ‘ Calcula la desviación estándar
CoefVar = DestEst / Promedio ‘ Calcula el coeficiente de variación
LimInf = Promedio – DesEst ‘ Calcula el límite inferior para el 68%
LimSup = Promedio + DesEst ‘ Calcula el límite superior para el 68%
MsgBox ("Suma total de los datos: " & Suma) ‘ Imprime texto y valor numérico usando &
MsgBox ("Promedio: " & Promedio & " " & "Varianza: " & Varianza & " " & "Desviación estandar: " & DesEst)
MsgBox ("Intervalo que cubre el 68% de los datos: " & LimInf & " , " & LimSup)
LimInf = Promedio - 2 * DesEst
LimSup = Promedio + 2 * DesEst
MsgBox ("Intervalo que cubre el 96% de los datos: " & LimInf & " , " & LimSup)
LimInf = Promedio - 3 * DesEst
LimSup = Promedio + 3 * DesEst
MsgBox ("Intervalo que cubre el 99% de los datos: " & LimInf & " , " & LimSup)
End Sub
La imagen siguiente contiene el procedimiento que lo hemos digitado dentro del mismo módulo4 que contiene a Calc1.
Guarde el archivo con el mismo nombre
En la siguiente sesión estudiaremos las funciones que nos permiten el manejo de cadenas, para ello haga clic aquí