首页 > 解决方案 > 获取宏运行日的每周平均值

问题描述

忙于学习宏观课程。处理此类问题的最佳方法是什么:

a) 每天都会在数据表中插入一个每日值

b) 一周从星期一到星期日

c) 在任何给定时刻,如果运行宏,则需要在单独的表上输出每周平均值。因此,如果今天是星期四,则需要拉出周一至周三的平均值。

d) 我附上了一个示例数据集,但稍后我会在确定哪些工具合适时将其扩展为真实数据。

在此处输入图像描述

标签: excelvba

解决方案


我使用了以下 VBA 代码,我相信它会适合你

它将在另一张表上为您提供本周内日期的平均值。我按照您的要求更新了月份功能

Sub Test()
Dim LR As Integer

LR = Cells(Rows.Count, "A").End(xlUp).Row
Range("E1").Value = "=Weeknum(Today())"
Range("F1").Value = "=Month(Today())"

For i = 1 To LR
    Range("C" & i).Value = WorksheetFunction.WeekNum(Range("A" & i))
    Range("D" & i).Formula = "=Month(A" & i & ")"
Next i

Worksheets("Planilha2").Range("A1").Value = WorksheetFunction.AverageIf(Worksheets("Planilha1").Range("C:C"), Worksheets("Planilha1").Range("E1").Value, Worksheets("Planilha1").Range("B:B"))
Worksheets("Planilha2").Range("B1").Value = WorksheetFunction.AverageIf(Worksheets("Planilha1").Range("D:D"), Worksheets("Planilha1").Range("F1").Value, Worksheets("Planilha1").Range("B:B"))

End Sub

推荐阅读