Установка фильтра сводной таблицы через 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-04T17:13:18+00:00
    1. Не понял. 
    2. Понятно. Можно как-то по наименованию найти код (кроме как через запись макроса?)

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

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

    Ничего не понял, о каком коде вы спрашиваете?

    Внимательно изучите видео, попробуйте решить вашу задачу на имеющемся у вас OLAP-кубе.

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

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

    Возможно, я неправильно понял логику.

    Излагаю, как я понял:

    1.

    Вы в фильтре поля "названия строк" выбрали значение "Бренд №2520006093935"

    2.

    В вба поле "название строк" соответствует полю  "[DimProduct].[Brends].[Product Z Brend]",

    1. Эту связь мы можем посмотреть в свойствах поля. (Называется название или как-то так)
    2. Значение   *"Бренд №2520006093935"  соответствует значению "*2520006093935"
    3. Я называю "2520006093935"  "кодом"(может это и неправильно)
    4. Если при выборе в фильтре значения "Бренд №2520006093935", вба записывает"2520006093935",  то значит где-то хранится соответствие одного другому. Вопрос: где хранится это соответствие и как его "вытащить"?

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

    Комментариев: 0 Без комментариев
  4. Анонимные
    2019-06-04T20:50:08+00:00
    1. Ваш вопрос, правильнее адресовать разработчику OLAP-куба, из раздела страницы "Используемые технологии" нажав на кнопку "Запрос консультации".
    2. По вашему пункту 4, строка макроса:

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

    выбирает отображаемое в сводной таблице имя "Бренд №2520006093935" при помощи текстового оператора &.

    Наведите курсор на отображаемую строку сводной таблицы:

    вы увидите всплывающую подсказку по отображаемой строке.

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

    Комментариев: 0 Без комментариев
  5. Анонимные
    2019-06-05T06:35:17+00:00

    К сожалению, у Вас частный случай, который "случайно совпал".

    Гипотеза, что значение которое подставляется в значение фильтра вместо "наименования региона" или "наименования контрагента" в ВБА коде - это значение одного из "других" полей была одной из первых отработанных.

    1. не по всем полям выводится подсказка, например скриншот ниже, т.е. не везде есть "связанные поля" (ВБА код к этому скрину выше по форуму):

    ,

    Конечно, это ни о чем не говорит. Гораздо хуже, что значение "в другом поле" не совпадает со значением в ВБА (в отличии от Вашего примера)

    На скриншотах ниже фильтр поставлен по двум полям: сначала по Дистрибьютору (вместо наименование дистрибьютора в ВБА коде число [315], вместо ожидаемого наименования дистра или ходя бы ноды [314]),

    после этого отбора в таблица осталась только одна строка с нодой 314. Потом, что бы посмотреть код ВБА, поставил фильтр на поле "номер ноды" (там все как надо, [314]).

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

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