2016-04-29 7 views
3

Wir verwenden Excel, um auf einen SSAS Olap Cube zuzugreifen. Wir verwenden einige berechnete Maße, die auf dem Excel-Blatt definiert sind.Wie verwende ich eine Excel-Zelle für eine MDX-berechnete Kennzahl?

Auf einem von ihnen benötigen wir einen Benutzerwert auf einer bestimmten Zelle eingegeben verwenden.

Art

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

Wir können jede Art und Weise, es zu tun nicht finden können. Irgendeine Idee?

bearbeiten:

Wie es scheint, dass wir eine Lösung finden können, haben wir eine neue Tabelle mit den gültigen Werten zu erstellen dachten (es ist eine endliche kurze Liste) und sie als Filter verwenden, so konnten wir Verwenden Sie den Wert für die Formel. Ich kann nicht vorstellen, wie das zu tun, weil es sich um eine Tabelle nicht mit irgendeiner anderen Tisch im Würfel würde ... Hat das Sinn machen?

bearbeiten: gelöst, siehe unten.

+0

der Wert in $ 10 $ ändern? – whytheq

+0

Ja, sicher! Sonst könnte ich den konstanten Wert in die Formel schreiben :) – DeepButi

Antwort

1

hahahahahah .... das ist wohl die verrückteste Idee, die ich seit langer Zeit hatte ... aber es funktioniert!

Wir haben gerade einen Excel-Makro !!, die die berechnete Kennzahl, wenn die angegebenen Zellveränderungen neu erstellt:

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 

:) :)