有没有人有在Excel中编写CUBE *函数的经验?
我正在通过这些函数针对OLAP db
编写这些函数并在数据库中触发MDX
字符串。
似乎在某些情况下,如果其中一个函数失败并返回#NA,那么它们都会失败。
是否存在不应在这些MDX
函数中使用的特定Excel
函数?
以下是一些例子:
1。 MDX字符串:
PARALLELPERIOD([Date].[Date - Calendar Month].[Calendar Year],1,TAIL([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0))
立方体功能:
=CUBESET("connectionToCube","PARALLELPERIOD([Date].[Date - Calendar Month].[Calendar Year],1,TAIL([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0))")
2。 MDX字符串:
TAIL([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0)
立方体功能:
=CUBEMEMBER("connectionToCube","TAIL([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0)")
编辑
此工作簿还包含几个包含自定义集的数据透视表。使用以下设置保存这些集:
这会引起某种冲突吗?
编辑
另一个稍微复杂的MDX字符串就是我用来捕捉过去7天之前7天的时间段:
MDX:
Tail([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0).lag(7):Tail([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0).lag(13)
CUBE * FUNCTION:
=CUBESET("LiveDealer_LiveDealer2",("Tail([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0).lag(7):Tail([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0).lag(13)"))
答案 0 :(得分:1)
我还没有找到任何我无法在Excel立方体功能中使用的MDX功能。我尝试了针对AdventureWorks Tabular模型的多维数据集函数的变体,它们运行良好。在第一个例子中你有:
=CUBESET("connectionToCube","PARALLELPERIOD([Date].[Date - Calendar Month].[Calendar Year],1,
TAIL([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0))")
在AW表格模型中,日期层次结构称为日历,具有年,学期,季度,月,日等级。我的立方体功能是:
=CUBEMEMBER("AWCube","PARALLELPERIOD([Date].[Calendar].[Year],1,
TAIL([Date].[Calendar].[Day].MEMBERS,1).item(0))")
我不确定你为什么选择在那里使用cubeset。你总是只返回一个项目,所以我把它变成了一个立方体成员,所以它会直接返回成员而不必为它添加标题。如果你在这里使用一个立方体集并且没有标题,它将在Excel中返回一个空白单元格,但它正在工作。您可以使用该多维数据集集在Excel中编写cuberankedmember函数来检查。
在你的第二个例子中,你有:
=CUBEMEMBER("connectionToCube",
"TAIL([Date].[Date - Calendar Month].[Calendar Day].MEMBERS,1).item(0)")
我的公式是:
=CUBEMEMBER("AWCube",
"TAIL([Date].[Calendar].[Day].MEMBERS,1).item(0)")
我没有看到与此有任何重大差异,因此请检查您的会员名称和括号是否存在任何小差异。