Mdx 是否可以在计算数据透视表列时使用外部字段?

Mdx 是否可以在计算数据透视表列时使用外部字段?,mdx,pivot-table,olap,cube,Mdx,Pivot Table,Olap,Cube,假设我们有一个数据透视表,它列出了一个学区的不同部门。(每个部门都是唯一的行) 每个部门投入的工时数是透视表的第二列 我想创建第三列,列出每个部门花费的“美元金额” “小时费率”问题不是用于生成数据透视表的多维数据集的一部分。。excel电子表格有一个手动编写的表,该表有两列(部门,小时费率) 我想知道是否可以使用olap mdx计算使用外部表格列“小时费率”?我想您是在问,是否可以在自定义度量值中添加某种查找功能,以查找电子表格中但不在多维数据集中的值。我认为这是不可能的 可能的情况如下 创建

假设我们有一个数据透视表,它列出了一个学区的不同部门。(每个部门都是唯一的行)

每个部门投入的工时数是透视表的第二列

我想创建第三列,列出每个部门花费的“美元金额”

“小时费率”问题不是用于生成数据透视表的多维数据集的一部分。。excel电子表格有一个手动编写的表,该表有两列(部门,小时费率)


我想知道是否可以使用olap mdx计算使用外部表格列“小时费率”?

我想您是在问,是否可以在自定义度量值中添加某种查找功能,以查找电子表格中但不在多维数据集中的值。我认为这是不可能的

可能的情况如下

创建一个透视表,查看您的多维数据集-这是我针对AdvWrks多维数据集的透视表:

现在,选中透视表后,点击此按钮:

现在,您可以添加标准的
vlookup
公式,并向下拖动右侧:

注意透视表的切片器是如何保留的——因此所有公式仍然链接到OLAP多维数据集

以上可能是您希望探索的某种解决方法……或者只是向多维数据集中添加更多信息


编辑

这不是一个非常优雅的解决方案,但它是一种将您的费率添加到枢轴中的方法:

在此处选择“MDX计算度量…”

然后,对于我的advWrks原型,我添加了这个
mdx

case 
when [Product].[Product Categories].CURRENTMEMBER IS [Product].[Product Categories].[Category].[Accessories] then 0.5 
when [Product].[Product Categories].CURRENTMEMBER IS [Product].[Product Categories].[Category].[Bikes] then 2.5 
when [Product].[Product Categories].CURRENTMEMBER IS [Product].[Product Categories].[Category].[Clothing] then 5
else 1
end
*[Measures].[Internet Sales Amount]
上述度量称为
fooBar
,现在可以与任何其他度量一起在枢轴中使用:


如果有600个类别,那么我的案例陈述将非常难看——但它似乎按照预期运行。

前面的答案给出了透视表的最佳选项。 XLCubed(完全公开,我为谁工作)是一个外接程序,它在olap连接的Excel中处理这种限制,下面详细介绍了您的场景。基本上是一个网格(相当于透视表)检索SSAS数据,然后您可以添加一个包含任何标准Excel公式的用户计算列,在您的示例中是一个vlookup:


我的回答有助于回答这个问题吗?(虽然我认为没有具体的答案,因为你所描述的是不可能的,所以解决方法可能是唯一的解决方案)嘿,谢谢你的答案,是的,问题是,如果我转换为公式,那么我失去了立方体的一些“力量”。。。我也无法将小时费率添加到多维数据集(业务流程)。。。因此有点卡住了。你说第二列是小时数-这是一个衡量标准吗?如果您使用的是最新的excel,那么我认为,您可以添加一个自定义度量,其中包含一个复杂的Case语句。我将尝试建模并添加到我的答案中。它并不漂亮,但很管用:让我添加一些截图,虽然这可以从理论上回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。