Dans un modèle de données, chaque colonne est associée à un type de données qui spécifie le type de données qu’elle 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 effectuer cette opération si une colonne de date a été importée en tant que chaîne, mais que vous devez utiliser autre chose. Pour plus d’informations, voir 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 des formules utilisent également ces types de données.
| Type de données dans Excel | Type de données dans DAX | Description |
|---|---|---|
| Nombre entier | Valeur entière 1, 2 de 64 bits (huit octets) | Nombre sans décimale. 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 1, 2 de 64 bits (huit octets) | 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 de -1,79E +308 à -2,23E -308 Zéro Valeurs positives de 2,23E -308 à 1,79E + 308 Toutefois, le nombre de chiffres significatifs est limité à 15 décimales. |
| VRAI/FAUX | Booléen | Valeur True ou False. |
| Texte | String | Chaîne de données de caractère Unicode. Il peut s’agir de chaînes, de nombres ou de dates représentés dans un format texte. La longueur maximale de la chaîne est de 268 435 456 caractères Unicode (256 mégacaractères) ou 536 870 912 octets. |
| Date | Date/heure | Dates et heures dans une représentation de 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 décimales de précision fixe. |
| N/A | Vide | Un vide est un type de données dans DAX qui représente et remplace les valeurs SQL. Vous pouvez créer un blanc à l’aide de la fonction VIDE et tester les blancs à l’aide de la fonction logique ESTVIDE. |
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 contenant de très grandes valeurs numériques, l’importation peut échouer avec l’erreur suivante :
Erreur de base de données 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 parce que Power Pivot utilise cette valeur pour représenter des valeurs NULL. Les valeurs figurant dans la liste suivante sont synonymes de la valeur Null :
| Valeur |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| Réf. 2.2250738585072014e-308 |
Supprimez la valeur de vos données et essayez à nouveau d’importer.
Type de données de table
DAX utilise un type de données de 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 renvoient une table qui peut ensuite être utilisée comme entrée pour d’autres fonctions. Dans certaines fonctions qui nécessitent une table en entrée, vous pouvez spécifier une expression dont le résultat est une table ; Pour certaines fonctions, une référence à une table de base est nécessaire. Pour plus d’informations sur la configuration requise pour des 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 quant aux types de données utilisées comme entrées et sorties. Par exemple, certaines fonctions nécessitent des nombres 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 comme argument sont incompatibles avec le type de données requis par la fonction, DAX renvoie 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 la forme d’une chaîne, et DAX analysera la chaîne et tentera de la convertir comme l’un des formats de date et d’heure Windows.
- Vous pouvez additionner VRAI + 1 et obtenir le résultat 2, car VRAI est implicitement converti en nombre 1 et l’opération 1+1 est effectuée.
- Si vous additionnez des valeurs dans deux colonnes et qu’une valeur est représentée par du texte (« 12 ») et l’autre par un nombre (12), DAX convertit implicitement la chaîne en nombre, puis effectue l’addition pour obtenir un résultat numérique. L’expression suivante renvoie 44 : = « 22 » + 22
- Si vous tentez de concaténer deux nombres, Excel les présentera sous forme de chaînes, puis les concaténera. L’expression suivante renvoie « 1234 » : = 12 & 34
Le tableau suivant récapitule les conversions de type de données implicites effectuées dans les formules. Excel effectue des conversions implicites chaque fois que cela est possible, conformément aux exigences de l’opération spécifiée.
Tableau des conversions implicites de données
Le type de conversion effectué est déterminé par l’opérateur, qui convertit les valeurs nécessaires avant d’effectuer l’opération demandée. Ces tableaux répertorient les opérateurs et indiquent la conversion effectuée sur chaque type de données dans la colonne lorsqu’il est associé au type de données dans la ligne d’intersection.
Remarque
Les types de données Texte ne sont pas inclus dans ces tables. Lorsqu’un nombre est représenté sous la forme d’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.
Addition (+)
| 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 RÉEL et le résultat est renvoyé en tant que RÉEL.
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 subtrahend (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 tout 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 nombre 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 nombre 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 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îne ; VIDE ou une valeur vide est convertie en 0/""/faux en fonction du type de données de l’autre valeur comparée.
Les expressions DAX suivantes illustrent ce comportement :
=SI(FAUX()>"vrai »,"L’expression est vraie », « L’expression est fausse »), retourne « L’expression est vraie »
=SI(« 12"12,>"L’expression est vraie », « L’expression est fausse »), retourne « L’expression est vraie ».
=SI(« 12"=12,"L’expression est vraie », « L’expression est fausse »), retourne « L’expression est fausse »
Les conversions sont effectuées implicitement pour les types numériques ou de 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 nulles
Dans DAX, une valeur null, vide, cellule vide ou valeur manquante sont tous représentés par le même nouveau type de valeur, un VIDE. Vous pouvez également générer des blancs à l’aide de la fonction VIDE ou tester les blancs à l’aide de la fonction ESTVIDE.
La façon dont les blancs sont gérés dans des opérations, telles que l’addition ou la concaténation, dépend de la fonction individuelle. Le tableau suivant résume les différences entre les formules DAX et Microsoft Excel, en ce qui concerne la manière dont les espaces sont gérés.
| Expression | DAX | Excel |
|---|---|---|
| VIDE + VIDE | VIDE | 0 (zéro) |
| VIDE +5 | 5 | 5 |
| VIDE * 5 | VIDE | 0 (zéro) |
| 5/VIDE | Infinity | Erreur |
| 0/VIDE | NaN | Erreur |
| VIDE | VIDE | Erreur |
| FAUX OU VIDE | FAUX | FAUX |
| FAUX ET VIDE | FAUX | FAUX |
| VRAI OU VIDE | TRUE | TRUE |
| TRUE AND BLANK | FAUX | VRAI |
| VIDE OU VIDE | VIDE | Erreur |
| VIDES ET VIDES | VIDE | Erreur |
Pour plus d’informations sur la façon dont une fonction ou un opérateur particulier gère les vides, consultez les rubriques individuelles pour chaque fonction DAX, dans la section Référence des fonctions DAX.
Haut de la page