Relative Zellbezüge in Cube-Formeln
#1
Hallo zusammen,

ich hoffe jemand von euch kennt sich gut mit Cubeformeln in Kombination mit OLAP-Cubes aus.
Hier ein Link als Beispiel, falls euch Cubeformeln bis dato unbekannt sein sollten: https://www.projektmagazin.de/artikel/ex...onen_72211

In meinem Fall wird der OLAP-Cube von einer anderen Abteilung bereitgestellt.
Mein Ziel ist es eine Pivot-Tabelle zu erstellen, diese in Formeln zu konvertieren und diese Formeln dann zu dynamisieren (mittels Zellbezügen).
Die entstehenden Formeln sehen dann dann so aus:

Das hier ist die Formel für eine Dimension (auch erkennbar daran, dass die Formel CUBEELEMENT genutzt wird):

CUBEELEMENT("xyz999_mssqlserver_tab data_mart_order_R Model1";{"[fact_data_mart_order].[is_fixed].&[0]"."[company_order].[is_account_relevant].&[is relevant for account]"."[order_date].[order_year].&[2020]"."[order_date].[order_month].&[202006]"."[order_date].[order_date_id].&[20200601]"."[country_ext].[country_ext_short].&[CA]"."[orderidcode].[orderidcode].&[XYZ23G7]"})


Das hier ist die Formel für eine KPI bzw. einen konkreten Wert für eine ausgewählte Kennzahl, wobei der Bezug $G2 auf die obige Formel verweist:

CUBEWERT("xyz999_mssqlserver_tab data_mart_order_R Model1";$G2;H$1)

In H$1 wiederrum steht diese Formel: CUBEELEMENT("xyz999_mssqlserver_tab data_mart_order_R Model1";"[Measures].[Order Amount]")

Meine eigentliche Frage:

Wie ersetze ich die statischen Werte in den Formeln durch Bezüge bspw. 20200601 durch A1.

Wenn Cubeformeln basierend auf einem Power Pivot Datenmodell genutzt werden ist es simpel: "[order_date].[order_date_id].&["&A1&"]"
So ist es ja auch dem Link von weiter oben zu entnehmen.

Hier beruht die Pivot, aber eben nicht auf einem Power Pivot Datenmodell, sondern auf einem Datamart aus einem SQL Server --> und genau da bin ich überfragt.

Weiß jemand, ob vlllt einfach nur ein & bzw. "" mehr gesetzt werden muss damit der Bezug funktioniert?

Eine Beispieldatei kann ich leider nicht anhängen, da ich mittels fehlendem SQL Server auch leider kein Beispiel reproduzieren kann.

Hoffe jemand hat eine gute Idee :)

BG ruppy
Top
#2
Ich habe noch nie damit gearbeitet, aber Dein CUBEELEMENT() zeigt zwei Argumente, eins als String und das zweite als horizontales Stringarray. Diese Strings können natürlich genauso in Zellen A1:H1 hinterlegt werden, und dann zu =CUBEELEMENT(A1;B1:H1) führen.

Die Strings in den Zellen kannst Du natürlich genauso wie sonst auch aus Konstanten und/oder Variablen zusammensetzen.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#3
Hi LCohen,

richtig das ist eine Möglichkeit.

Der Einfachheit halber, habe ich es aber nun so gelöst:

CUBEWERT("xyz999_mssqlserver_tab data_mart_order_R Model1";
CUBEELEMENT("xyz999_mssqlserver_tab data_mart_order_R Model1";"[fact_data_mart_order].[is_fixed].&["&A1&"]");
CUBEELEMENT("xyz999_mssqlserver_tab data_mart_order_R Model1";"[company_order].[is_account_relevant].&["&A2&"]");
...
CUBEELEMENT("xyz999_mssqlserver_tab data_mart_order_R Model1";"[Measures].["&A3&"]"))

Konkret: Statt Arrays einfach mehrere Cube-Elemente. Dann können die Bezüge nämlich wie gewohnt gesetzt werden.
Erfordert zwar für jede Dimension ein Cubeelement, aber ist für mich am Einfachsten.

BG ruppy
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste