【问题标题】:Elegant way to use CUBEVALUE formula使用 CUBEVALUE 公式的优雅方式
【发布时间】:2015-05-19 16:40:00
【问题描述】:

我正在处理包含财务报告数据的多维数据集。它具有包含每月成本和收入数据的事实表,以及时间、分类帐、帐户、业务单位维度。我的目的是使用公式将 Cube 中的值检索到 Excel 中。我知道 Cubevalue 公式非常通用,您可以检索各种聚合级别的数据。但是,如果我要求特定的时间、分类帐、帐户和业务单位,我想要一个简单的公式来从多维数据集中获取值。我写了以下公式:

=CUBEVALUE("ServerAAA";"[Dim BU].[Business Unit].&[Company1]";"[Dim Ledger].[Ledger].&[AC]";"[Measures].[Amount ]";"[Dim Account].[Account Parent].&[P0168]";"[Dim Date].[CalHierarchy].[Mnd].&[2014]&[Jan]")

但这绝不是优雅的...我希望有类似的公式:

CUBEVALUE("ServerAAA";$B$2;$A$4;$A9;B$7;B8) 然后避免将 CubeMember 公式输入到引用的单元格中,只需输入诸如 Company1 for BusinessUnit、AC for Ledger、2014 和 Jan 之类的值为帐户定义时间,P0168。

正在考虑通过 VBA 创建用户定义的函数,但也许有更简单的解决方案???

【问题讨论】:

    标签: vba excel ssas cube


    【解决方案1】:

    如果没有任何维度重叠,您可以使用 CUBEVALUE 公式的简短版本。因此,如果基础维度 CompanyBusiness UnitAccountAccount Parent 等是唯一的,则可以使用建议的 CUBEVALUE("ServerAAA";$B$2;$A$4;$A9;B$7;B8) 版本。我的意思是所有可能出现的Account 可能只出现在这个维度中。如果任何Account 也可能出现在Parent Account 中,那么您建议的CUBEVALUE 公式的截断版本将不起作用,因为Excel 不知道您指的是Parent Account 还是Account 本身。

    我曾经遇到过同样的问题,发现 - 只要所有维度相互独立 - Excel 就可以判断您指的是哪个维度并自动按此维度进行过滤。

    【讨论】:

    • 非常有价值的意见拉尔夫!尝试仅用“[AC]”替换“[Dim Ledger].[Ledger].&[AC]”,它成功了!帐户按照您的建议提供了错误消息。你解释的有道理...我已经在帐户维度中设置了父子关系,所以我无法避免 AccountParent 列中的帐户多重准确性...
    • @arunas-jocius:如果这是您一直在寻找的答案,请关闭它。否则,请告诉我...
    • @arunas-jocius:没问题。只需转到this site and take the StackOverflow tour。不应该让你超过五分钟。像这样,您还将获得下一个badge:“知情”。
    猜你喜欢
    • 2013-11-14
    • 2019-05-09
    • 2017-08-27
    • 2010-10-12
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多