在Excel中创建MDX度量以基于另一个维度计算一个维度的成员

问题描述 投票:0回答:1

我正在尝试在Excel中创建一个MDX度量(在OLAP工具中),它将计算另一个维度中每个其他项目的成员数量。由于我不知道MDX和OLAP多维数据集的确切语法和符号,我将尝试简单地解释我想要做的事情:

我有一个基于OLAP多维数据集的数据透视表。我有一个存储在一个维度的机器编号字段,即“父”,每个机器编号都有许多文章(在某段时间内)。这些文章由订单号表示。这些数字存储在另一个维度中。我希望该措施可以计算每个机器号的订货号。

所以表格如下:

+------------------+----------------+
| [Machine Number] | [Order Number] |
+------------------+----------------+
| Machine001       |                |
|                  |      111111111 |
|                  |      222222222 |
|                  |      333333333 |
| Machine002       |                |
|                  |      444444444 |
|                  |      555555555 |
|                  |      666666666 |
|                  |      777777777 |
+------------------+----------------+

我希望结果如下:

+------------------+----------------+------------+
| [Machine Number] | [Order Number] | [Measure1] |
+------------------+----------------+------------+
| Machine001       |                |          3 |
|                  |      111111111 |            |
|                  |      222222222 |            |
|                  |      333333333 |            |
| Machine002       |                |          4 |
|                  |      444444444 |            |
|                  |      555555555 |            |
|                  |      666666666 |            |
|                  |      777777777 |            |
+------------------+----------------+------------+

我也尝试过使用带有EXISTING的COUNT函数,但它不起作用(每台机器总是显示1或相同的错误编号)。我相信我必须以某种方式将这两个维度连接在一起,因此订单号依赖于机器编号,但缺乏关于MDX和OLAP多维数据集的知识我甚至不知道如何询问Google如何做到这一点。提前感谢任何提示和解决方案。

excel pivot-table mdx compass-sass olap
1个回答
1
投票

基本上你的问题是,你有两个不同维度的属性。您想要检索这些属性的有效组合,还希望根据第一个属性的值计算sceond属性中可用的属性值的数量。

基于上述问题陈述,在OLAP多维数据集中,事实表或度量定义了与Measure \ Fact-Table链接的不同维度的属性之间的关系。看一下下面的例子。(我使用过SSAS示例db Adventureworks)

- 我试图找到为每个产品类别提供的促销活动。选择[测量]。[互联网销售额]列,[[产品]。[类别]。[类别],[促销]。[促销]。[促销])来自[Adventure Works]的行

结果enter image description here结果是所有产品类别和促销的交叉产品。现在让我们让立方体返回有效的组合。

select 
[Measures].[Internet Sales Amount]
on columns,
nonempty(
([Product].[Category].[Category],[Promotion].[Promotion].[Promotion])
,[Measures].[Internet Sales Amount])
on rows
from 
[Adventure Works]

结果enter image description here

现在我们表示它只需要返回有效的组合。请注意,我们提供了一个属于连接两个维度的事实的度量。现在让我们来算吧

with member 
[Measures].[test]
as
count(
nonempty(([Product].[Category].currentmember,[Promotion].[Promotion].[Promotion]),[Measures].[Internet Sales Amount])
)

select 
[Measures].[Test]
on columns,
[Product].[Category].[Category]
on rows
from 
[Adventure Works]

结果enter image description here

替代查询

with member 
[Measures].[test]
as

{nonempty(([Product].[Category].currentmember,[Promotion].[Promotion].[Promotion]),[Measures].[Internet Sales Amount]) }.count

select 
[Measures].[Test]
on columns,
[Product].[Category].[Category]
on rows
from 
[Adventure Works]
© www.soinside.com 2019 - 2024. All rights reserved.