CUBEFUNCTIONS - 一个失败然后全部失败?

时间:2014-05-21 10:27:42

标签: excel ssas mdx cubefunctions

有没有人有在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)")

编辑

此工作簿还包含几个包含自定义集的数据透视表。使用以下设置保存这些集:

enter image description here

这会引起某种冲突吗?


编辑

另一个稍微复杂的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)"))

1 个答案:

答案 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)")

我没有看到与此有任何重大差异,因此请检查您的会员名称和括号是否存在任何小差异。