Я регулярно взаимодействую с массивными таблицами PIP на основе OLAP. Обычно они более или менее недокументированы. И, таким образом, им трудно по-настоящему обернуть голову и эффективно использовать ее.Значимые значения в OLAP Cube Pivot Table
Одна из моих стратегий изучения того, какие данные будут представлены, - это навести на поле поле в списке полей сводной таблицы, а затем нажимая стрелку вниз, чтобы увидеть список значений в пределах опции , отличный от. См. Изображение ниже.
Я подумал: «Вау, может быть, я могу написать несколько VBA, чтобы сделать это для меня, и я могу создать список уникальных значений в кубе, так что я могу быстро сканировать/поиск того, что я ищу «.
Теперь я разумно разбираюсь в VBA, но я просто не могу понять. Я предполагаю, что метод, который мне нужен, не существует. Однако я думал, что попробую здесь.
Первая попытка:
Sub list_cube_fields()
Set objNewSheet = Worksheets.Add
objNewSheet.Activate
intRow = 1
For Each objCubeFld In Worksheets("Sheet1").PivotTables(1).CubeFields
objNewSheet.Cells(intRow, 1).Value = objCubeFld.Name
intRow = intRow + 1
Next objCubeFld
End Sub
Это создает список всех доступных полей сводной таблицы (которая на самом деле может быть своего рода полезно!), Но не кажется, что должен быть способ, чтобы получить дети/листья/потомки Cubefield
Далее я попробовал:
Sub test_field_list()
Worksheets("sheet4").Activate
With Worksheets("sheet1").PivotTables(1)
c = 1
For i = 1 To .PivotFields.Count
r = 1
Cells(r, c) = .PivotFields(i).Name
r = r + 1
For X = 1 To .PivotFields(i).PivotItems.Count
name1 = .PivotFields(i).PivotItems(X).Name
'cleans up name by eliminating the hierarchy labels
splitName = Split(name1, "&")
Cells(r, c) = splitName(2)
r = r + 1
Next
c = c + 1
Next
End With
End Sub
Это получает список всех уникальных значений, которые у меня есть использовал в сводной таблице, но даже не касался неиспользуемых полей. Точно так же это может быть полезно, но это не совсем так.
Что мне действительно нужно, это немного, чтобы удовлетворить мою фантазию, опять же, я не думаю, что методы существуют. Я понимаю, что то, что я прошу, может быть дорогостоящим и, скорее всего, довольно медленным и что я не использую подходящие инструменты для этой задачи. «OLAP уважает [приложения] разрешения, а предоставление прямого доступа SQL для меня не является« оправданием моего ИТ-отдела ».
В любом случае, если у вас есть идеи, я все уши.
Спасибо! Том
Можете ли вы порекомендовать конкретный «клиент инструмент, который позволяет писать запросы равнину MDX»? –
Что такое ваш OLAP-сервер? –