#excel #ssas #mdx
#excel #ssas #многомерные выражения
Вопрос:
У меня возникла проблема с общим итогом в Excel, подключенным к OLAP-кубу. У меня есть мера, которая правильно вычисляется на уровне строк, но возвращает ошибку в общем итоге. Он возвращает мне ошибку #VALUE ! .
РЕДАКТИРОВАТЬ: я провел некоторый опыт и убедился, что ошибка появляется только тогда, когда у меня выбрано более одного года. Если у меня есть только один, данные возвращаются правильно.
Я пробую несколько изменений в измерении, но безуспешно.
Исходная мера:
IIF([Tipo de Stock].[Tipo de Stock].CurrentMember IS [Tipo de Stock].[Tipo de Stock].amp;[7] OR, NULL,
SUM({NULL:[Data].[Por Mês].PrevMember},[Measures].[Movimento Valor])
)
Некоторые изменения, пытающиеся решить проблему:
IIF([Tipo de Stock].[Tipo de Stock].CurrentMember IS [Tipo de Stock].[Tipo de Stock].amp;[7] OR IsEmpty([Measures].[Movimento Valor]), NULL,
SUM({NULL:[Data].[Por Mês].PrevMember},[Measures].[Movimento Valor])
)
IIF([Tipo de Stock].[Tipo de Stock].CurrentMember IS [Tipo de Stock].[Tipo de Stock].amp;[7], NULL,
SUM({NULL:[Data].[Por Mês].PrevMember},IsEmpty([Measures].[Movimento Valor],0))
)
IIF([Tipo de Stock].[Tipo de Stock].CurrentMember IS [Tipo de Stock].[Tipo de Stock].amp;[7], NULL,
IsEmpty(SUM({NULL:[Data].[Por Mês].PrevMember},[Measures].[Movimento Valor]),0)
)
Я также попробовал использовать CoalesceEmpty вместо isEmpty.
Редактирование 2: я пытаюсь реализовать область видимости, и она возвращает значения в общем итоге, но значения представляют собой сумму всех строк. Идея в том, что общий итог имеет первое значение.
SCOPE([Measures].[Stock Inicial Valor]);
SCOPE([Data].[Por Mês].[Mês].members);
THIS = SUM({NULL:[Data].[Por Mês].PrevMember},[Measures].[Movimento Valor]);
END SCOPE;
END SCOPE;
Любой может помочь попасть на правильный путь.
Спасибо за всю вашу помощь.
Комментарии:
1. Если общий итог — это итог внизу, что находится в строках? Является ли этот
Por Mês
атрибут таким, что общий итог является элементом All для этого атрибута?2. Можете ли вы установить это бесплатное расширение Excel и запустить эту функцию, чтобы получить сообщение об ошибке? olappivottableextensions.github.io/View-Error-Message.html
Ответ №1:
Пожалуйста, попробуйте следующее:
IIF(
[Tipo de Stock].[Tipo de Stock].CurrentMember IS [Tipo de Stock].[Tipo de Stock].amp;[7]
OR [Data].[Por Mês].PrevMember IS NULL,
NULL,
SUM({NULL:[Data].[Por Mês].PrevMember},[Measures].[Movimento Valor])
)
Я подозреваю, что проблема в том, что {Null:Null} недопустимо, поэтому мы защищаемся от этого в новом операторе IIF.
Если проблема не в этом, пожалуйста, установите это бесплатное расширение Excel и используйте эту функцию, чтобы получить правильное сообщение об ошибке для дальнейшего устранения неполадок.
Комментарии:
1. Спасибо, Грег, я попробовал твое предложение, но безуспешно. Я пытаюсь реализовать область видимости, и она возвращает значения в общем объеме, но значения являются СУММОЙ всех строк. Идея в том, что общий итог имеет первое значение.
2. @RicardoCastro вы установили это расширение и зафиксировали ошибку за #VALUE! ячейка? Можете ли вы предоставить обновленный скриншот, показывающий, что вернули мои вычисления?
3. Привет, @Greg, Прежде всего, большое спасибо за вашу помощь. Однако я больше не получаю ошибку, используя область видимости, как я изложил ее в приведенном выше издании или в предложении, которое вы мне дали, добавить «[Дата]. [В месяц] .PrevMember РАВНО нулю», но Total возвращает сумму, когда то, что мне нужно в сумме, было значением первого элемента. Идея в том, что эта метрика возвращает начальный запас за месяц, и в целом я хотел получить значение первого просматриваемого месяца.