我正在处理包含财务报告数据的多维数据集。它有每月成本和收入数据的事实表,以及时间,分类帐,帐户,BusinessUnit维度。我的目的是使用公式从Cube中检索值到Excel。我知道Cubevalue公式非常通用,您可以检索各种聚合级别的数据。但是,如果我要求特定的时间,分类帐,帐户和BusinessUnit,我希望有一个简单的公式来从多维数据集中获取值。我写了以下公式:
= CUBEVALUE(" ServerAAA&#34 ;;" [Dim BU]。[业务单位]。& [Company1]";" [Dim Ledger]。[Ledger ]。& [AC]";" [措施]。[金额]";" [昏暗帐户]。[帐户家长]。& [P0168]&#34 ;" [Dim Date]。[CalHierarchy]。[Mnd]。& [2014]& [Jan]")
但这绝不是优雅......我希望有这样的公式:
CUBEVALUE(" ServerAAA&#34 ;; $ B $ 2; $ A $ 4; $ A $; B $ 7; B8)然后避免将CubeMember公式输入到引用的单元格中,只需为BusinessUnit输入类似于Company1的值,AC为Ledger,2014年和1月定义时间,P0168为帐户。
考虑通过VBA创建用户定义的功能,但也许有更简单的解决方案???
答案 0 :(得分:0)
如果没有任何尺寸重叠,您可以使用CUBEVALUE公式的简短版本。因此,如果基础维度df = sql.read_frame(sqlr, conn) # You can directly read a table as dataframe
,CUBEVALUE("ServerAAA";$B$2;$A$4;$A9;B$7;B8)
,Company
,Business Unit
等是唯一的,则可以使用建议的Account
版本。我的意思是Account Parent
的所有可能的出现都可能只出现在这个维度上。如果任何Account
也可能出现在Account
中,那么您建议的CUBEVALUE公式的截断版本将无效,因为Excel不知道您是指Parent Account
还是Parent Account
本身。
我曾经遇到过同样的问题并发现 - 只要所有维度彼此独立 - Excel就可以告诉您所指的维度,并自动按此维度进行过滤。