VBA, формула Pivot для включения данных за последние 52 недели - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть сводная точка, которая получает данные за 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 голосов
/ 15 февраля 2019

Вы можете добавить фильтр даты к вашему PivotField.

С помощью функции DateSerial вы можете вычесть из сегодняшнего дня, например, 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
...