End Sub. В процедуре ТрендсПовторениями()становится видимым поле Повторения, в которое нужно ввести ссылку на диапазон

В процедуре ТрендсПовторениями() становится видимым поле Повторения, в которое нужно ввести ссылку на диапазон. Перед вычислением параметров тренда в процедуре находятся число повторений каждой наблюдаемой величины, общее число всех наблюдений. Результаты выводятся в диапазоны, сопряжённые с диапазоном, введённым в поле Повторения. Наблюдения преобразуются в таблицу из двух столбцов с учётом повторения наблюдений.

Sub ТрендсПовторениями()

Dim ИмяЛиста As String

Dim Ячейка As Object

Dim x(), y(), Nxy(), Nx(), Ny() As Double

Dim i, j, k, p, N_x, N_y, Nобщая As Integer

Независимая = RefEdit1.Value

Зависимая = RefEdit2.Value

Повторения = RefEdit3.Value

N_x = Range(Повторения).Rows.Count

N_y = Range(Повторения).Columns.Count

ReDim Nxy(1 To N_x, 1 To N_y), Nx(1 To N_x), Ny(1 To N_y), _

x(1 To N_x), y(1 To N_y)

For i = 1 To N_x

For j = 1 To N_y

Nxy(i, j) = Range(Повторения).Cells(i, j).Value

Next j

Next i

For i = 1 To N_x

Nx(i) = 0

For j = 1 To N_y

Nx(i) = Nx(i) + Nxy(i, j)

Next j

Range(Повторения).Cells(i, N_y).Select

Selection.Offset(0, 1).Value = Nx(i)

Next i

Nобщая = 0

For i = 1 To N_x

Nобщая = Nобщая + Nx(i)

Next i

For j = 1 To N_y

Ny(j) = 0

For i = 1 To N_x

Ny(j) = Ny(j) + Nxy(i, j)

Next i

Range(Повторения).Cells(N_x, j).Select

Selection.Offset(1, 0).Value = Ny(j)

Next j

Range(Повторения).Cells(N_x, N_y).Select

Selection.Offset(1, 1).Value = Nобщая

For i = 1 To N_x

x(i) = Range(Независимая).Cells(i).Value

Next i

For i = 1 To N_y

y(i) = Range(Зависимая).Cells(i).Value

Next i

p = 1

For i = 1 To N_x

For j = 1 To N_y

If Nxy(i, j) <> 0 Then

For k = 1 To Nxy(i, j)

Cells(p, 100).Value = x(i)

Cells(p, 101).Value = y(j)

p = p + 1

Next k

End If

Next j

Next i

Независимая = "R1C100:R" & CStr(p - 1) & "C100"

Зависимая = "R1C101:R" & CStr(p - 1) & "C101"

Cells(1, 102).FormulaLocal = _

"=ОТРЕЗОК(" & Зависимая & ";" & Независимая & ")"

Cells(2, 102).FormulaLocal = _

"=НАКЛОН(" & Зависимая & ";" & Независимая & ")"

Cells(3, 102).FormulaLocal = _

"=КОРРЕЛ(" & Зависимая & ";" & Независимая & ")"

b = Cells(1, 102).Value

m = Cells(2, 102).Value

Корреляция = Cells(3, 102).Value

TextBox1.Text = CStr(b)

TextBox2.Text = CStr(m)

TextBox3.Text = CStr(Корреляция)

Диаграмма Range(Cells(1, 100), Cells(p - 1, 101))

End Sub

Процедура Диаграмма() строит линию тренда и показывает исходные данные.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: