Teilen über


Typen und Typkonvertierung

Power Query M verwendet Typen zum Klassifizieren von Werten, um einen strukturierteren Datensatz zu haben. In diesem Artikel werden die am häufigsten verwendeten M-Typen und das Konvertieren eines Typs in einen anderen Typ beschrieben.

Häufig verwendete Typen

Datentypen beziehen sich auf jeden Typ, der verwendet wird, um die Struktur bestimmter Daten zu verdeutlichen. Die am häufigsten verwendeten Datentypen sind primitive Typen. Zu diesen Typen gehören:

  • type any, die einen beliebigen Wert klassifiziert.
  • type null, der den Wert NULL klassifiziert.
  • type logical, der die Werte „true“ und „false“ klassifiziert
  • type number, der numerische Werte klassifiziert
  • type time, der Zeitwerte klassifiziert
  • type date, der Datumswerte klassifiziert
  • type datetime, der datetime-Werte klassifiziert
  • type datetimezone, der datetimezone-Werte klassifiziert
  • type duration, der Dauerwerte klassifiziert
  • type text, der Textwerte klassifiziert
  • type binary, der Binärwerte klassifiziert
  • type type, der Typwerte klassifiziert
  • type list, der Listenwerte klassifiziert
  • type record, der Datensatzwerte klassifiziert
  • type table, der Tabellenwerte klassifiziert
  • type function, der Funktionswerte klassifiziert
  • type anynonnull, der alle Werte außer NULL klassifiziert
  • type none, der keine Werte klassifiziert

Weitere Informationen zu diesen Typen können Sie zu "Typen" aufrufen.

Zusätzlich zu diesen allgemeinen Datentypen gibt es auch eine Reihe von Datentypen, die das Format *.Typeverwenden. Die am häufigsten verwendeten Datentypen dieses Formats sind:

  • Byte.Type, der einen 8-Bit-Zahlenwert klassifiziert.
  • Int8.Type, der einen 8-Bit-Zahlenwert klassifiziert.
  • Int16.Type, der einen 16-Bit-Zahlenwert klassifiziert.
  • Int32.Type, der einen 32-Bit-Zahlenwert klassifiziert.
  • Int64.Type, der einen 64-Bit-Zahlenwert klassifiziert.
  • Single.Type, der einen 9-stelligen gleitenden Zahlenwert klassifiziert.
  • Double.Type, der einen 17-stelligen gleitenden Zahlenwert klassifiziert.
  • Decimal.Type, der einen 15-stelligen gleitenden Zahlenwert klassifiziert.
  • Currency.Type, der einen 19-stelligen Zahlenwert mit vier Ziffern rechts vom Trennzeichen "." klassifiziert.
  • Percentage.Type, der einen 15-stelligen Zahlenwert mit einer Maske klassifiziert, um den Wert als Prozentsatz zu formatieren.
  • Guid.Type, der einen GUID-Textwert klassifiziert.

Die Grundtypen können auch im *.Type Format geschrieben werden. Daher können Sie als Number.Type, record as Record.Type, usw. schreibennumber.

Beachten Sie bei Verwendung eines dieser Typen, dass bei diesen Typen wie bei allen M-Code die Groß-/Kleinschreibung beachtet wird.

Die folgende Tabelle enthält weitere Informationen zu jedem dieser Typen.

Datentyp BESCHREIBUNG
any Der any Datentyp ist der Status, der angegeben wird, wenn ein Wert keine explizite Datentypdefinition aufweist. Der any Typ ist der Datentyp, der alle Werte klassifiziert.
binary Der binary Datentyp kann verwendet werden, um alle anderen Daten mit einem Binärformat darzustellen.
type Ein Wert, der andere Werte klassifiziert. Weitere Informationen hierzu können Sie zu "Typen" aufrufen.
null Stellt das Fehlen eines Werts oder einen Wert eines unbestimmten oder unbekannten Zustands dar.
anynonnull Stellt einen beliebigen Typ dar, der nicht ullierbar ist.
date Stellt nur ein Datum (kein Zeitteil) dar.
time Stellt nur uhrzeit (kein Datumsteil) dar.
datetime Stellt sowohl einen Datums- als auch einen Uhrzeitwert dar. Der Zeitteil eines Datums wird als Bruch bis zu ganzen Vielfachen von 1/300 Sekunden (3,33 ms) gespeichert. Datumsangaben zwischen den Jahren 1900 und 9999 werden unterstützt.
datetimezone Stellt ein UTC-Datum und eine UHRZEIT mit einem Zeitzonenoffset dar.
duration Stellt eine Zeitdauer dar. Dieser Typ kann von einem datetime Feld mit korrekten Ergebnissen hinzugefügt oder subtrahiert werden. Weitere Informationen hierzu können Sie unter "Dauer" aufrufen.
text Eine Unicode-Zeichendatenzeichenfolge. Dabei kann es sich um Zeichenfolgen, Zahlen oder Datumsangaben handeln, die in einem Textformat dargestellt werden. Die maximale Zeichenfolgenlänge beträgt 268.435.456 Unicode-Zeichen (wobei jedes Unicode-Zeichen zwei Bytes ist) oder 536.870.912 Byte.
logical Ein boolescher Wert von entweder true oder false.
list Ein Wert, der beim Aufzählen eine Abfolge von Werten erzeugt. Weitere Informationen hierzu können Sie unter "Listentypen " und "Listenwerte" aufrufen.
record Eine sortierte Abfolge von Feldern. Jedes Feld enthält einen Feldnamen und einen Feldwert. Weitere Informationen hierzu werden unter " Datensatztypen " und "Datensatzwerte" angezeigt.
table Eine sortierte Reihenfolge von Zeilen, die in Spalten unterteilt sind. Weitere Informationen hierzu können Sie zu "Tabellentypen " und " Tabellenwerte" aufrufen.
function Ein Wert, der eine Reihe von Argumenten einem einzelnen Wert zuordnet. Weitere Informationen hierzu können Sie zu "Funktionen" und " Funktionstypen" aufrufen.
number Stellt eine beliebige Zahl dar, die für numerische und arithmetische Vorgänge verwendet wird. Weitere Informationen hierzu: Wechseln Sie zu "Zahl".
Decimal.Type Stellt eine 64-Bit-Gleitkommazahl (acht Byte) dar. Dies ist der am häufigsten verwendete Zahlentyp und entspricht Zahlen, während Sie in der Regel davon nachdenken. Obwohl sie für die Behandlung von Zahlen mit Bruchwerten entwickelt wurde, werden auch ganze Zahlen behandelt. Dies Decimal.Type kann negative Werte von –1,79E +308 bis –2,23E –308, 0 und positiven Werten von 2,23E –308 bis 1,79E + 308 behandeln. Beispielsweise sind Zahlen wie 34, 34,01 und 34,000367063 gültige Dezimalzahlen. Die größte Genauigkeit, die in einer Decimal.Type Länge von 15 Ziffern dargestellt werden kann. Das Dezimaltrennzeichen kann an einer beliebigen Stelle in der Zahl vorkommen. Dies Decimal.Type entspricht der Art, wie Excel seine Zahlen speichert. Beachten Sie, dass eine binäre Gleitkommazahl nicht alle Zahlen innerhalb des unterstützten Bereichs mit einer Genauigkeit von 100% darstellen kann. Daher können geringfügige Genauigkeitsunterschiede auftreten, wenn bestimmte Dezimalzahlen dargestellt werden.
Currency.Type Dieser Datentyp hat eine feste Position für das Dezimaltrennzeichen. Das Dezimaltrennzeichen hat immer vier Ziffern rechts und ermöglicht 19 Ziffern von Bedeutung. Der größte Wert, den er darstellen kann, ist 922.337.203.685.477,5807 (positiv oder negativ). Im Gegensatz Decimal.Typedazu ist dies Currency.Type immer präzise und somit nützlich in Fällen, in denen die Ungenauigkeit der Gleitkommanotation zu Fehlern führen kann.
Percentage.Type Grundsätzlich identisch mit einem Decimal.Type, aber es hat eine Maske zum Formatieren der Werte als Prozentwert.
Int8.Type Stellt einen 8-Bit-Ganzzahlwert (ein Byte) dar. Da es sich um eine ganze Zahl handelt, hat sie keine Ziffern rechts neben der Dezimalstelle. Es ermöglicht drei Ziffern; eine positive oder negative ganze Zahl zwischen –128 und 127. Wie bei der Currency.Type, kann dies Int8.Type nützlich sein in Fällen, in denen Sie die Rundung steuern müssen.
Int16.Type Stellt einen ganzzahligen 16-Bit-Wert (zwei Byte) dar. Da es sich um eine ganze Zahl handelt, hat sie keine Ziffern rechts neben der Dezimalstelle. Es ermöglicht 6 Ziffern; eine positive oder negative ganze Zahl zwischen -32.768 (–2^15) und 32.767 (2^15-1). Wie bei der Currency.Type, kann dies Int16.Type nützlich sein in Fällen, in denen Sie die Rundung steuern müssen.
Int32.Type Stellt einen ganzzahligen 32-Bit-Wert (vier Byte) dar. Da es sich um eine ganze Zahl handelt, hat sie keine Ziffern rechts neben der Dezimalstelle. Es ermöglicht 10 Ziffern; eine positive oder negative ganze Zahl zwischen –2.147.483.648 (–2^31) und 2.147.483.647 (2^31–1). Wie bei der Currency.Type, kann dies Int32.Type nützlich sein in Fällen, in denen Sie die Rundung steuern müssen.
Int64.Type Stellt einen ganzzahligen 64-Bit-Wert (acht Byte) dar. Da es sich um eine ganze Zahl handelt, hat sie keine Ziffern rechts neben der Dezimalstelle. Es ermöglicht 19 Ziffern; eine positive oder negative ganze Zahl zwischen –9.223.372.036.854.775.808 (–2^63) und 9.223.372.036.854.775.807 (2^63–1). Sie kann die größtmögliche Genauigkeit der verschiedenen numerischen Datentypen darstellen. Wie bei der Currency.Type, kann dies Int64.Type nützlich sein in Fällen, in denen Sie die Rundung steuern müssen.
Byte.Type Stellt einen ganzzahligen 8-Bit-Wert (ein Byte) dar. Da es sich um eine ganze Zahl ohne Vorzeichen handelt, enthält sie keine Ziffern rechts neben der Dezimalstelle und kann nur positive Werte enthalten. Es ermöglicht drei Ziffern; eine positive Zahl zwischen 0 und 255.
Single.Type Stellt eine Gleitkommazahl mit einfacher Genauigkeit dar. Es hat einen ungefähren Bereich von –3,99 X 1038 bis 3,99 X 1038 und unterstützt ungefähr 9 Ziffern genauigkeit. Es kann auch positive und negative Unendlichkeit und NaN (Not a Number) darstellen.
Double.Type Stellt eine Gleitkommazahl mit doppelter Genauigkeit dar. Es hat einen ungefähren Bereich von –1,7976931348623158 X 10307 bis 1,7976931348623158 X 10307 und unterstützt ca. 17 Ziffern Genauigkeit. Es kann auch positive und negative Unendlichkeit und NaN (Not a Number) darstellen.
Guid.Type Stellt einen 128-Bit-Textwert dar, der aus 32 Hexadezimalwerten besteht, wobei der Formfaktor <8 Hexadezimalwerte-4-Hexadezimalwerte-4>< Hexwerte-12-Hexadezimalwerte><><>> verwendet wird, aus denen der GUID-Wert< besteht.
none Der Datentyp, der keine Werte klassifiziert.

Die einzigen anderen häufig verwendeten *.Type Werte sind Enumerationen. Weitere Informationen hierzu können Sie zu Enumerationen aufrufen.

Typkonvertierung

Die Formelsprache Power Query M umfasst Formeln zur Konvertierung zwischen Typen. Nachfolgend finden Sie eine Zusammenfassung der Konvertierungsformeln in M.

Zahl

Typkonvertierung BESCHREIBUNG
Number.FromText(Text als Text) als Zahl Gibt einen Zahlenwert aus einem Textwert zurück.
Number.ToText(Zahl als Zahl) als Text Gibt einen Textwert aus einem Zahlenwert zurück.
Number.From(Wert beliebig) als Zahl Gibt einen Zahlenwert aus einem Wert zurück
Byte.From(Wert beliebig) als Zahl Gibt einen Integer 8-Bit-Zahlenwert aus dem angegebenen Wert zurück.
Int8.From(Wert beliebig) als Zahl Gibt einen Integer 8-Bit-Zahlenwert aus dem angegebenen Wert zurück.
Int16.From(Wert beliebig) als Zahl Gibt einen ganzzahligen 16-Bit-Wert aus dem angegebenen Wert zurück
Int32.From(Wert beliebig) als Zahl Gibt einen ganzzahligen 32-Bit-Wert aus dem angegebenen Wert zurück
Int64.From(Wert beliebig) als Zahl Gibt einen ganzzahligen 64-Bit-Wert aus dem angegebenen Wert zurück
Single.From(Wert beliebig) als Zahl Gibt einen Wert für eine einzelne Zahl aus dem angegebenen Wert zurück
Double.From(Wert beliebig) als Zahl Gibt einen doppelten Zahlenwert aus dem angegebenen Wert zurück
Decimal.From(Wert beliebig) als Zahl Gibt einen Decimal-Zahlenwert aus dem angegebenen Wert zurück.
Currency.From(Wert beliebig) als Zahl Gibt einen Currency-Zahlenwert aus dem angegebenen Wert zurück.
Percentage.From(Wert beliebig) als Zahl Gibt einen Prozentzahlwert aus dem angegebenen Wert zurück.

Text

Typkonvertierung BESCHREIBUNG
Text.From(Wert als beliebiger Wert) als Text Diese Funktion gibt die Textdarstellung eines Werts wie „number“, „date“, „time“, „datetime“, „datetimezone“, „logical“, „duration“ oder „binary“ zurück.
Guid.From(Wert als Text) als Text Gibt die GUID-Darstellung des angegebenen Texts zurück.

Logisch

Typkonvertierung BESCHREIBUNG
Logical.FromText(Text als Text) als logischer Text Gibt einen logischen Wert (TRUE/FALSE) aus einem Textwert zurück.
Logical.ToText(logisch als logisch) als Text Gibt einen Textwert aus einem logischen Wert zurück.
Logical.From(wert as any) as logical Gibt einen logischen Wert aus einem Wert zurück.

Date, Time, DateTime, DateTimeZone

Typkonvertierung BESCHREIBUNG
. FromText(text as text) as date, time, datetime, or datetimezone Gibt einen date-, time-, datetime- oder datetimezone-Wert für eine Gruppe von Datumsformaten und einen Kulturwert zurück.
. ToText(Date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text Gibt einen Textwert aus einem date-, time-, datetime- oder datetimezone-Wert zurück.
. From(value as any) Gibt einen date-, time-, datetime- oder datetimezone-Wert aus einem Wert zurück.
. ToRecord(Date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) Gibt einen Datensatz zurück, der Teile eines date-, time-, datetime- oder datetimezone-Werts enthält.