DAX kennt schon seit 2015 Variablen. Variablen in DAX helfen bei der Struktur von Formeln, wenn diese komplexer werden. Dieser Artikel zeigt, wie sie verwendet werden.
Syntax
Eine DAX-Formel beginnt mit einem Gleichheitszeichen oder einem Doppelpunkt gefolgt von einem Gleichheitszeichen (Power Pivot und Power BI agieren hier etwas anders). Eine einfache Formel lautet
Möchte man eine Variable nutzen, teilt sich die Formel in den Teil, in dem die Variable definiert werden und den Teil für die Definition der Rückgabe:
Jede Variable wir mit dem Schlüsselwort VAR eingeführt. Es gibt keine Datentypen, da DAX diese automatisch ableiten kann.
Inhalte einer Variable
Eine Variable kann einen skalaren Wert annehmen:
oder eine Tabelle:
In beiden Fällen kann man die Variable dann entsprechend verwenden:
Variablen in Formeln
Variablen können nicht nur auf oberste Ebene definiert werden, sondern überall, wo eine Expression gefordert ist:
Anderes Beispiel in einer SUMX-Formel:
SCOPE
Variablen können nur im selben oder in einem tieferen Scope verwendet werden. So kann man außerhalb einer Formel eine Variable definieren und diese in der Formel verwenden:
Verboten ist aber
Hier wurde die Variable anzPos in einem tieferen Scope deklariert. Die Variable ist außerhalb von SUMX nicht sichbar. Da Measures oder berechnete Spalten selbst auch Scopes sind, ist damit klar, dass man Variablen eines Measures oder einer berechneten Spalte nicht in einer anderen Measure/berechneten Spalte verwenden kann. Die Variablen sind dort nicht sichtbar.
Kommentar hinterlassen
M03_NewColum = VAR StartPos = 14 VAR NumOfChars = 'K_Auszuege'[M02_NumOfChars] - StartPos RETURN MID('K_Auszuege'[Buchungstext],StartPos,NumOfChars)
Sobald ich die Argumente mit Variablen angebe, die literale Zahlen beinhalten, arbeitet der Code Problemlos. M03_NewColum = VAR StartPos = 14 VAR NumOfChars = 25 RETURN MID('K_Auszuege'[Buchungstext],StartPos,NumOfChars)
Im DM ist die Spalte 'K_Auszuege'[M02_NumOfChars] Datentyp und Format Ganze Zahl. Wo bin ich falsch abgebogen? Danke im Voraus! :-)
Vielen Dank + freundliche Grüße, Sebastian Bohn
formatieren (Komma statt Semikolon).
Mehr Infos
(Semikolon statt Komma).
Mehr Infos
Löst das Ihr Problem?
Grüße Holger Gubbels
sorry für die späte Antwort (Urlaub). Und es funktioniert einwandfrei, vielen Dank!
Viele Grüße,
Sebastian Bohn