Excel CUBEVALUE 和 CUBESET 计数记录大于数字



我正在向工作簿的数据模型编写一系列查询,以按大于特定天数的Category_Name检索文档数(例如>=650(。

目前,此公式(在单元格C3中输入(返回单个Days Old值(=3(的正确数字。

=CUBEVALUE("ThisWorkbookDataModel",
"[Measures].[Count of Docs]",
"[EDD_Report].[Category_Name].&["&$B2&"]",
"[EDD_Report_10-01-18].[Days Old].[34]")

如何返回Days Old>=650的文档数?

工作表如下所示:

A            B             C
1  Date        PL        Count of Docs
2  10/1/2018   ALD             3
3  ...

更新:正如下面的@ama答案所建议的,步骤B中的表达式不起作用。

但是,我Days Old使用

=CUBESET("ThisWorkbookDataModel",
"{[EDD_Report_10-01-18].[Days Old].[all].[650]:[EDD_Report_10-01-18].[Days Old].[All].[3647]}")

包含此多维数据集的单元格作为原始 CUBEVALUE 公式的第三个Member_expression引用。现在的限制是,开始和结束的值必须是Days Old集的成员。

这是有限的,因为我希望对>=650进行更通用的测试,并且无法保证查询中将包含Days Old的特定值。

我第一次听说CUBE,所以你让我很好奇,我做了一些挖掘。绝对不是专家,但这是我发现的:

MDX 语言应允许您以{[Table].[Field].[All].[LowerBound]:[Table].[Field].[All].[UpperBound]}的形式提供值范围。

A. 获取条目总数:

D3 =CUBEVALUE("ThisWorkbookDataModel",
"[Measures].[Count of Docs]",
"[EDD_Report].[Category_Name].&["&$B2&"]"),
"{[EDD_Report_10-01-18].[Days Old].[All]")

B. 获取小于 650 的条目数:

E3 =CUBEVALUE("ThisWorkbookDataModel",
"[Measures].[Count of Docs]",
"[EDD_Report].[Category_Name].&["&$B2&"]"),
"{[EDD_Report_10-01-18].[Days Old].[All].[0]:[EDD_Report_10-01-18].[Days Old].[All].[649]}")

请注意,我发现了有关使用.[All].[650].lag(1)}的东西,但我认为要使其正常工作,您的数据可能需要排序?

C. 减法

C3 =D3-E3

或者,选择快速和肮脏:

=CUBEVALUE("ThisWorkbookDataModel",
"[Measures].[Count of Docs]",
"[EDD_Report].[Category_Name].&["&$B2&"]"),
"{[EDD_Report_10-01-18].[Days Old].[All].[650]:[EDD_Report_10-01-18].[Days Old].[All].[99999]}")

希望这有帮助,让我知道,我仍然很好奇!

最新更新