Abra el archivo "Mis Macros.xlsm" o haga clic aquí
Vamos a codificar una macro que calcule los coeficientes de regression, como antes, pero ahora leerá los valores de X e Y a la vez, separados por coma y pueden tener decimales o ser negativos.
Lo que se lea tendrá la forma nnn,mmm. Los caracteres hasta antes de la coma serán para X y los que estén a la derecha de la coma, para Y.
Abra su libro de macros (MisMacros.xlsm). Vaya al editor y haga doble clic en el Módulo1. Allí está el primer procedimiento que hicimos. Al final de éste digite:
A continuación presentamos el código de este procedimiento. Los comentarios después de cada instrucción, nos releva de mayores comentarios
Sub RegresionLineal()
Dim Cadena As String
Dim X, Y, SX, SX2, SY, SXY As Double
Dim n As Integer
' Inicializamos las sumatorias en 0
SX = 0 ' Sumatoria de las X
SX2 = 0 ' Sumatoria de las X al cuadrado
SXY = 0 ' Sumatoria de las XY
SY = 0 ' Sumatoria de las Y
n = 0 ' Nos permitirá saber cuántos datos se han leido
' Leemos la cadena
Cadena = InputBox("Dato:")
' Usaremos While para que termine cuando se presione [Intro] o clic en
While Trim(Cadena) <> "" ' Le quitamos los espacios en blanco que tuviera
X = Val(Left(Cadena, InStr(Cadena, ",") - 1))
Y = Val(Mid(Cadena, InStr(Cadena, ",") + 1))
SX = SX + X
SY = SY + Y
SX2 = SX2 + X * X
SXY = SXY + X * Y
n = n + 1
Cadena = InputBox("Dato:")
Wend
' Calculamos los coeficientes
B = (n * SXY - SX * SY) / (n * SX2 - SX * SX)
A = SY / n - SX / n * B
MsgBox ("La ecuación de regresión es: " & "Y = " & A & " + " & B & "X")
End Sub
La siguiente imagen contiene este procedimiento
En la siguiente sesión veremos otros ejemplos con funciones que nos permiten el manejo de cadenas, para ello haga clic aquí