Фильтр по сводной таблице за последние 14 дней Excel 2010

У меня есть таблица на листе, которая содержит столбец Date. Я создал сводную таблицу/диаграмму на новом листе. Я хочу иметь возможность фильтровать данные на диаграмме, отображаемой за последние 14 дней (всегда относительно текущей даты).

У меня та же проблема, что и у этого пользователя: фильтрация сводной таблицы Excel для отображения данных за последние 24 часа

За исключением того, что я не могу добавить столбец в исходные данные, и мне это нужно в течение 14 дней вместо 24 часов. Должен быть встроенный способ сделать это или я могу сделать это в VBA?

Спасибо


person John    schedule 12.03.2014    source источник


Ответы (1)


Конечно, вы можете фильтровать по дате, но без VBA я думаю, что это должно быть вручную. Вот подпрограмма VBA, которая устанавливает его за последние 14 дней, включая сегодняшний день:

Sub FilterPivotByDate()
Dim pvt As Excel.PivotTable
Dim DaysToShow As Long
Dim DateString As String

Set pvt = ActiveSheet.PivotTables(1)
DaysToShow = 114
DateString = Format(Date - (DaysToShow - 1), "m/d/yyyy")
With pvt.PivotFields("date")
    .ClearAllFilters
    .PivotFilters.Add Type:=xlAfterOrEqualTo, Value1:=DateString
End With
End Sub
person Doug Glancy    schedule 12.03.2014
comment
Спасибо - это именно то, что мне было нужно - person John; 12.03.2014
comment
Пожалуйста. Спасибо за возможность написать забавный код. - person Doug Glancy; 12.03.2014
comment
Я не уверен, что вы можете помочь мне с этим, но это всплыло позже. Чтобы использовать ваше решение, мне нужно добавить дату как ось (категорию). Есть ли способ сделать то же самое, если бы это был фильтр отчета? Проблема в том, что он делит мои результаты по месяцам - person John; 12.03.2014
comment
Является ли фильтр отчетов вашим первым выбором, или вы хотите сделать это, потому что это решит вашу проблему с группировкой по месяцам? Чтобы сделать это в фильтре отчета, я думаю, что единственный способ - перебрать каждый элемент и установить его свойство Visible. Сейчас у меня нет больше времени, но я проверю позже. - person Doug Glancy; 12.03.2014
comment
Мне не нужно фильтровать даты каким-либо образом, кроме последних 14 дней, хотя мой дизайн изменился, поэтому даты не всегда должны быть связаны с текущей датой. Я добавил 2 элемента управления календарем, чтобы получить их между датами. Поэтому мне нужно сослаться на эту ось (категорию) моего поля даты для фильтрации между датами, но не применять ее функцию фильтрации по умолчанию, где она разбивает мои значения по месяцам. - person John; 13.03.2014
comment
Я могу сделать так, чтобы даты в сводной таблице действовали так, как вы видите по умолчанию, выбрав месяц в диалоговом окне «Группа». И наоборот, если щелкнуть даты правой кнопкой мыши и выбрать «Разгруппировать», то и в сводной таблице, и в сводной диаграмме каждая дата будет отображаться отдельно. - person Doug Glancy; 14.03.2014
comment
Спасибо еще раз за помощь. Оказалось, что мне просто нужно было сгруппировать по секундам, чтобы результаты не разбивались по месяцам. - person John; 17.03.2014