Сводная таблица Excel 2013, группировка по дате из SQL Server Analysis Service 2008

Я использую: SSAS версии 2008 и Excel версии 2013

Я подключаюсь к кубу SSAS из Excel, и у меня есть измерение даты с 4 полями (у меня есть другие, но я не использую его в этом случае). Я создал 4 поля, чтобы проверить все возможные сценарии, которые я мог придумать:

  1. DateKey:

    • Type: System.Integer
    • Значение: ггггММдд
  2. Дата:

    • Type: System.DateTime
  3. DateStr0:

    • Type: System.String
    • Значение: дд / ММ / гггг (примечание: я не использую культуру США)
    • Пример: 01.11.2015
  4. DateStr1:

    • Type: System.String
    • Значение:% d /% M / yyyy (примечание: я не использую культуру США)
    • Пример: 11.01.2015

Фильтрация по дате работает нормально:

Изначально в Excel не работала фильтрация по дате. Но после изменения размерного типа на время и установки DataType на Date, как указано в https://download.microsoft.com/download/7/d/f/7df964aa-08d9-4b65-b952-c9a529fa635b/Excel2007AnalysisServicesCubes.docxPivot хорошо, как вы можете видеть на картинке.

Фильтры даты работают нормально

Группировка по дате не работает:

У меня есть иерархия в моем измерении даты, и я могу группировать на основе иерархии, без проблем. Но пользователь используется для предварительного создания функции группировки в Excel, и он хочет это использовать. Функции предварительной сборки Excel, Группировка и разгруппировка кажутся доступными, как вы можете видеть на следующем рисунке:

Разгруппировка группы отображается правильно

Но когда пользователь нажимает "Группировать", Excel группирует его, как если бы это строка, и это проблема. Пользователь хочет сгруппировать, используя функцию предварительной сборки, доступную в сводной таблице.

Я также обнаружил, что Power Pivot Table не поддерживает эту функцию группировки Excel. И если я хорошо понял, эта функция группировки перед сборкой в ​​excel должна выполнять вычисления во время выполнения, и это не жизнеспособное решение, если у вас есть миллионы строк. Таким образом, сводная таблица Power не поддерживает функции предварительной сборки в Excel, и, следовательно, нам нужно использовать иерархию измерений для группировки.

Но я не использую Power Pivot table, я использую простую Pivot Table. Поэтому я ожидаю, что функция группировки будет работать нормально.

Затем я попытался провести простой тест. Я создал простой источник данных в самом Excel. И использовать его как источник моей сводной таблицы. Тогда группировка работает нормально. Единственное различие, которое я вижу, это (если дважды щелкнуть значение меры в Excel),

  1. Для значений даты в моем простом тесте excel рассматривает их как «Дата».

  2. Для значений дат моих данных, поступающих из куба, excel считайте их 'Общие'

    • But value here is same as it was in simple test.
    • «Фильтр даты» работает нормально.
    • Если я просто выделю эту ячейку и сниму ее выделение, тогда Excel изменит тип на «Дата», хотя для этой ячейки.
    • Я создал 4 разных типа полей в своем измерении даты, думая, что значения атрибутов моего измерения могут быть проблемой, но лучше рассмотреть «Общие» для всех из них.
    • Это значение (которое можно увидеть, дважды щелкнув меру) берется из «Столбца имени» атрибута. И определенный DataType - это WChar. И я подумал, что это может быть причиной проблемы. И я изменил его на «Дата». Но SSAS не позволяет изменить его на «Дата», что приводит к ошибке: тип данных «Дата» не разрешен для свойства «NameColumn»; Следует использовать "WChar".

NameColumn должен быть WChar

Итак, я не знаю, какой кусок пазла мне не хватает.

  1. Фильтр по дате работает, группа не работает
  2. Excel считает это строкой «General».
  3. SSAS не позволяет изменить NameColumn на Date.

Не могли бы вы посоветовать?

Аджит


person ajitdh    schedule 24.11.2015    source источник
comment
Разработчик куба должен будет добавить необходимые свертки в измерение Date. Я не думаю, что существует какой-либо другой простой способ для пользователей выполнять действия группировки без того, чтобы эти группы находились в измерении даты во время разработки.   -  person GregGalloway    schedule 25.11.2015


Ответы (1)


После дальнейших исследований я пришел к выводу, что это невозможно и не должно быть возможным. Причина:

Работа со сводной таблицей, источником которой являются обычные данные

Когда мы работаем со сводной таблицей, источник данных которой не является кубом OLAP, Excel отвечает за создание и управление многомерным кубом OLAP (в памяти), а в Excel есть все данные, необходимые для создания куба OLAP. Когда мы нажимаем группу в поле «Дата», Excel создает атрибут в измерении своего куба (см., Как он добавляет новые поля в поля сводной таблицы). Следовательно, группировка по столбцу «дата» работает так же, как и в сводной таблице, источником которой являются обычные данные. После создания нового атрибута он работает как обычный атрибут, и мы можем использовать его для нарезки и нарезки кубиками.

Работа со сводной таблицей, источником которой является куб OLAP

Когда мы работаем со сводной таблицей, источником данных которой является куб OLAP, excel не несет ответственности за создание куба или управление им. В нем нет всех данных, необходимых для создания куба OLAP, он просто получает результат запроса, который отправляет в OLAP (это также причина, по которой Excel может работать с миллиардами строк при работе с внешним кубом OLAP). Поэтому при работе со сводной таблицей, источником которой является куб OLAB, мы несем ответственность за создание и управление этими атрибутами / наследниками в нашем кубе.

Следовательно, я не могу и не должен использовать предварительно созданную «групповую» функциональность Excel в столбце даты (при использовании куба OLAP в качестве источника данных).

Ссылка: http://excelcentral.com/excel2013/expert/lessons/06070-understand-olap-pivot-table-limitations.html

person ajitdh    schedule 25.11.2015