|
|
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, помогите пожалуйста облегчить нелюбимую рутинную операцию с помощью VBA: Есть Сводная таблица у которой источник ОЛАП. Из всего списка артикулов отфильтровано только одно значение (путем выбора галочки), надо отфильтровать другое значение, а предыдущее скрыть. Попробовала написать макрос на эту тему, но столкнулась с тем что почему-то команда .PivotItems(i).Visible не работает для ОЛАПовской сводной. Кроме того, For i = 1 To .PivotItems.Count - перечисляет только значения отмеченные галочкой (=видимые) , т.е. даже для того что бы составить список для команды .HiddenItemsList = Array(…) нужно выделить все значения, для расчета которых система зависает на полчаса. Код: vbnet 1. 2. 3. 4. 5. 6. 7. Как не отображая все значения (долго будет рассчитывать) отфильтровать одно единственное заранее известное значение. Благодарю за рассмотрение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2012, 12:05 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Добрый день Перебор значений в фильтре совершенно не нужен. Можно передать в фильтр сразу массив нужных значений Примерно так в вашем случае может выглядеть макрос, который поместит в фильтр сразу нужное значение Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2012, 15:27 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
например, Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2012, 15:30 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ. У меня выдает ошибку на строке pf.CubeField.EnableMultiplePageItems = True если не отображены все значения (до запуска макроса у меня выбрано только одно значение). Но даже если я не выделяю все значения он стопорится на pf.VisibleItemsList = Array("[Артикулы 5].[All Артикулы 5].[А0650]"), видимо потому что у меня Excel 2003, по крайней мере это предположение в этой теме делали Мучаем PivotTable Может можно как-нибудь собрать список всех артикулов, не пересчитывая сводную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 09:08 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Leanna, сначала проверьте название элемента [Артикулы 5].[All Артикулы 5].[А0650] - я скопировал с листа вашего файла, Вы уверены, что это именно то что, нужно? а к примеру, не [Артикулы 5].[Артикулкраткий].&[A0650] ? если сомневаетесь - попробуйте записать макрорекордером смену значения фильтра P.S. а какая ошибка возникает, кстати? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 10:07 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Leanna, уточнил. в Excel 2003 работать не будет. свойство PivotField.VisibleItemsList добавлено в Excel 2007 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 10:34 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Спасение нашла в том что перенесла артикулы с поле "Страница", кот. в левом верхнем углу. Там работает с помощью CurrentPageName Код: vbnet 1. 2. Судя по всему пора подумывать о 2007 Excel. Спасибо Виктор за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 13:38 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Leanna, пожалуйста Имхо, если обновлять версию Excel, то лучше не на 2007, а на 2010 Там добавлено кое-что вкусное для работы с OLAP по сравнению с 2007 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 14:30 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
как пройти циклом for each по фильтру olap таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2016, 19:31 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
nikioioio, Если есть много сводных таблиц в одном екселе, к которым требуется применять общие фильтры, то это можно сделать с помощью Slice в екселе: На отдельном листе настраиваете слайсы и по кнопке (создать на форме или сделать как надстройку в отдельном меню) запускаете обновление всех сводных таблиц (можно сделать еще один лист, в котром настривать применимость слайсов к разным сводным таблицам). Такое решение проверено временем и пользователям удобно. (есть примеры отчетов в которых десятки листов с множествой сводных таблиц в каждом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 13:34 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Мне бы хотелось пройти по коллекции циклом for each in , но вот проблема - pivotitem не реагирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 16:25 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Slicer, Попробовал сделать через срезы. там тот же принцип. Макрорекордер дает вот такие команды Sub Ìàêðîñ4() ActiveWorkbook.SlicerCaches("ыы").VisibleSlicerItemsList = _ Array( _ "[аа].[Видтары].[Вид].&[Коробка]", _ "[аа].[Видтары].[Вид].&[Бочка]", _ "[аа].[Видтары].[Вид].&[мал_бочка]") End Sub То что работает с обычными сводами, с олап не работает Это обычная сводная все работает. Sub ff() Dim SlCash As SlicerCache Dim slit As SlicerItem For Each SlCash In ThisWorkbook.SlicerCaches If SlCash.Name = "Ñðåç_¹" Then For Each slit In ThisWorkbook.SlicerCaches(SlCash.Name).SlicerItems On Error Resume Next If slit.Name = 1 Then ThisWorkbook.SlicerCaches(SlCash.Name).SlicerItems(slit.Name).Selected = True Else ThisWorkbook.SlicerCaches(SlCash.Name).SlicerItems(slit.Name).Selected = False End If Next End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 06:58 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой же проблемой фильтры с (PivotTables OLAP Filters). У меня необходимость макросом выставлять фильтр последние 12 мес и последние 30 дней. Через свойство VisibleItemsList можно выставить необходимый фильтр. Функцией генерирую массив 12 мес или 30 дней. Но может так получится, что какой то даты не окажется в фильтре выходит ошибка, как можно это обойти/проверить, судя по комментариям выше циклом пройтись по элементам фильтра нет возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2020, 18:26 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
valdemar_ru, В кубе не хотите сделать иерархию - Последние 30 дней - Остальные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2020, 19:21 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
Критик valdemar_ru, В кубе не хотите сделать иерархию - Последние 30 дней - Остальные ? Спасибо за ответ. Т.е., если создать вычисляемый флаг последних 30 дней и отдельно еще один по 12 месяцам, если я Вас правильно понял? Мне кажется сопровождать не очень удобно, допустим, завтра квартал нужен будет или полугодие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2020, 10:37 |
|
||
|
Сводная таблица на базе ОЛАП как макросом отфильтровать нужное значение?
|
|||
|---|---|---|---|
|
#18+
valdemar_ru Т.е., если создать вычисляемый флаг последних 30 дней и отдельно еще один по 12 месяцам, если я Вас правильно понял? Мне кажется сопровождать не очень удобно, допустим, завтра квартал нужен будет или полугодие. ну добавьте сразу "последний квартал" и "последне поглугодие" - вот и все сопровождение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2020, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=8&tid=1857321]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 395ms |

| 0 / 0 |
