VBA,Pivot公式包含最近52周的数据

时间:2019-02-15 19:54:25

标签: excel vba pivot-table

我有一个关键点,可以获取长达2年的数据。我选择所有列,例如Sheet!$A:$F

如何更改公式,使其仅包括从今天开始的前52周?

样本数据:

+-------------+
| 1-Jan-2019  |
| 2-Jan-2019  |
| 3-Jan-2019  |
| 4-Jan-2019  |
| 7-Jan-2019  |
| 8-Jan-2019  |
| 9-Jan-2019  |
| 10-Jan-2019 |
| 11-Jan-2019 |
| 14-Jan-2019 |
| 15-Jan-2019 |
| 16-Jan-2019 |
| 17-Jan-2019 |
| 18-Jan-2019 |
| 21-Jan-2019 |
| 22-Jan-2019 |
| 23-Jan-2019 |
| 24-Jan-2019 |
| 25-Jan-2019 |
| 28-Jan-2019 |
| 29-Jan-2019 |
| 30-Jan-2019 |
| 31-Jan-2019 |
| 1-Feb-2019  |
| 4-Feb-2019  |
| 5-Feb-2019  |
| 6-Feb-2019  |
| 7-Feb-2019  |
| 8-Feb-2019  |
| 11-Feb-2019 |
| 12-Feb-2019 |
| 13-Feb-2019 |
+-------------+

1 个答案:

答案 0 :(得分:1)

您可以将日期过滤器添加到PivotField

使用DateSerial函数,您可以从今天开始减去e。 G。 1年(或52 * 7天等)。

With ActiveWorkbook.Worksheets("WSname").PivotTables("PTname").PivotFields("PFname")
    .ClearAllFilters
    .PivotFilters.Add2 _
        Type:=xlDateBetween, _
        Value1:=CStr(DateSerial(Year(Date) - 1, Month(Date), Day(Date))), _
        Value2:=CStr(Date), _
        WholeDayFilter:=True
End With