Страницы: 1
RSS
Изменение источника среза сводной таблицы, VBA
 
Добрый день, коллеги!

Есть необходимость сравнить 2 документа о движении денежных средств. Оба документа указывают одни и те же операции, но по времени разных часовых поясов. Иногда необходимо посмотреть операции по времени 1-го документа, иногда - 2-го.

Первой мыслью было сформировать таблицу, указав сначала дату/время из первого док-та, потом ниже продублировать их с привязкой ко времени второго. Затем добавить еще 1 поле, где чье время указано и использовать это поле в срезе. Однако в таком случае размер таблицы и время выполнения запроса увеличится в 2 раза.

С другой стороны можно сделать 2 сводные, но в таком случае пострадает удобство использования. Либо сделать 2 среза и при переключении скрывать один под другим, что тоже неудобно т.к. придется условие одного переписывать в условие другого.

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

Прошу посоветовать решение.
Даже в справке не вижу, какое свойство отвечает за источник...  
Изменено: Павел - 12.12.2013 16:30:47
 
макрорекордером можно записать че то такое
Код
    ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables("СводнаяТаблица2"), _
        "Дата2").Slicers.Add ActiveSheet, , "Дата2 1", "Дата2"
    ActiveSheet.Shapes.Range(Array("Дата2")).Delete
Соответственно копать нужно SlicerCache.
Но , как по мне, это все танцы с бубном и первый ваш вариант  - самый правильный и простой.
на счет
Цитата
время выполнения запроса увеличится в 2 раза.
не думаю что аж так сильно.
 
Спасибо за ответ.
На счет времени запроса погорячился: не сразу сообразил вместо 2 кратного прогона инсерта, сделать 1, а потом переделать итоговую таблицу, таким образом вторая часть проходит почти мгновенно.
Код рекодера уже просматривал - свойство Source в SlicerCache вне методов доступно как Read only. А из методов есть лишь Add.
Пока сделал по второму варианту: 2 среза + optionBut. + кучка мелких процедур. Не самый изящный вариант, но, думаю, немного лучше хранения лишнего млн. строк. Посмотрим, как будет работать, может потом перепишу.
Странно, что в MS не предусмотрели такой возможности.
Изменено: Павел - 15.12.2013 18:06:50
Страницы: 1
Наверх