В вашем вопросе написано, цитата: "Ексель 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, в противном случае ответа вы не дождётесь и ваш
вопрос переведут в обсуждение.
