Freitag, 11. Mai 2012

PowerPivot und Spracheinstellungen

Die Anpassung von Excel an die Landessprache (Lokalisierung) hat ja immer wieder mal für Merkwürdigkeiten gesorgt. Leider trifft das auch auf PowerPivot zu, wie ich jetzt feststellen musste.

Das Problem

Bei DAX-Funktionen werden die Parameter durch Kommas getrennt. So wird das auch in der Hilfe dokumentiert. Aber es funktioniert nicht mit einer deutschen Excel Version auf einem deutschen Betriebssystem. Ursache ist das Komma als Trennzeichen - in der deutschsprachigen Umgebung erwartet PowerPivot stattdessen ein Semikolon!

Die Lösung

Es gibt keine - in einer deutschsprachigen Umgebung müssen Sie das Semikolon als Trennzeichen zwischen Funktionsparametern verwenden und in einer englischsprachigen Umgebung das Komma. (Andere Sprachen habe ich nicht ausprobiert.)
Umso wichtiger ist es, die Besonderheiten zu kennen und damit sicher umzugehen.

Dialog hinter dem Menüpunkt PowerPivot - Einstellungen
  • Es gibt in Excel auf dem PowerPivot-Menü einen Punkt "Einstellungen". Damit können Sie die Sprache wählen, mit der das PowerPivot-Menü und das PowerPivot Fenster angezeigt werden. Auf das Trennzeichen hat diese Einstellung aber keinen Einfluss.
  • Wenn Sie eine Excel Datei mit einem PowerPivot Modell, die Sie in einer deutschsprachigen Umgebung erstellt haben, in eine englischsprachige Umgebung kopieren und dann weiter bearbeiten, wartet Excel mit einer Überraschung auf: Die Semikolons wurden automatisch in Kommas umgewandelt.Umgekehrt funktioniert das entsprechend - dann werden die Kommas automatisch in Semikolons umgewandelt.
  • Etwas merkwürdig wird das Verhalten, wenn Sie eine PowerPivot Lösung mit Data Tools (Visual Studio) in ein BISM Tabular Modell konvertieren. Die Abfragen funktionieren einwandfrei, aber wenn Sie mit den Data Tools dann DAX Ausdrücke bearbeiten, müssen Sie erst einmal alle Semikolons von Hand durch Kommas ersetzen. Das scheint bei den Data Tools immer erforderlich zu sein - unabhängig von der Sprache.
Soweit ich in Erfahrung bringen konnte, ist dieses Verhalten so beabsichtigt und soll auf absehbare Zeit auch beibehalten werden.

Donnerstag, 10. Mai 2012

DAX- und MDX-Ausdrücke schnell und einfach formatieren

Wie haben wir nur damals gearbeitet, als es das Internet noch nicht gab? Heute wünscht man sich einfach etwas, fragt eine Suchmaschine und bekommt seinen Wunsch erfüllt.

Das Problem

So arbeite ich heute mit komplexeren DAX Ausdrücken und wünsche mir dringend eine Möglichkeit, diese schön formatiert zu sehen. Bei der Eingabe eines Ausdrucks für ein Measure kommen schnell ein paar Schachtelungsebenen zusammen und da fällt es schwer den Überblick zu behalten.

Die Lösung

Freundlicherweise stellt Microsoft eine Website genau hierfür bereit: Unformatierten Ausdruck über die Zwischenablage einfügen, formatieren lassen und das schöne Ergebnis über die Zwischenablage wieder herausholen. Das folgende Bild sagt mehr als alle Worte:
Oben der unformatierte Ausdruck und unten derselbe Ausdruck nach dem Formatieren

Diesen hilfreichen Service finden Sie hier:
http://formatmdx.azurewebsites.net/

Dienstag, 1. Mai 2012

PowerPivot: Verknüpfte Tabelle und boolsche Daten

PowerPivot ist schlau, sehr schlau. Manchmal zu schlau für mich.

In diesem Fall hatte ich eine importierte Tabelle, zum Beispiel die SalesOrderHeader Tabelle aus der AdventureWorks Datenbank. Diese Tabelle enthält eine Spalte OnlineOrderFlag, die anzeigt, ob eine Bestellung über den Internet-Shop stammt oder nicht. Entsprechend enthält sie den Wert 1 oder 0.
Originaldaten in der Datenquelle

Nach dem Import stellt sich das in der PowerPivot Tabelle so dar:
Daten nach dem Import in PowerPivot

Die Werte 1 hat das Programm automatisch durch TRUE ersetzt und 0 durch FALSE.

So weit, so gut.

Etwas später wollte ich das Modell um eine verknüpfte Tabelle erweitern. In diesem Fall eine Lookup-Tabelle für den Wert von OnlineOrderFlag, um einen sprechenden Text (zum Beispiel "Online Order" oder "Reseller Order") anstelle von TRUE oder FALSE anzuzeigen.
Excel-Tabelle, die als verknüpfte Tabelle im PowerPivot Modell verwendet werden soll.

Das Problem

Nach dem Herstellen einer Beziehung zwischen OnlineOrderFlag in Tabelle SalesOrderDetail und OnlineOrderFlag in der Lookup-Tabelle sieht erst einmal alles gut aus.
Beziehung zwischen SalesOrderHeader und der verknüpften Lookup-Tabelle
Aber beim Auswerten der Tabelleninhalte in einer Pivot-Tabelle stellen sich Zweifel an der Richtigkeit des Ergebnisses ein: die Beziehung zwischen den beiden Tabellen funktioniert einfach nicht.

Die Lösung

Bei einer deutschsprachigen Version von Excel ist es erforderlich, in der verknüpften Lookup-Tabelle die Werte 1 und 0 einzutragen - so, wie sie auch in der Datenbank-Quelltabelle SalesOrderHeader stehen. Dann funktioniert die Beziehung zwischen SalesOrderHeader und der Lookup-Tabelle OnlineOrderFlag.

Mit den Werten TRUE und FALSE oder WAHR und FALSCH funktioniert die Beziehung nicht.

Die größte Merkwürdigkeit

Wenn Sie dasselbe mit einer englischsprachigen Version von Excel ausprobieren, dann klappt es sowohl mit den Werten 1 und 0 als auch mit TRUE und FALSE!
Ganz offensichtlich verhält sich die deutsche Version in diesem Punkt anders als die englischsprachige. Das muss man wirklich wissen...

Die Umgebung

Die beschriebenen Erfahrungen habe ich mit dem PowerPivot Add-In 11.0.2100.60 für Excel 2010 gemacht. Ich hoffe, dass Microsoft in künftigen Versionen diesen verwirrenden kleinen Unterschied beseitigen wird.