ФИНАНСОВЫЕ РАСЧЕТЫ ИТОГОВЫХ ПЛАТЕЖЕЙ В VBA EXCEL Сдвижков О.А.,Мацнев Н.П.

Российский государственный университет туризма и сервиса


Номер: 8-1
Год: 2015
Страницы: 192-196
Журнал: Актуальные проблемы гуманитарных и естественных наук

Ключевые слова

погашающий платеж, актуарный метод, правило торговца, final payment, actuarial method, merchant’s rule

Просмотр статьи

⛔️ (обновите страницу, если статья не отобразилась)

Аннотация к статье

Статья посвящена разработанным макросам (проектам) VBA EXCEL, автоматизирующим финансовые расчеты задолженностей при погашении их частичными платежами.

Текст научной статьи

1. ПОСТАНОВКА ЗАДАЧИ Применение информационных технологий для автоматизации вычислений (обработки данных) является одной из наиболее актуальных задач. Информатизация математических методов, в том числе в VBA Excel [4], позволяет не только мгновенно получать результаты, но и моделировать многие процессы [1, 2, 3]. Пусть в счет погашения ссуды P, выданной на срок T (в годах) под r простых годовых процентов, через некоторый промежуток времени t1 < T проведен платеж P1. Тогда, как известно [5], остаток задолженности - сумма погашающего платежа Р2 для момента t2=T рассчитывается или актуарным методом, или по правилу торговца. 1.1. В актуарном методе наращенная сумма задолжности на момент t1 уменьшается на P1, если P1 не меньше суммы начисленных процентов, иначе P1 прибавляется к сумме следующего платежа. Пример 1. Найти величину погашающего платежа, если Р=10, t2=1, r=40%, P1=4, t1=1/4, применяя актуарный метод. Решение. Учитывая , получаем: Z1=Р(1+rt1)-P1=10(1+0,4/4)-4=7 Р2=Z1(1+r(t2-t1))=7(1+0,4(1-1/4))=9,1 Ответ: 9,1 1.2. По правилу торговца, если , то частичные платежи, с учетом процентов, учитываются в момент Т, а если , то с процентами в момент Т учитываются только те частичные платежи, которые произведены до t=1, причем проценты начисляются только до t=1. Пример 2. По данным примера 1 найти сумму погашающего платежа, применяя правило торговца. Решение. Так как T удовлетворяет условию , то Ответ: 8,8 Пример 3. Найти величину погашающего платежа, если Р=10, Т=3/2, r=40%, P1=4, t1=1/4, применяя правило торговца. Решение. Так как , то Ответ: 10,8 2. ПРОЕКТ PAYMENTS Проект Payments среды VBA Excel, состоящий из стандартного модуля, открывающего пользовательскую форму для ввода данных, автоматически рассчитывает сумму погашающего платежа, как по актуарному методу, так и по методу торговца, если произведен один частичный платеж. Код стандартного модуля: Sub Payments() UserForm1.Show vbModeless End Sub Код пользовательской формы: Private Sub cmd_Click() Dim r As Single, p As Single, t As Single, _ p1 As Single, t1 As Single, m As Integer, h As Single r = Val(TextBox1.Text) p = Val(TextBox2.Text) t = Val(TextBox3.Text) p1 = Val(TextBox4.Text) t1 = Val(TextBox5.Text) UserForm1.Hide m = Application.InputBox _ ("Введите номер метода (1 - актуарный , 2 - торговца):", Type:=1) If m = 1 Then If p * r * t1 <= p1 Then h = (p * (1 + r * t1) - p1) * (1 + r * (t - t1)) Else h = p * (1 + r * t) - p1 End If Else If t <= 1 Then h = p * (1 + r * t) - p1 * (1 + r * (t - t1)) Else If t1 < 1 Then h = p * (1 + r * t) - p1 * (1 + r * (1 - t1)) Else h = p * (1 + r * t) - p1 End If End If End If MsgBox ("Погашающий платеж: " & h) End Sub Рассмотрим применение проекта к данным примера 1. Запуск проекта на исполнение открывает диалоговое окно для ввода данных: Рис. 1 Кнопка «Найти погашающий платеж» открывает окно для выбора метода решения: Рис. 2 Команда ОК возвращает: Рис. 3 Применение метода торговца дает: Рис. 4 Применяя проект к данным примера 3, получаем: Рис. 5 3. ПРОЕКТ ACTUAR Данный проект возвращает величины погашающих платежей, рассчитанных по актуарному методу и методу торговца, когда в первый столбец, начиная с ячейки А1, введены в возрастающем порядке даты финансовых операций, во второй столбец - объемы денежных средств этих операций, в ячейку С1 - простая годовая процентная ставка в десятичных долях. Диапазон с датами выделяется, и проект запускается на исполнение. Код модуля проекта: Sub Actuar() Dim t() As Single, p() As Single, r As Single, _ n As Integer, k As Integer, s As Single, h As Single n = Selection.Rows.Count ReDim t(0 To n) ReDim p(1 To n) t(0) = 0: r = Cells(1, 3).Value For i = 1 To n t(i) = Cells(i, 1).Value p(i) = Cells(i, 2).Value Next For i = 2 To n t(i) = Application.WorksheetFunction.YearFrac(t(1), t(i)) Next t(1) = 0 k = 1 For i = 2 To n - 1 If p(1) * r * (t(i) - t(k)) < p(i) Then p(1) = p(1) * (1 + r * (t(i) - t(k))) - p(i) k = i If i = n - 1 Then Cells(n, 2).Value = p(1) * (1 + r * (t(i + 1) - t(n - 1))) End If Else p(i + 1) = p(i + 1) + p(i) If i = n - 1 Then Cells(n, 2).Value = p(i) * (1 + r * (t(n) - t(k))) - p(n - 1) End If End If Next s = Cells(n, 2).Value MsgBox ("Погашающий платеж по актуарному методу: " & s) s = 0: h = 0 p(1) = Cells(1, 2).Value If t(n) <= 1 Then For i = 2 To n - 1 s = s + p(i) * (1 + r * (t(n) - t(i))) Next Else For i = 2 To n - 1 If t(i) <= 1 Then s = s + p(i) * (1 + r * (1 - t(i))) Else h = h + p(i) End If Next End If s = p(1) * (1 + r * t(n)) - s - h Cells(n + 1, 2).Value = s MsgBox ("Погашающий платеж по методу торговца: " & s) End Sub Пусть входные данные имеют вид: Рис. 6 Тогда запуск на исполнение возвращает: Рис. 7 Кнопка ОК возвращает: Рис. 8 Такие же результаты получаются непосредственными вычислениями.

Научные конференции

 

(c) Архив публикаций научного журнала. Полное или частичное копирование материалов сайта возможно только с письменного разрешения администрации, а также с указанием прямой активной ссылки на источник.