Страницы: 1
RSS
VBA. Фильтр выбора дат в сводной таблице
 
Всем доброго времени суток. Не получается решить проблему. Есть сводная таблица, в колонках - даты. Мне нужно, чтобы фильтром отбирались, например, 5 крайних дат, считая от сегодняшней. То есть, если сегодня 18.08.2017, нужно, чтобы выбирались 5 дат вместе с этой

Ещё момент, в оригинальном файле сводная создана на основе sql и в ней даты в формате "2017-08-18", не знаю, что это за формат такой
 
Добавить в таблицу столбец с формулой условия
?
 
Формат даты берется из вашей базы данных, вы же запросом их из какой-то таблицы получаете? Скорее всего на листе, где расположена сводная, формат даты можно сменить.
Код по фильтрации:
Код
Sub Фильтрация()
Dim i As Integer
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Дата")
        
        For i = 1 To .PivotItems.Count
            If i < .PivotItems.Count - 4 Then
                .PivotItems(i).Visible = False
            Else
                .PivotItems(i).Visible = True
            End If
        Next i
        
    End With
End Sub

Для конкретной сводной, для конкретного поля, галки снимаются со всех значений, кроме пяти последних значений.
upd. Если нужно не просто пять значений последних, то у .PivotItems(i) можно проверить значение свойства Caption или SourceName на соответствие конкретной дате, и уже тогда устанавливать галочку.
Изменено: khankill2 - 21.08.2017 13:50:28
 
khankill2, огромное спасибо вам. Да, данные тянутся в сводной запросом. Единственный момент, что в фильтре даты расположены не по порядку, а в разброс, поразбираюсь, как это решить.

По сути задачи сделали то, что нужно, спасибо)
Страницы: 1
Наверх