Partager via


Types et conversion de types

Power Query M utilise des types pour classifier les valeurs pour avoir un jeu de données plus structuré. Cet article décrit les types M les plus couramment utilisés et comment convertir un type en un autre type.

Types couramment utilisés

Les types de données font référence à n’importe quel type utilisé pour clarifier la structure de données spécifiques. Les types de données les plus couramment utilisés sont des types primitifs. Ces types sont les suivants :

  • type any, qui classifie n’importe quelle valeur.
  • type null, qui classifie la valeur Null.
  • type logical, qui classifie les valeurs true et false.
  • type number, qui classifie les valeurs numériques.
  • type time, qui classifie les valeurs d’heure.
  • type date, qui classifie les valeurs de date.
  • type datetime, qui classifie les valeurs datetime.
  • type datetimezone, qui classifie les valeurs datetimezone.
  • type duration, qui classifie les valeurs de durée.
  • type text, qui classifie les valeurs de texte.
  • type binary, qui classifie les valeurs binaires.
  • type type, qui classifie les valeurs de type.
  • type list, qui classifie les valeurs de liste.
  • type record, qui classifie les valeurs d’enregistrement.
  • type table, qui classifie les valeurs de table.
  • type function, qui classifie les valeurs de fonction.
  • type anynonnull, qui classifie toutes les valeurs à l’exception de Null.
  • type none, qui classifie aucune valeur.

Pour plus d’informations sur ces types, accédez à Types.

En plus de ces types de données courants, il existe également un ensemble de types de données au format *.Type. Les types de données les plus couramment utilisés de ce format sont les suivants :

  • Byte.Type, qui classifie une valeur de nombre 8 bits.
  • Int8.Type, qui classifie une valeur de nombre 8 bits.
  • Int16.Type, qui classifie une valeur de nombre 16 bits.
  • Int32.Type, qui classifie une valeur de nombre 32 bits.
  • Int64.Type, qui classifie une valeur de nombre 64 bits.
  • Single.Type, qui classifie une valeur de nombre flottant à 9 chiffres.
  • Double.Type, qui classifie une valeur de nombre flottant à 17 chiffres.
  • Decimal.Type, qui classifie une valeur de nombre flottant à 15 chiffres.
  • Currency.Type, qui classifie une valeur de nombre à 19 chiffres avec quatre chiffres à droite du séparateur « ».
  • Percentage.Type, qui classifie une valeur de nombre à 15 chiffres avec un masque pour mettre en forme la valeur en pourcentage.
  • Guid.Type, qui classifie une valeur de texte GUID.

Les types primitifs peuvent également être écrits au *.Type format. Par conséquent, vous pouvez écrire number en tant que Number.Type, record en tant que Record.Type, et ainsi de suite.

Lorsque vous utilisez l’un de ces types, sachez que, comme tout le code M, ces types respectent la casse.

Le tableau suivant contient plus d’informations sur chacun de ces types.

Type de données Description
any Le any type de données est l’état donné lorsqu’une valeur n’a pas de définition de type de données explicite. Le any type est le type de données qui classifie toutes les valeurs.
binary Le binary type de données peut être utilisé pour représenter toutes les autres données avec un format binaire.
type Valeur qui classifie d’autres valeurs. Pour plus d’informations, accédez à Types.
null Représente l’absence d’une valeur ou une valeur d’état indéterminé ou inconnu.
anynonnull Représente n’importe quel type qui n’est pas inullable.
date Représente uniquement une date (aucune partie d’heure).
time Représente juste l’heure (aucune partie de date).
datetime Représente une valeur de date et d’heure. La partie d’heure d’une date est stockée sous forme de fraction à des multiples entiers de 1/300 secondes (3,33 ms). Les dates comprises entre les années 1900 et 9999 sont prises en charge.
datetimezone Représente une date et une heure UTC avec un décalage de fuseau horaire.
duration Représente une durée. Ce type peut être ajouté ou soustrait d’un datetime champ avec des résultats corrects. Pour plus d’informations, accédez à Durée.
text Chaîne de données de caractères Unicode. Il peut s’agir de chaînes, de nombres ou de dates représentées dans un format de texte. La longueur maximale de chaîne est de 268 435 456 caractères Unicode (où chaque caractère Unicode est deux octets) ou 536 870 912 octets.
logical Valeur booléenne de l’un ou de l’autre truefalse.
list Valeur qui produit une séquence de valeurs lorsqu’elles sont énumérées. Pour plus d’informations, accédez aux types de listes et valeurs de liste.
record Séquence ordonnée de champs. Chaque champ contient un nom de champ et une valeur de champ. Pour plus d’informations, accédez aux types d’enregistrements et valeurs d’enregistrement.
table Séquence ordonnée de lignes divisées en colonnes. Pour plus d’informations, accédez aux types de tables et aux valeurs de table.
function Valeur qui mappe un ensemble d’arguments à une valeur unique. Pour plus d’informations, accédez aux types Functions et Function.
number Représente n’importe quel nombre utilisé pour les opérations numériques et arithmétiques. Pour plus d’informations, accédez à Number.
Decimal.Type Représente un nombre à virgule flottante 64 bits (huit octets). Il s’agit du type de nombre le plus courant et correspond aux nombres comme vous les pensez généralement. Bien qu’il soit conçu pour gérer les nombres avec des valeurs fractionnaires, il gère également les nombres entiers. Les Decimal.Type valeurs négatives peuvent être gérées entre –1,79E +308 et –2,23E –308, 0 et les valeurs positives comprises entre 2,23E et 308E et 1,79E + 308. Par exemple, les nombres tels que 34, 34.01 et 34.000367063 sont des nombres décimaux valides. La plus grande précision qui peut être représentée dans un Decimal.Type chiffre est de 15 chiffres de long. Le séparateur décimal peut se produire n’importe où dans le nombre. Correspond Decimal.Type à la façon dont Excel stocke ses nombres. Notez qu’un nombre à virgule flottante binaire ne peut pas représenter tous les nombres dans sa plage prise en charge avec 100% précision. Par conséquent, des différences mineures de précision peuvent se produire lors de la représentation de certains nombres décimaux.
Currency.Type Ce type de données a un emplacement fixe pour le séparateur décimal. Le séparateur décimal a toujours quatre chiffres à droite et autorise 19 chiffres d’importance. La plus grande valeur qu’il peut représenter est de 922 337 203 685 477,5807 (positif ou négatif). Contrairement Decimal.Typeà ce qui Currency.Type est toujours précis et est donc utile dans les cas où l’imprécision de la notation à virgule flottante peut introduire des erreurs.
Percentage.Type Fondamentalement identique à un Decimal.Typemasque pour mettre en forme les valeurs sous la forme d’une valeur de pourcentage.
Int8.Type Représente une valeur entière signée 8 bits (un octet). Comme il s’agit d’un entier, il n’a aucun chiffre à droite de la décimale. Il autorise 3 chiffres ; un nombre entier positif ou négatif compris entre –128 et 127. Comme avec le Currency.Type, le Int8.Type peut être utile dans les cas où vous devez contrôler l’arrondi.
Int16.Type Représente une valeur entière signée 16 bits (à deux octets). Comme il s’agit d’un entier, il n’a aucun chiffre à droite de la décimale. Il autorise 6 chiffres ; un nombre entier positif ou négatif compris entre –32 768 (–2^15) et 32 767 (2^15-1). Comme avec le Currency.Type, le Int16.Type peut être utile dans les cas où vous devez contrôler l’arrondi.
Int32.Type Représente une valeur entière signée 32 bits (quatre octets). Comme il s’agit d’un entier, il n’a aucun chiffre à droite de la décimale. Il autorise 10 chiffres ; un nombre entier positif ou négatif compris entre –2 147 483 648 (–2^31) et 2 147 483 647 (2^31–1). Comme avec le Currency.Type, le Int32.Type peut être utile dans les cas où vous devez contrôler l’arrondi.
Int64.Type Représente une valeur entière signée 64 bits (huit octets). Comme il s’agit d’un entier, il n’a aucun chiffre à droite de la décimale. Il autorise 19 chiffres ; un nombre entier positif ou négatif compris entre –9 223 372 036 854 775 808 (–2^63) et 9 223 372 036 854 775 807 (2^63–1). Il peut représenter la plus grande précision possible des différents types de données numériques. Comme avec le Currency.Type, le Int64.Type peut être utile dans les cas où vous devez contrôler l’arrondi.
Byte.Type Représente une valeur entière non signée 8 bits (un octet). Étant donné qu’il s’agit d’un entier non signé, il n’a aucun chiffre à droite de la décimale et ne peut contenir que des valeurs positives. Il autorise 3 chiffres ; un nombre positif compris entre 0 et 255.
Single.Type Représente un nombre à virgule flottante simple précision. Il a une plage approximative de –3,99 X 1038 à 3,99 X 1038 et prend en charge environ 9 chiffres de précision. Il peut également représenter l’infini positif et négatif, et NaN (Pas un nombre).
Double.Type Représente un nombre à virgule flottante double précision. Il a une plage approximative de –1,7976931348623158 X 10307 à 1,7976931348623158 X 10307 et prend en charge environ 17 chiffres de précision. Il peut également représenter l’infini positif et négatif, et NaN (Pas un nombre).
Guid.Type Représente une valeur de texte 128 bits composée de 32 valeurs hexadécimales à l’aide du facteur <de forme 8 valeurs> hexadécimales-4 valeurs> hexadécimales-4<< valeurs>> hexadécimales-12<<> valeurs hexadécimales, qui composent la valeur GUID.
none Type de données qui classifie aucune valeur.

Les seules autres valeurs couramment utilisées *.Type sont des énumérations. Pour plus d’informations, accédez à Énumérations.

Conversion de type

Le langage de formule Power Query M comporte des formules permettant d’effectuer des conversions entre les types. Voici un récapitulatif des formules de conversion en M.

Nombre

Conversion de type Description
Number.FromText(texte sous forme de texte) en tant que nombre Retourne une valeur numérique à partir d’une valeur de texte.
Number.ToText(nombre sous forme de nombre) en tant que texte Retourne une valeur de texte à partir d’une valeur numérique.
Number.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique à partir d’une valeur.
Byte.From(valeur comme n’importe quel) en tant que nombre Retourne un nombre entier 8 bits à partir de la valeur spécifiée.
Int8.From(valeur comme n’importe quel) en tant que nombre Retourne un nombre entier 8 bits à partir de la valeur spécifiée.
Int16.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique entière 16 bits à partir de la valeur donnée.
Int32.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique entière 32 bits à partir de la valeur donnée.
Int64.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique entière 64 bits à partir de la valeur donnée.
Single.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique de type Single à partir de la valeur donnée.
Double.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique de type Double à partir de la valeur donnée.
Decimal.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique de type decimal à partir de la valeur spécifiée.
Currency.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur numérique de type currency à partir de la valeur spécifiée.
Percentage.From(valeur comme n’importe quel) en tant que nombre Retourne une valeur de nombre pourcentage de la valeur donnée.

Détails

Conversion de type Description
Text.From(valeur comme n’importe quel) en tant que texte Retourne la représentation textuelle d’un nombre, d’une date, d’une heure, d’un datetime, d’un datetimezone, d’une valeur logique, d’une durée ou d’une valeur binaire.
Guid.From(valeur en tant que texte) en tant que texte Retourne la représentation GUID du texte spécifié.

Logical

Conversion de type Description
Logical.FromText(texte sous forme de texte) comme logique Retourne une valeur logique true ou false à partir d’une valeur de texte.
Logical.ToText(logique comme logique) en tant que texte Retourne une valeur de texte à partir d’une valeur logique.
Logical.From(valeur comme n’importe quelle) comme logique Retourne une valeur logique à partir d’une valeur.

Date, Time, DateTime et DateTimeZone

Conversion de type Description
.FromText(text as text) as date, time, datetime ou datetimezone Retourne une date, une heure, une date/heure ou un fuseau horaire à partir d’un ensemble de formats de date et d’une valeur de culture.
. ToText(date, heure, dateTime ou dateTimeZone en tant que date, heure, datetime ou datetimezone) en tant que texte Retourne une valeur de texte à partir d’une date, d’une heure, d’une date/heure ou d’un fuseau horaire.
. From(value as any) Retourne une date, une heure, une date/heure ou un fuseau horaire à partir d’une valeur.
.ToRecord(date, time, dateTime ou dateTimeZone as date, time, datetime ou datetimezone) Retourne un enregistrement qui contient des parties d’une date, d’une heure, d’une date/heure ou d’un fuseau horaire.