In einem Datenmodell ist jeder Spalte ein Datentyp zugeordnet, der den Datentyp angibt, der in der Spalte enthalten sein kann: ganze Zahlen, Dezimalzahlen, Text, Währungsdaten, Datums- und Uhrzeitangaben usw. Der Datentyp bestimmt außerdem, welche Arten von Operationen Sie für die Spalte ausführen können und wie viel Arbeitsspeicher zum Speichern der Werte in der Spalte benötigt wird.
Wenn Sie das Power Pivot-Add-In verwenden, können Sie den Datentyp einer Spalte ändern. Möglicherweise müssen Sie dies tun, wenn eine Datumsspalte als Zeichenfolge importiert wurde, es sich aber um etwas anderes handeln muss. Weitere Informationen finden Sie unter Festlegen des Datentyps einer Spalte in Power Pivot.
Inhalt dieses Artikels
Zusammenfassung der Datentypen
In der folgenden Tabelle sind die in einem Datenmodell unterstützten Datentypen aufgeführt. Wenn Sie Daten importieren oder einen Wert in einer Formel verwenden, werden die Daten in einen dieser Datentypen konvertiert, selbst wenn die ursprüngliche Datenquelle einen anderen Datentyp enthält. Werte, die sich aus Formeln ergeben, verwenden ebenfalls diese Datentypen.
| Datentyp in Excel | Datentyp in DAX | Beschreibung |
|---|---|---|
| Ganze Zahl | Eine 64-Bit-Ganzzahl (acht Bytes) 1, 2 | Zahlen ohne Dezimalstellen. Ganzzahlen können positive oder negative Zahlen sein, müssen aber ganze Zahlen zwischen -9.223.372.036.854.775.808 (-2^63) und 9.223.372.036.854.775.807 (2^63-1) sein. |
| Dezimalzahl | Eine reelle Zahl mit 64 Bit (acht Bytes) 1, 2 | Reale Zahlen sind Zahlen mit Dezimalstellen. Reelle Zahlen decken einen breiten Wertebereich ab: Negative Werte von -1,79E +308 bis -2,23E -308 Null Positive Werte von 2,23E -308 bis 1,79E + 308 Die Anzahl der signifikanten Ziffern ist jedoch auf 15 Dezimalstellen beschränkt. |
| WAHR/FALSCH | Boolesch | Entweder ein TRUE- oder FALSE-Wert. |
| Text | String | Eine Unicode-Zeichenzeichenfolge. Kann Zeichenfolgen, Zahlen oder Datumsangaben sein, die in einem Textformat dargestellt werden. Die maximale Zeichenfolgenlänge beträgt 268.435.456 Unicode-Zeichen (256 Megazeichen) oder 536.870.912 Bytes. |
| Datum | Datum/Uhrzeit | Datums- und Uhrzeitangaben in einer akzeptierten Datums-/Uhrzeitdarstellung. Gültig sind alle Daten nach dem 1. Januar 1900. |
| Währung | Währung | Der Datentyp "Währung" erlaubt Werte zwischen -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 mit vier Dezimalstellen mit fester Genauigkeit. |
| N/V | Leer | Ein leeres Feld ist ein Datentyp in DAX, der SQL-Nullen darstellt und ersetzt. Sie können mit der Funktion LEER eine Leerstelle erstellen und mit der logischen Funktion ISTLEER nach Leerzeichen suchen. |
1 DAX-Formeln unterstützen keine Datentypen, die kleiner sind als die in der Tabelle aufgeführten.
2 Wenn Sie versuchen, Daten mit sehr großen numerischen Werten zu importieren, schlägt der Import möglicherweise mit der folgenden Fehlermeldung fehl:
In-Memory-Datenbankfehler: Die Spalte "<Spaltenname>" der Tabelle "<Tabellenname>" enthält den Wert "1,7976931348623157e+308", der nicht unterstützt wird. Der Vorgang wurde abgebrochen.
Dieser Fehler tritt auf, weil Power Pivot diesen Wert zum Darstellen von Nullen verwendet. Die Werte in der folgenden Liste sind Synonyme für den Nullwert:
| Value |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014e-308 |
Entfernen Sie den Wert aus den Daten, und wiederholen Sie den Importvorgang.
Tabellendatentyp
DAX verwendet einen Tabellendatentyp in vielen Funktionen, z. B. Aggregationen und Zeitintelligenzberechnungen. Einige Funktionen erfordern einen Verweis auf eine Tabelle. Andere Funktionen geben eine Tabelle zurück, die dann als Eingabe für andere Funktionen verwendet werden kann. In einigen Funktionen, die eine Tabelle als Eingabe erfordern, können Sie einen Ausdruck angeben, der als Tabelle ausgewertet wird. Für einige Funktionen ist ein Verweis auf eine Basistabelle erforderlich. Informationen zu den Anforderungen bestimmter Funktionen finden Sie unter DAX-Funktionsreferenz.
Implizite und explizite Konvertierung von Datentypen in DAX-Formeln
Jede DAX-Funktion hat bestimmte Anforderungen an die Datentypen, die als Inputs und Outputs verwendet werden. So erfordern manche Funktionen Ganzzahlen für manche Argumente und Datumsangaben für andere. Andere Funktionen benötigen Text oder Tabellen.
Wenn die Daten in der Spalte, die Sie als Argument angeben, mit dem von der Funktion benötigten Datentyp nicht kompatibel sind, gibt DAX in vielen Fällen einen Fehler zurück. DAX wird jedoch versuchen, die Daten nach Möglichkeit implizit in den erforderlichen Datentyp zu konvertieren. Beispiel:
- Sie können ein Datum als Zeichenfolge eingeben, und DAX analysiert die Zeichenfolge und versucht, sie in eines der Windows-Datums- und Uhrzeitformate umzuwandeln.
- Sie können WAHR + 1 addieren und erhalten das Ergebnis 2, da WAHR implizit in die Zahl 1 konvertiert und der Vorgang 1+1 ausgeführt wird.
- Wenn Sie Werte in zwei Spalten addieren und ein Wert als Text ("12") und der andere als Zahl (12) dargestellt wird, konvertiert DAX die Zeichenfolge implizit in eine Zahl und addiert sie dann für ein numerisches Ergebnis. Der folgende Ausdruck gibt 44 zurück: = "22" + 22
- Wenn Sie versuchen, zwei Zahlen zu verketten, stellt Excel sie als Zeichenfolgen dar und verkettet sie. Der folgende Ausdruck gibt "1234" zurück: = 12 & 34
In der folgenden Tabelle sind die impliziten Datentypkonvertierungen zusammengefasst, die in Formeln durchgeführt werden. Excel führt nach Möglichkeit implizite Konvertierungen aus, die für den angegebenen Vorgang erforderlich sind.
Tabelle der impliziten Datenkonvertierungen
Der Typ der ausgeführten Konvertierung wird durch den Operator bestimmt, der die erforderlichen Werte umgibt, bevor der angeforderte Vorgang ausgeführt wird. Diese Tabellen listen die Operatoren auf und geben die Konvertierung an, die für jeden Datentyp in der Spalte ausgeführt wird, wenn er mit dem Datentyp in der sich überschneidenden Zeile gekoppelt ist.
Hinweis
Textdatentypen sind in diesen Tabellen nicht enthalten. Wenn eine Zahl in einem Textformat dargestellt wird, versucht Power Pivot in einigen Fällen, den Zahlentyp zu bestimmen und als Zahl darzustellen.
Zusatz (+)
| Operator (+) | INTEGER | CURRENCY | REAL | Datum/Uhrzeit |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Datum/Uhrzeit |
| CURRENCY | CURRENCY | CURRENCY | REAL | Datum/Uhrzeit |
| REAL | REAL | REAL | REAL | Datum/Uhrzeit |
| Datum/Uhrzeit | Datum/Uhrzeit | Datum/Uhrzeit | Datum/Uhrzeit | Datum/Uhrzeit |
Wenn z. B. eine reelle Zahl in einer Additionsoperation in Kombination mit Währungsdaten verwendet wird, werden beide Werte in REAL konvertiert, und das Ergebnis wird als REAL zurückgegeben.
Subtraktion (-)
In der folgenden Tabelle ist die Zeilenüberschrift das Minuend (linke Seite) und die Spaltenüberschrift das Subtrahend (rechte Seite).
| Operator (-) | INTEGER | CURRENCY | REAL | Datum/Uhrzeit |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/Uhrzeit | Datum/Uhrzeit | Datum/Uhrzeit | Datum/Uhrzeit | Datum/Uhrzeit |
Wenn beispielsweise ein Datum in einer Subtraktionsoperation mit einem anderen Datentyp verwendet wird, werden beide Werte in Datumsangaben konvertiert, und der Rückgabewert ist ebenfalls ein Datum.
Hinweis
Datenmodelle unterstützen auch den unären Operator - (negativ), der jedoch den Datentyp des Operanden nicht ändert.
Multiplikation (*)
| Operator (*) | INTEGER | CURRENCY | REAL | Datum/Uhrzeit |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Wenn beispielsweise bei einer Multiplikationsoperation eine Ganzzahl mit einer reellen Zahl kombiniert wird, werden beide Zahlen in reelle Zahlen konvertiert, und der Rückgabewert ist ebenfalls REAL.
Abteilung (/)
In der folgenden Tabelle ist die Zeilenüberschrift der Zähler und die Spaltenüberschrift der Nenner.
| Operator (/) (Zeile/Spalte) |
INTEGER | CURRENCY | REAL | Datum/Uhrzeit |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/Uhrzeit | REAL | REAL | REAL | REAL |
Wenn beispielsweise in einer Divisionsoperation eine Ganzzahl mit einem Währungswert kombiniert wird, werden beide Werte in reelle Zahlen konvertiert, und das Ergebnis ist ebenfalls eine reelle Zahl.
Vergleichsoperatoren
In Vergleichsausdrücken werden boolesche Werte als größer als Zeichenfolgenwerte und Zeichenfolgenwerte als größer als numerische Werte oder Datums-/Uhrzeitwerte betrachtet. Zahlen und Datums-/Uhrzeitwerte werden als gleichwertig angesehen. Für boolesche Werte oder Zeichenfolgen werden keine impliziten Konvertierungen durchgeführt. BLANK oder ein leerer Wert wird in Abhängigkeit vom Datentyp des anderen verglichenen Werts in 0/""/false konvertiert.
Die folgenden DAX-Ausdrücke veranschaulichen dieses Verhalten:
=WENN(FALSCH()>;"wahr";"Ausdruck ist wahr", "Ausdruck ist falsch"), gibt "Ausdruck ist wahr" zurück
=WENN("12"12;>"Ausdruck ist wahr", "Ausdruck ist falsch"), gibt "Ausdruck ist wahr" zurück.
=WENN("12"=12,"Ausdruck ist wahr", "Ausdruck ist falsch"), gibt "Ausdruck ist falsch" zurück
Abschlüsse werden implizit für numerische Typen oder Datum/Uhrzeit-Typen durchgeführt, wie in der folgenden Tabelle beschrieben:
| Vergleichsoperator | INTEGER | CURRENCY | REAL | Datum/Uhrzeit |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/Uhrzeit | REAL | REAL | REAL | Datum/Uhrzeit |
Umgang mit Leerzeichen, leeren Zeichenfolgen und Nullwerten
In DAX werden Nullwerte, leere Werte, leere Zellen oder fehlende Werte durch denselben neuen Werttyp, einen BLANK-Wert, dargestellt. Sie können auch Leerzeichen mit der Funktion LEER generieren oder mit der Funktion ISTLEER nach Leerzeichen testen.
Wie Rohlinge in Operationen wie Addition oder Verkettung behandelt werden, hängt von der jeweiligen Funktion ab. In der folgenden Tabelle sind die Unterschiede zwischen DAX- und Microsoft Excel-Formeln in Bezug auf die Art und Weise, wie Leerzeichen behandelt werden, zusammengefasst.
| Expression | DAX | Excel |
|---|---|---|
| LEER + LEER | LEER | 0 (null) |
| LEER +5 | 5 | 5 |
| LEER * 5 | LEER | 0 (null) |
| 5/BLANK | Unendlich | Fehler |
| 0/BLANK | NaN | Fehler |
| LEER/LEER | LEER | Fehler |
| FALSE ODER BLANK | FALSE | FALSE |
| FALSCH UND LEER | FALSE | FALSE |
| WAHR ODER LEER | WAHR | WAHR |
| WAHR UND LEER | FALSCH | WAHR |
| LEER ODER LEER | LEER | Fehler |
| LEER UND LEER | LEER | Fehler |
Ausführliche Informationen dazu, wie eine bestimmte Funktion oder ein bestimmter Operator Leerzeichen behandelt, finden Sie in den einzelnen Themen für jede DAX-Funktion im Abschnitt DAX-Funktionsreferenz.