Расчет среднемесячных значений на основе ежедневных данных - VBA
Формулировка задачи:
Здравстуйте! Помогите, пожалуйста, написать макрос, с помощью которого можно было бы последовательно рассчитывать среднемесячные значения на основе ежедневных данных по курсу валюты. Например, в приложении - файл с данными по курсу валюты с 01.01.2015 по 31.05.2016. Нужно, чтобы макрос рассчитывал и выводил в отдельный столбец средние значения за каждый месяц из данного периода.
Заранее спасибо!
Решение задачи: «Расчет среднемесячных значений на основе ежедневных данных»
textual
Листинг программы
Private Sub Testv2() 'Excel 2007 (или старше) Dim iMin#, iMax#, iCount& Dim iColumn1 As Range, iColumn2 As Range Set iColumn1 = Лист1.UsedRange.Columns(1) Set iColumn2 = Лист1.UsedRange.Columns(2) With Application iMin = DateSerial(Year(.Min(iColumn1)), Month(.Min(iColumn1)), 1) For iCount = 1 To DateDiff("m", iMin, .Max(iColumn1)) + 1 iMax = DateAdd("m", 1, iMin) Лист2.Cells(iCount, 1) = Format(iMin, "mmmm, yyyy") Лист2.Cells(iCount, 2) = Application.AverageIfs( _ iColumn2, iColumn1, ">=" & iMin, iColumn1, "<" & iMax) iMin = DateAdd("m", 1, iMin) Next Лист2.Columns("A:B").Replace "#DIV/0!", 0 ' Лист2.Columns("A:B").Columns.AutoFit End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д