Установка фильтра сводной таблицы через vba по наименованию , а не по номеру элемента в списке

Анонимные
2019-06-01T06:13:38+00:00

Ексель 2016. Сводная таблица подключена к олап Кубу. В сводной таблице есть поля. В т.ч. "контрагент", "товар" Оба поля содержат текст и находятся в области фильтра. Ставлю на запись макрос. Выбираю в фильтрах контрагент5 и товар25. Останавливаю запись. Смотрю макрос. Там: Фильтр по [контрагент5] (все в порядке) и , ВМЕСТО [товар25] написано [7] (просто число семь) - порядковый номер товара в списке в фильтре(именно порядковый номер, а не код элемента в олап кубе...).

Как выбрать товар по наименованию, а не по номеру в списке? Почему в некоторых полях наименования, а в некоторых- номера???

Microsoft 365 и Office | Excel | Для дома | Windows
Microsoft 365 и Office | Excel | Для дома | Windows

Семейство программного обеспечения Майкрософт для работы с электронными таблицами, оснащенное инструментами для анализа, построения диаграмм и обмена данными.

Заблокированный вопрос. Этот вопрос был перенесен из сообщества службы поддержки Майкрософт. Вы можете проголосовать о его полезности, но не можете добавлять комментарии или ответы, а также подписаться на этот вопрос.

Комментариев: 0 Без комментариев

Ответы: 61

Сортировать по: Самые старые
  1. Анонимные
    2019-06-04T10:56:31+00:00

    В вашем вопросе написано, цитата: "Ексель 2016. Сводная таблица подключена к олап Кубу. В сводной таблице есть поля. В т.ч. "контрагент", "товар" Оба поля содержат текст и находятся в области фильтра. ...".

    Покажите ваш фильтр OLAP, в котором присутствует "товар", на представленном вами скриншоте:

    Его попросту нет!!!

    Макрос к фильтру OLAP:

    Sub olap()

    '

    ' olap Макрос

    ' макрос к фильтру

    '

    '

        ActiveSheet.PivotTables("BIWEB_SI_OLAP").PivotFields( _

            "[DimProduct].[Brends].[Product Z Brend]").VisibleItemsList = Array( _

            "[DimProduct].[Brends].[Product Z Brend].&[2520006093935]")

        ActiveSheet.PivotTables("BIWEB_SI_OLAP").PivotFields( _

            "[DimProduct].[Brends].[Product Brend]").VisibleItemsList = Array("")

        ActiveSheet.PivotTables("BIWEB_SI_OLAP").PivotFields( _

            "[DimProduct].[Brends].[Product Min]").VisibleItemsList = Array("")

    End Sub

    В таблице:

    оставляет только данные по "Бренд №2520006093935" выбранному макросом в фильтре OLAP:

    На основании вышеизложенного, можно предположить:

    -ваш куб OLAP не даёт вам данные для выбора в детализации товаров (товар1 ... товарN);

    -ваш макрос, не выполняет возложенную на него задачу, понятную только вам и которую вы упорно скрываете.

    P.S. Сравните ваш макрос с моим. И пожалуйста отслеживайте и отвечайте в заданном вами вопросе на Форуме TechNet, в противном случае ответа вы не дождётесь и ваш вопрос переведут в обсуждение.

     

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев
  2. Анонимные
    2019-06-04T13:00:30+00:00

    Ваш код мне понятен. Видимо, это то, что надо. Почему вы обращаетесь к "..зэт бренд" по коду? Можно ли как-то обратиться по наименованию? Ведь наименование передается в Ексель..

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев
  3. Анонимные
    2019-06-04T13:16:56+00:00

    Это то, что записал авторекодер VBA...

    Если вам понятен код, то почему вы не принимаете в расчёт всю строку:

    "[DimProduct].[Brends].[Product Z Brend].&[2520006093935]")

    в которой .&[2520006093935] и есть отображаемоенаименование в результате выполнения макроса?

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев
  4. Анонимные
    2019-06-04T16:48:31+00:00

    Не понял, 

    У нас есть:

    1."2520006093935"

    2. "бренд N 2520006093935"

    Почему отображается вариант 2, а вба- вариант 1??

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев
  5. Анонимные
    2019-06-04T17:01:31+00:00
    1. По тому, что товар отображается по Бренду с детализацией "Сокращённое название".
    2. Данный куб OLAP, не предназначен для вывода в фильтре OLAP название товара.

    Этот ответ помог вам?

    Комментариев: 0 Без комментариев