Расчет среднемесячных значений на основе ежедневных данных - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы