Cube Funktionen in Excel 2007 & 2010

In der letzten Woche kam während eines SSAS Workshops die Frage nach dem Sinn der Cube Funktion in Excel 2007 & 2010 auf. Zwar war den meisten Teilnehmern die Existenz der Funktionen bekannt, da sie diese über den Menüpunkt "In Formeln konvertieren" in Excel (s. Screenshot) kannten, aber bisher hatte kein Teilnehmer Erfolg dabei einen Bericht von Grund auf mit den Funktionen zu erstellen.

image

Die offizielle Online Hilfe von Microsoft kennt zwar die Funktionen, aber die Beschreibung der Funktionsweise als auch die Beispiele dort sind eher knapp gehalten bzw. leider auch ein wenig substanzlos.

Welche Funktionen für die Arbeit mit Analysis Services Cubes kennt ein Excel überhaupt? Das lässt sich leicht herausfinden. Einfach mal "=cube" in eine Zelle eingeben. Die AutoVervollständigen Funktion von Excel zeigt uns alle Excel Funktionen an.

image

Das sind ganze 7 Excel Funktionen. Fangen wir mit einem einfachen Beispiel für CUBEWERT an. Dazu geben wir in eine Zelle "=cubewert(" ein.

image

Als ersten Parameter benötigen wir eine Verbindung. Nach der Eingabe eines Anführungszeichen bekommen wir eine Auswahl aller gespeicherten Verbindungen zu Analysis Services Würfeln.

image

Wie kommt aber Euer Excel nun an eine solche Verbindung? Wenn Ihr von einer leeren Arbeitsmappe aus startet, dann kennt diese noch keine Verbindungen. Verbindungen werden über den Tab "Daten" und den Punkt "Verbindungen" hinzugefügt.

image

Und die vorhandenen Verbindungen entstehen, wenn Ihr Euch schon mal mit Würfeln verbunden habt. Dazu ist dieser Dialog im Datenverbindungs-Assistent. Der kommt Euch sicher bekannt vor.

image

Aber zurück zu unserem CUBEWERT Beispiel. Wir wählen nun eine Verbindung aus indem wir die "Tab"-Taste drücken und mit Anführungszeichen die Bezeichnung der Verbindung abschließen.

image

Nun noch ein Semikolon und Excel erwartet den nächsten Parameter. Geben wir erst mal wieder Anführungszeichen ein.

image

Was ist das? Das sind ja alle Dimensionen unseres Cubes! Wie hilfreich! Wählen wir erst mal "[Date]" aus. Einfach mit den Cursortasten markieren und wieder die "Tab"-Taste betätigen. Und nun? Einfach mal einen Punkt eingeben.

image

Und schon sind wir auf dem nächsten Level der Hierarchie der Date Dimension. Dort wählen wir nun "[Date].[Calendar]" aus. Zum Abschluss geben wir noch ".&[2003]")" ein, da uns das Jahr 2003 interessiert. Eine andere Art der Auswahl gibst gleich.

image

Mit der Enter-Taste bestätigen wir die Eingabe der Formel. Bei mir erscheint nun folgendes:

image

Cool! Nur was sagt uns dieses Ergebnis? Wir haben doch bisher nur ein Jahr angegeben und nichts weiter. Woher weiß denn Excel nun was wir wollen? Eigentlich weiß Excel rein gar nichts über unsere Absichten. Das Ergebnis kommt direkt von den Analysis Services und zeigt den Wert des Default Measures "Reseller Sales Amount" an. Starten wir kurz den SQL Profiler und schauen uns mal die MDX Query an, welche Excel absendet für diese Abfrage. Dieses mal interessiert uns das Jahr 2004.

image

Hier die MDX Query im Detail:

SELECT {([Date].[Calendar Year].&[2004])} ON 0 FROM [Adventure Works] CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS

Auch hier steht nichts vom dem Measure, welches uns tatsächlich interessiert. In unserem Beispiel soll es um den "Internet Sales Amount" gehen. MDX ist bekanntlicherweise nicht ganz einfach und denkt sich schon mal seinen Teil, wenn etwas weggelassen wird. Warum stresse ich diesen Punkt hier? Wenn ich mit den Cube Funktionen arbeiten möchte, dann sind zumindest Grundkenntnisse in MDX hilfreich!

Und MDX ist u.a. die Kunst des Weglassens.

Aber wieder zurück in die Zelle mit unserer Formel. Bearbeiten wir unsere Formel und ergänzen diese mit einem Semikolon um den Wunsch nach einem weiteren Parameter.

image

Nun steuern wir die Dimension [Measures] an. Moment mal, warum denn die Dimension Measures? Teilt sich ein Cube nicht in Dimensionen und Measures auf? Nun ja, noch ein Beweis dafür, dass wir auf der dunklen Seite der Macht unterwegs sind. Für MDX sind Measures nichts weiter als eine Art weitere Dimension! Wählen wir den "Internet Sales Amount" aus.

image

Hmm, langsam wir die Formel recht lang.

image

Aber wir bekommen nun unseren Wert.

image

Kurz in der klassischen Pivot Darstellung überprüft:

image

Stimmt! Und was dem geneigten Leser vielleicht aufgefallen ist, ist die Tatsache, dass auch bei den Cube Funktionen die Formatierung als Währung mit übergeben wurde vom Cube. Wie praktisch.

Nun wollen wir den Wert noch weiter filtern. Also Formel wieder bearbeiten und durch ein weiteres Semikolon einen weiteren Parameter beginnen. Die Eingabe der Anführungszeichen bringt uns wieder in die Auswahlbox. Hier wählen wir "[Customer]" und geben wieder einen Punkt an für den nächsten Level. Das machen wir bis wir "[Customer].[Customer Geography].[All Customers].[Germany]" zusammen haben.

image

Wie Ihr seht, kommen wir auch direkt an die Länder innerhalb der Dimension. Wie komfortabel! Darüber hätten wir weiter oben übrigens auch das Jahr auswählen können. Ihr erinnert Euch?

image

Wir können also direkt die Formel bearbeiten oder quasi alles das AutoVervollständigen erledigen lassen. Wie ist eigentlich nun unser Wert?

image

Schick! Und, stimmt er? Schnell wieder ein klassisches Pivot genutzt.

image

Strike! Was für ein Spaß, oder? Wenn wir uns nun vorstellen, dass wir noch weitere Dimension schneiden wollen, dann stellt sich schnell die Frage nach dem Nutzen der Cube Funktionen. Das ist doch recht umständlich!?!

Wenn wir so weitermachen würden wie bisher, dann ist das tatsächlich recht mühsam und auch ohne echten Nutzen in Excel. Aber wir haben uns bisher ja auch nur eine von 7 Funktionen angeschaut. Und wie so häufig liegt der Nutzen in der Kombination!

Kommen wir zur Excel Funktion CUBEMENGE. Laut Doku bekommen wir damit einen berechneten Satz von Elementen oder Tupeln. Na super, probieren wir das mal aus. Die Basics kennen wir ja schon.

image

Jetzt brauchen wir einen Mengen Ausdruck? Ok, schauen wir mal.

image

So, und das ergänzen wir jetzt noch um ein ".children".

image

Damit sollten wir, sofern mich meine MDX Kenntnisse nicht komplett verlassen haben, ein Set (Menge) bekommen. Und los! Und was kommt dabei raus?

image

Nee, schon klar. Was ist das jetzt? Ein Set! Wie soll auch Excel eine unbekannte Anzahl an Daten in nur einer Zelle darstellen? Nur was soll das dann? Und wie bekommen wir raus, was sich dort befindet?

Als erstes nutzen wir mal den Parameter, um eine Beschriftung zu hinterlegen.

image

Damit haben wir nun zumindest dort was stehen.

image

Aber was steckt da nun hinter? Nehmen wir gleich mal die nächste Cube Funktion und zwar CUBEMENGENANZAHL. Diese braucht nur einen Parameter und zwar eine Menge. Das trifft sich gut, da wir ja gerade eine über. Also los.

image

Und was kommt raus?

image

In unserer "unsichtbaren" Menge stecken also 6 Elemente. Schauen wir uns diese mal an. Und dazu kommt gleich die nächste Cube Funktion ins Spiel und zwar CUBERANGELEMENT.

image

Auch brauchen wir wieder eine Menge (F8) und einen Rang, sprich die Ansage das wievielte Element unserer Menge wir haben wollen. Und was ist das erste Element?

image

Ok, das ist doch schon mal was. Holen wir uns die restlichen fünf Elemente dazu. Und damit wir den Rang nun nicht manuell durchzählen, legen wir erst mal eine Zahlenreihe daneben. Dann können wir die Formel gleich schön runterziehen. Statt mit der Zahlenreihe zu arbeiten wäre auch die Verwendung von ZEILE(A1) möglich. Das ist ein alter Excel Trick, um aus dem nichts eine Zahlenreihe innerhalb von Formeln zu erzeugen. Aber zurück zu unserem Beispiel.

image

Cool, nun haben wir schon unsere Vertriebsgebiete.

Ein paar Zahlen wären nun ganz nett, oder? Da kommt unser alter Freund CUBEWERT wieder ins Spiel. Aber vorher sollten wir nur noch kurz festlegen welche Measures wir sehen wollen. Das können wir ebenfalls hinterlegen. Wir nutzen wir dafür die Cube Funktion CUBEELEMENT.

image

Nehmen wir wieder unseren "Internet Sales Amount".

 image

Und die "Internet Freight Cost" haben wir gleich daneben gelegt. Was haben wir denn nun davon außer einer Überschrift? Das sehen wir, wenn wir nun endlich die CUBEWERT Funktion nutzen.

image

Nun bauen wir uns nämlich die Parameter einfach ein. Zuerst kommt das Gebiet.

image

Und das erste Measure. Und damit haben wir für den Moment bereits alles zusammen. Das ging doch nun viel schneller, oder?

image

Damit haben eine Zahl! Nun die Formel auf die restlichen Zellen kopieren und schon haben wir den Rest!

image

Das ging doch nun richtig schnell, oder? Glückwunsch, damit sind wir schon recht weit gekommen. Alles was uns für den Moment fehlt ist ein wenig Interaktivität, oder?  Dazu nutzen wir Filter vom PivotTable ohne die starre Struktur eines solchen zu verwenden. Wie das? Dafür fügen wir an einer freien Stelle einen PivotTable basierend auf der bisher auch verwendeten Verbindung ein. Warum eine freie Stelle? Sonst wird unsere bisherige Arbeit überschrieben!

image

Da ist nun unser PivotTable. Was machen wir nun damit?

image 

Wir fügen in den Berichtsfilter die Hierarchien "Date Calendar" und "Produkt Categories" ein. Das war es schon! Dann markieren wir die beiden Filterzeilen und verschieben diese über unsere Tabelle.

image

Es liegt Business Intelligence in der Luft, oder? Nun noch schnell die CUBEWERT Formeln erweitern um die beiden Filter (G5 & G6). Und schön auf alle Zellen kopieren.

image

Und nun können wir die Filter nutzen.

image

Und die Auswahl wirkt sich jeweils sofort auf unsere Zahlen aus! 

image

Damit haben wir nun in unserem Arbeitsblatt die Möglichkeit geschaffen direkt auf Cube Daten zuzugreifen ohne die starre Struktur einer PivotTable. Des Weiteren haben wir gleich noch zwei interaktive Filter eingebaut. Das ist schon mal gutes Handwerkszeug, um anspruchsvollere Controllingaufgaben zu meistern. Nun können wir eine weitere Dimensionen hinzufügen und noch ein kleines Chart. Die notwendige Basis dafür haben wir schon geschaffen.

image

Das mag von der Komplexität und der nötigen Zeit her aufwändig erscheinen, aber mit ein klein wenig Übung geht das schnell und zügig von Hand und der Excel Profi wird diese Möglichkeit einfach und schnell mit immer aktuellen Zahlen zu arbeiten nicht mehr missen wollen. Wann immer sich die Daten im Analysis Services Cube ändern bzw. weitere Daten dazu kommen, werden auch die Informationen im Arbeitsblatt aktualisiert.

Ich hoffe, dass ich dem einen oder anderen mit dieser Schritt-für-Schritt Anleitung einen Einstieg in die Arbeit mit den Cube Funktionen von Excel ermöglicht habe. Viel Freude damit!

  • Kommentar von: cmu
    12.05.10 @ 14:29:25

    Hallo Sascha, ich sehe leider keine Images, sondern nur rote X! ? ! Gruß Christoph

  • Kommentar von: Frank Kalis
    12.05.10 @ 15:57:36

    Hm, ich sehe die Bilder in Firefox und IE, egal ob ich angemeldet bin oder als anonymer Besucher das Blog betrachte... -- Gruss, Frank

  • Kommentar von: cmu
    12.05.10 @ 17:16:56

    Perfekt! Zu Hause sehe ich auch alles! Ausprobieren kann ich es aber nur in der Firma! Mist! ;-)) Gruß Christoph

  • Kommentar von: Frank Kalis
    12.05.10 @ 21:28:22

    Na klasse! :-)

  • Kommentar von: tosc
    12.05.10 @ 22:06:02

    äh - *** auf die X, das ist ein verdammt guter beitrag, und der längste! ... warum kann ich den nicht bewerten???? Sascha, DANKE!

  • 5 stars
    Kommentar von: Frank Kalis
    13.05.10 @ 21:44:58

    Na, so was... Da ist ja das Bewertungsfeature! ;-)

  • 5 stars
    Kommentar von: tosc
    18.05.10 @ 20:15:35

    Das hatte ich vergessen, Sascha! ***** CU tosc

  • 5 stars
    t to the p
    Kommentar von: t to the p
    02.08.11 @ 13:49:28

    Super Beitrag! Kurze Frage noch dazu, kann man eine Dimension (z.B. "Internet Sales Amount") auch durch eine Zellreferenz ersetzten? Z.B eine Zelle in welcher der Text "Internet Sales Amount" steht. Ich habe es bei mir versucht, aber leider kein Erfolg. Grüße

  • 5 stars
    Frank
    Kommentar von: Frank
    11.08.11 @ 20:02:42

    Super ! Ist echt einfach und verständlich geschrieben....hab' sogar ich verstanden :-)

  • Patrick Möws
    Kommentar von: Patrick Möws
    09.03.13 @ 12:58:47

    Hallo, besteht eventuell die Möglichkeit, über den Datenverbindungs Assistent direkt auf Datev (Buchhaltuns-Software) zuzugreifen, so das ich dann im nächsten Schritt aus diesen Daten Cubes erzeugen kann? Wenn das gehen sollte was muss ich im Datenverbindungs Assistent hinterlegen nicht? Über Feedback bin ich sher dankbar. Gruss Patrick

  • 4 stars
    Flo
    Kommentar von: Flo
    29.04.13 @ 15:18:40

    Funktioniert das nur nativ mit dem MSSQL oder kann als Datenquelle auch eine beliebige ODBC-Datenquelle dienen? Grüße, Flo CEO | http://www.lelala.de

Einen Kommentar hinterlassen

Sie müssen eingeloggt sein, um einen Kommentar zu hinterlassen. Jetzt einloggen!

Sie haben noch kein Konto. Sie können sich jetzt registrieren...
(Es dauert nur ein paar Sekunden!)