我正在向工作簿的数据模型编写一系列查询,以按大于特定天数的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]}")
希望这有帮助,让我知道,我仍然很好奇!