2016-04-29 128 views
3

我们使用Excel来访问SSAS Olap立方体。我们使用Excel表格中定义的一些计算出的度量。如何在MDX计算度量上使用Excel单元格?

在其中的一个,我们需要使用一个特定的单元格中输入的用户价值。

[Measures].[Sales]*$a$10 

我们找不到任何办法做到这一点。任何想法?

编辑

,因为它似乎我们不能找到一个解决方案,我们正在考虑建立一个新表与有效值(这是一个有限的短名单),并把它们作为一个过滤器,这样我们就可以使用公式中的值。 我无法想象如何做到这一点,因为这将是一个与立方体中任何其他表格无关的表格...... 这是否有任何意义?

编辑:解决了,见下文。

+0

在$值$ 10可以改变? – whytheq

+0

是的,当然!否则,我可以在公式中写入常量值:) – DeepButi

回答

1

haha​​hahahah ....这可能是很长时间以来我最疯狂的想法...但它的工作原理!

我们刚刚创建的Excel宏!,重建的计算度量时指定的细胞变化:

ActiveWorkbook.Connections(_ 
    "MyHost MyOLAP MyCube").OLEDBConnection. _ 
    CalculatedMembers("[Measures].[MyFormula]").Delete 
ActiveWorkbook.Connections(_ 
    "MyHost MyOLAP MyCube").OLEDBConnection. _ 
    CalculatedMembers.AddCalculatedMember Name:="[Measures].[MyFormula]", _ 
    Formula:=Array("[Measures].[Sales]*" & Range("d1").Value), _ 
    Type:=xlCalculatedMeasure,SolveOrder:=0, ParentHierarchy:= _ 
    "[Measures]", NumberFormat:=xlNumberFormatTypeDefault 
ActiveSheet.PivotTables("MyPivotTable").RefreshTable 

:) :)

相关问题