По двойному щелчку по элементу, находящемуся в вычисляемом поле сводной, откроется лист со всеми связанными исходными данными.
Как на VBA можно обратиться к этим данным (без промежуточного листа, естественно)? В приложенном файле, например, при выделении в сводной ячейки из зелёной группы получить в жёлтой ячейке значение связанного исходного поля "ID" (отсутствует в самой сводной)?
Как вариант добавить id в сводную и скрыть столбец. Либо макросом проваливаться в сводную, брать из промежуточного листа данные и макросом же лист удалить.
Да, спасибо, столбец ID не могу в данном случае использовать, т.к. ID уникальный и будет в сводной общая строка множиться на подстроки с ID. Видимо придётся через промежуточный лист.
А необходимость вызвана тем, что в исходной таблице есть столбец для больших текстовых примечаний и в сводной им просто не место - это будет совершенно не читаемо, да и оно для всех значений и не нужно. Другое дело, если юзер нажмёт на заинтересовавшее его значение в сводной, а ему скрипт над таблицей выведет этот самый комментарий.
vladjuha написал: Как на VBA можно обратиться к этим данным
Для начало бы не мешало бы определить "этим" это что такое? Если у вас есть доступ к источнику данных сводной (например, этот таблица на листе), то не сложно вычислить, какие значения строк и столбцов сводной (поля группировки) определяют ту подтаблицу в исходной таблице.
Код
Public Sub test()
Dim pCell As Range, ptCell As PivotCell
Dim pItem As PivotItem
Set pCell = ActiveCell
Set ptCell = pCell.PivotCell
If ptCell.PivotCellType = xlPivotCellValue Then
For Each pItem In ptCell.ColumnItems
Debug.Print "group column name: '" & pItem.Parent.SourceName & "', with value: " & pItem.Value
Next
For Each pItem In ptCell.RowItems
Debug.Print "group row name: '" & pItem.Parent.SourceName & "', with value: " & pItem.Value
Next
End If
End Sub