Как известно, из коробки Excel не позволяет устанавливать фильтры по списку значений для сводных таблиц, а это ведь такая нужная вещь! Как отфильтровать товары по сотне кодов, а потом по другой сотне? Есть, конечно, способы, но все это не то…

Или, например, установить для куба фильтр по измерению с датами, но не проставлять галочки на каждом дне/месяце/годе, а задать диапазон С… ПО ....

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

Мы запилили на VBA расширение, добавляющее на ленту панель Инструменты куба с волшебными кнопочками.


В оригинале на панели кнопочек больше, но они были вырезаны, по понятным причинам.



Фильтр по датам можно применять к нескольким сводным таблицам одновременно, как на одном, так и на разных листах. Это удобно, когда необходимо установить одинаковые периоды сразу в нескольких таблицах.



Подключение надстройки


Надстройку удобно размещать в шаре и именно по этой причине на картинке произведен отказ от копирования в локальный каталог, чтобы можно было вносить изменения и у всех была актуальная версия. Но это решать вам.



Надстройка заточена под календарь (таблицу дат) определенной структуры, поэтому вряд ли она взлетит у вас без доработок, но они обещают быть небольшими. А вот установка фильтров по списку должна заработать без проблем. Единственное ее ограничение — не поддерживается установка фильтров для иерархии, но это и не нужно.

Структура таблицы дат, под которую создавалась надстройка, выглядит так:


Скачать надстройку можно здесь ExCubeTools.zip

Комментарии (8)


  1. McKinseyBA
    29.08.2019 19:06

    Статья гуд, но хаб "BigData" причем? Да и "Data Mining" притянут за уши ИМХО. Давно считал и писал НЛО, о необходимости хаба "Excel". Это не просто очередной продукт MS, а явление/среда разработки, в которой и ОС пишут и игрушки.


    1. rt001 Автор
      30.08.2019 08:53
      +1

      Понятное дело, что данная поделка не имеет ничего общего с BigData, к SQL server она относится примерно также. На мой взгляд, целевая аудитория, и, вероятно, содержащая их в своем зоопарке, обитает именно в этих хабах, поэтому получился такой набор. Может быть я ошибаюсь.
      В какой хаб надо было поместить?


  1. valemak
    29.08.2019 21:59

    А какую полезную нагрузку несёт этот код? :-)

    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
             MsgBox "['kkj"
             'ActiveCell.Value = 1 ' or your sub
    End Sub



    1. rt001 Автор
      30.08.2019 09:05
      +2

      Это магическая часть, без нее работать не будет)))
      Как Вы понимаете, не было цели блеснуть идеальным кодом. Хотелось поделиться инструментом. Эх, если бы со мной кто-то поделился таким лет несколько назад, хотя бы одной кнопочкой установки фильтров по списку…


  1. Ananiev_Genrih
    30.08.2019 09:59
    +3

    Мда, приехал очередной велосипед для любителя Excel 2003
    Из коробки:
    Активная ячейка на сводной таблице->Анализ->Вставить временную шкалу
    image


    Одним кликом непринужденно оперируем любыми периодами
    image


    Раздаем контроль на любое количество сводных
    image


    1. rt001 Автор
      30.08.2019 11:58
      +1

      Готов посыпать голову пеплом, если покажете, как с помощью этого красивого ползунка установить период С… ПО… введя его с клавиатуры, а не выискивать где же там эта дата. Не переключаясь сначала на годы, потом кварталы и месяцы/дни.

      Это риторический вопрос. Нужно пойти в фильтр, во вложенном меню поставить «между».
      Но теперь нам надо добавить к этому периоду аналогичный предшествующего года.
      Иии… что делать?

      Далее нам нужно быстро применить только к одной текущей таблице, а через минуту ко всем на листе.
      Проставлять галочки в настройке, к каким таблицам применить? А если их создавали в разной последовательности на разных листах, таким образом на первом листе есть таблица1, таблица5 и таблица8, это нужно сначала посмотреть какие таблицы на листе и потом по одной галочке снимать/ставить? А когда в книге пара десятков таблиц, но в окошке «Подключение к отчетам» нет кнопочки «Выделить все» и «Снять выделение», будем полчаса щелкать, снимая галочки, а потом столько же их ставить назад?
      Спасибо, но я предпочитаю день подождать…

      И самое главное (в данной версии этого нет, но у нас есть): когда с одним из филиалов есть временной лаг и нужно смотреть обороты по всем филиалам, но ограничив период не максимальным значением в календаре, а максимальным значением, на которую есть данные по тому отстающему филиалу, чтобы выровнять… ну вы поняли. Как это сделать красивым ползунком?

      ЗЫ. Пепел я уже приготовил :-)


      1. latonita
        01.09.2019 17:51

        Ммм, мне казалось, что исходная задача в Power pivot работает из коробки? Или нет?


    1. rt001 Автор
      30.08.2019 13:39
      +1

      Как известно, из коробки Excel не позволяет устанавливать фильтры по списку значений для сводных таблиц, а это ведь такая нужная вещь! Как отфильтровать товары по сотне кодов, а потом по другой сотне?

      На этот вопрос Вы не ответили своими картинками. Расскажите, как это делается для любителя Excel 2010?