Dans un modèle de données, chaque colonne a un type de données associé qui spécifie le type de données que la colonne peut contenir : nombres entiers, nombres décimaux, texte, données monétaires, dates et heures, etc. Le type de données détermine également les types d’opérations que vous pouvez effectuer sur la colonne et la quantité de mémoire nécessaire pour stocker les valeurs dans la colonne.

Si vous utilisez le complément Power Pivot, vous pouvez modifier le type de données d’une colonne. Vous devrez peut-être le faire si une colonne de date a été importée en tant que chaîne, mais que vous avez besoin qu’elle soit autre chose. Pour plus d’informations, consultez Définir le type de données d’une colonne dans Power Pivot.

Contenu de cet article

Résumé des types de données

Le tableau suivant répertorie les types de données pris en charge dans un modèle de données. Lorsque vous importez des données ou utilisez une valeur dans une formule, même si la source de données d’origine contient un type de données différent, les données sont converties en l’un de ces types de données. Les valeurs qui résultent de formules utilisent également ces types de données.

Type de données dans Excel

Type de données dans DAX

Description

Nombre entier

Une valeur entière 64 bits (huit octets) 1, 2

Nombres sans décimales. Les entiers peuvent être des nombres positifs ou négatifs, mais doivent être des nombres entiers compris entre -9 223 372 036 854 775 808 (-2^63) et 9 223 372 036 854 775 807 (2^63-1).

Nombre décimal

Un nombre réel 64 bits (huit octets) 1, 2

Les nombres réels sont des nombres qui peuvent avoir des décimales. Les nombres réels couvrent un large éventail de valeurs :

Valeurs négatives comprises entre -1,79E +308 et -2,23E -308

Zéro

Valeurs positives comprises entre 2,23E et 308 et 1,79E + 308

Toutefois, le nombre de chiffres significatifs est limité à 15 chiffres décimaux.

VRAI/FAUX

Booléen

Valeur True ou False.

Texte

String

Chaîne de données caractère Unicode. Il peut s’agir de chaînes, de nombres ou de dates représentées dans un format texte.

La longueur maximale de la chaîne est de 268 435 456 caractères Unicode (256 méga) ou 536 870 912 octets.

Date

Date/heure

Dates et heures dans une représentation date-heure acceptée.

Les dates valides sont toutes les dates postérieures au 1er janvier 1900.

Devise

Devise

Le type de données Monétaire autorise des valeurs comprises entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807 avec quatre chiffres décimaux de précision fixe.

S/O

Vide

Un vide est un type de données dans DAX qui représente et remplace les valeurs NULL SQL. Vous pouvez créer un vide à l’aide de la fonction BLANK et tester les vides à l’aide de la fonction logique ISBLANK.

1 Les formules DAX ne prennent pas en charge les types de données plus petits que ceux répertoriés dans le tableau.

2 Si vous essayez d’importer des données qui ont des valeurs numériques très volumineuses, l’importation peut échouer avec l’erreur suivante :

Erreur de base de données en mémoire : la colonne « <nom de colonne> » de la table « <nom de la table> » contient une valeur, « 1,7976931348623157e+308 », qui n’est pas prise en charge. L’opération a été annulée.

Cette erreur se produit car Power Pivot utilise cette valeur pour représenter les valeurs Null. Les valeurs de la liste suivante sont des synonymes de la valeur null :

Value (Valeur)

9223372036854775807

-9223372036854775808

1,7976931348623158e+308

2.2250738585072014e-308

Supprimez la valeur de vos données et réessayez d’importer.

Type de données de table

DAX utilise un type de données table dans de nombreuses fonctions, telles que les agrégations et les calculs Time Intelligence. Certaines fonctions nécessitent une référence à une table ; d’autres fonctions retournent une table qui peut ensuite être utilisée comme entrée pour d’autres fonctions. Dans certaines fonctions qui nécessitent une table comme entrée, vous pouvez spécifier une expression qui prend la valeur d’une table ; pour certaines fonctions, une référence à une table de base est requise. Pour plus d’informations sur les exigences de fonctions spécifiques, consultez Référence des fonctions DAX.

Conversion de type de données implicite et explicite dans les formules DAX

Chaque fonction DAX a des exigences spécifiques concernant les types de données qui sont utilisés comme entrées et sorties. Par exemple, certaines fonctions nécessitent des entiers pour certains arguments et des dates pour d’autres ; d’autres fonctions nécessitent du texte ou des tableaux.

Si les données de la colonne que vous spécifiez en tant qu’argument ne sont pas compatibles avec le type de données requis par la fonction, DAX retourne souvent une erreur. Toutefois, dans la mesure du possible, DAX tente de convertir implicitement les données en type de données requis. Par exemple :

  • Vous pouvez taper une date sous forme de chaîne, et DAX analyse la chaîne et tente de la convertir en un des formats de date et d’heure Windows.

  • Vous pouvez ajouter TRUE + 1 et obtenir le résultat 2, car TRUE est implicitement converti en nombre 1 et l’opération 1+1 est effectuée.

  • Si vous ajoutez des valeurs dans deux colonnes et qu’une valeur est représentée sous forme de texte (« 12 ») et l’autre en tant que nombre (12), DAX convertit implicitement la chaîne en nombre, puis effectue l’ajout d’un résultat numérique. L’expression suivante retourne 44 : = « 22 » + 22

  • Si vous essayez de concaténer deux nombres, Excel les présente sous forme de chaînes, puis les concatène. L’expression suivante retourne « 1234 » : = 12 & 34

Le tableau suivant récapitule les conversions de types de données implicites effectuées dans les formules. Excel effectue des conversions implicites dans la mesure du possible, comme l’exige l’opération spécifiée.

Tableau des conversions de données implicites

Le type de conversion qui est effectué est déterminé par l’opérateur , qui caste les valeurs dont il a besoin avant d’effectuer l’opération demandée. Ces tables répertorient les opérateurs et indiquent la conversion effectuée sur chaque type de données de la colonne lorsqu’il est associé au type de données dans la ligne croisée.

Remarque : Les types de données texte ne sont pas inclus dans ces tables. Lorsqu’un nombre est représenté comme dans un format texte, dans certains cas, Power Pivot tente de déterminer le type de nombre et de le représenter sous forme de nombre.

Ajout (+)

Opérateur (+)

INTEGER

CURRENCY

REAL

Date/heure

INTEGER

INTEGER

CURRENCY

REAL

Date/heure

CURRENCY

CURRENCY

CURRENCY

REAL

Date/heure

REAL

REAL

REAL

REAL

Date/heure

Date/heure

Date/heure

Date/heure

Date/heure

Date/heure

Par exemple, si un nombre réel est utilisé dans une opération d’addition en combinaison avec des données monétaires, les deux valeurs sont converties en REAL, et le résultat est retourné au format REAL.

Soustraction (-)

Dans le tableau suivant, l’en-tête de ligne est le minuend (côté gauche) et l’en-tête de colonne est le sous-paragraphe (côté droit).

Opérateur (-)

INTEGER

CURRENCY

REAL

Date/heure

INTEGER

INTEGER

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

REAL

Date/heure

Date/heure

Date/heure

Date/heure

Date/heure

Par exemple, si une date est utilisée dans une opération de soustraction avec un autre type de données, les deux valeurs sont converties en dates et la valeur de retour est également une date.

Remarque : Les modèles de données prennent également en charge l’opérateur unaire , - (négatif), mais cet opérateur ne modifie pas le type de données de l’opérande.

Multiplication (*)

Opérateur (*)

INTEGER

CURRENCY

REAL

Date/heure

INTEGER

INTEGER

CURRENCY

REAL

INTEGER

CURRENCY

CURRENCY

REAL

CURRENCY

CURRENCY

REAL

REAL

CURRENCY

REAL

REAL

Par exemple, si un entier est combiné avec un nombre réel dans une opération de multiplication, les deux nombres sont convertis en nombres réels, et la valeur de retour est également REAL.

Division (/)

Dans le tableau suivant, l’en-tête de ligne est le numérateur et l’en-tête de colonne est le dénominateur.

Opérateur (/)

(Ligne/colonne)

INTEGER

CURRENCY

REAL

Date/heure

INTEGER

REAL

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

REAL

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

Date/heure

REAL

REAL

REAL

REAL

Par exemple, si un entier est combiné avec une valeur monétaire dans une opération de division, les deux valeurs sont converties en nombres réels, et le résultat est également un nombre réel.

Opérateurs de comparaison

Dans les expressions de comparaison, les valeurs booléennes sont considérées comme supérieures aux valeurs de chaîne et les valeurs de chaîne sont considérées comme supérieures aux valeurs numériques ou de date/heure ; les nombres et les valeurs de date/heure sont considérés comme ayant le même rang. Aucune conversion implicite n’est effectuée pour les valeurs booléennes ou de chaînes ; BLANK ou une valeur vide est convertie en 0/""/false en fonction du type de données de l’autre valeur comparée.

Les expressions DAX suivantes illustrent ce comportement :

=IF(FALSE()>"true »,"Expression is true », « Expression is false »), retourne « Expression is true »

=IF(« 12">12,"Expression is true », « Expression is false »), retourne « Expression is true ».

=IF(« 12"=12,"Expression is true », « Expression is false »), retourne « Expression is false »

Les conversions sont effectuées implicitement pour les types numériques ou date/heure, comme décrit dans le tableau suivant :

Opérateur de comparaison

INTEGER

CURRENCY

REAL

Date/heure

INTEGER

INTEGER

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

REAL

Date/heure

REAL

REAL

REAL

Date/heure

Haut de la page

Gestion des vides, des chaînes vides et des valeurs zéro

Dans DAX, une valeur null, une valeur vide, une cellule vide ou une valeur manquante sont tous représentés par le même nouveau type de valeur, un BLANK. Vous pouvez également générer des espaces à l’aide de la fonction BLANK, ou tester les vides à l’aide de la fonction ISBLANK.

La façon dont les espaces sont gérés dans les opérations, telles que l’ajout ou la concaténation, dépend de la fonction individuelle. Le tableau suivant récapitule les différences entre les formules DAX et Microsoft Excel, de la façon dont les vides sont gérés.

Expression

DAX

Excel

VIDE + VIDE

BLANC

0 (zéro)

VIDE +5

5

5

BLANK * 5

BLANC

0 (zéro)

5/VIDE

Infinity

Erreur

0/BLANK

Nan

Erreur

VIDE/VIDE

BLANC

Erreur

FALSE OU BLANK

FAUX

FAUX

FAUX ET VIDE

FAUX

FAUX

TRUE OU BLANK

TRUE

TRUE

TRUE ET BLANK

FAUX

VRAI

VIDE OU VIDE

BLANC

Erreur

VIDE ET VIDE

BLANC

Erreur

Pour plus d’informations sur la façon dont une fonction ou un opérateur particulier gère les espaces vides, consultez les rubriques individuelles pour chaque fonction DAX, dans la section Référence des fonctions DAX.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.