Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
s’applique à :
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Cet article décrit les types de données qui peuvent être utilisés dans les modèles tabulaires et décrit la conversion implicite des types de données lorsque les données sont calculées ou utilisées dans une formule DAX (Data Analysis Expressions).
Types de données utilisés dans les modèles tabulaires
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 un des types de données suivants. Les valeurs résultant de formules utilisent également ces types de données.
En général, ces types de données sont implémentés pour permettre des calculs précis dans des colonnes calculées et, pour la cohérence, les mêmes restrictions s’appliquent au reste des données dans les modèles.
Les formats utilisés pour les nombres, la devise, les dates et les heures doivent suivre le format des paramètres régionaux spécifiés sur le client utilisé pour utiliser les données du modèle. Vous pouvez utiliser les options de mise en forme dans le modèle pour contrôler la façon dont la valeur est affichée.
| Type de données dans le modèle | Type de données dans DAX | Descriptif |
|---|---|---|
| Nombre entier | Valeur intégrale '64 bits' (huit octets) * Remarque : Les formules DAX ne prennent pas en charge les types de données trop petits pour contenir la valeur minimale répertoriée dans la description. |
Nombres qui n’ont pas de 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 807 (-2^63+1) et 9 223 372 036 854 775 806 (2^63-2). |
| Nombre décimal | Nombre réel 64 bits (huit octets) * Remarque : Les formules DAX ne prennent pas en charge les types de données trop petits pour contenir la valeur minimale répertoriée dans la description. |
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 de 2,23E -308 à 1,79E + 308 Toutefois, le nombre de chiffres significatifs est limité à 15 chiffres décimaux. |
| Booléen | Booléen | Soit une valeur Vrai ou Faux. |
| Texte | Chaîne | 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 taille maximale effective d’une chaîne est soumise à une limite de 32767 octets. |
| Binaire | Chaîne | Données binaires non structurées, par exemple des images. Les colonnes avec ce type de données ont des fonctionnalités limitées dans DAX. La taille maximale effective d’une valeur de données binaires est soumise à une limite d’octets 67108864. |
| 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 mars 1900. |
| Monnaie | Monnaie | Le type de données monétaire autorise les valeurs comprises entre -922 337 203 685 477,5807 à 922 337 203 685 477,5806 avec quatre chiffres décimaux de précision fixe. |
| Variante | Variante | Utilisé pour les expressions, telles que les mesures DAX, qui peuvent retourner différents types de données. Par exemple, une mesure DAX qui retourne un nombre entier ou une chaîne sera de type variant. |
| N/A | Vide | Un champ 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. |
* Si vous tentez d’importer des données qui ont de grandes valeurs numériques, 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 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 le concepteur de modèles utilise cette valeur pour représenter des valeurs Null. Les valeurs de la liste suivante sont des synonymes de la valeur null mentionnée précédemment :
| Valeur |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1.7976931348623158e+308 |
| -1.7976931348623158e+308 |
Supprimez la valeur de vos données et réessayez d’importer.
Remarque
Vous ne pouvez pas importer à partir d’une colonne varchar(max) qui contient une longueur de chaîne de plus de 131 072 caractères.
Type de données de table
En outre, DAX utilise un type de données de table. Ce type de données est utilisé par DAX dans de nombreuses fonctions, telles que les agrégations et les calculs d’intelligence temporelle. 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 dans d’autres fonctions. Dans certaines fonctions qui nécessitent une table en tant qu’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 des fonctions spécifiques, consultez référence de fonction DAX.
Conversion implicite et explicite du type de données 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 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 sont incompatibles avec le type de données requis par la fonction, DAX dans de nombreux cas retourne 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 un nombre, par exemple « 123 », sous forme de chaîne. DAX analyse la chaîne et tente de la spécifier comme type de données numérique.
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 doit être 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 tentez de concaténer deux nombres, ils sont présentés sous forme de chaînes, puis concaténés. L’expression suivante retourne « 1234 » : = 12 &34
Le tableau suivant récapitule les conversions de type de données implicites effectuées dans les formules. En général, le concepteur de modèles sémantiques se comporte comme Microsoft Excel et effectue des conversions implicites dans la mesure du possible lorsque l’opération spécifiée est requise.
Table des conversions de données implicites
Le type de conversion effectué est déterminé par l’opérateur, qui convertit les valeurs requises 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’elles sont associées au type de données dans la ligne d’intersection.
Remarque
Les types de données texte ne sont pas inclus dans ces tableaux. Lorsqu’un nombre est représenté comme dans un format de texte, dans certains cas, le concepteur de modèles tente de déterminer le type de nombre et de le représenter en tant que nombre.
Ajout (+)
| ENTIER | MONNAIE | RÉEL | Date/heure | |
|---|---|---|---|---|
| ENTIER | ENTIER | MONNAIE | RÉEL | Date/heure |
| DEVISE | MONNAIE | MONNAIE | RÉEL | Date/heure |
| RÉEL | RÉEL | RÉEL | RÉEL | 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 les données monétaires, les deux valeurs sont converties en REAL, et le résultat est retourné sous la forme REAL.
Soustraction (-)
Dans le tableau suivant, l’en-tête de ligne est le diminuende (côté gauche) et l’en-tête de colonne est le subtrahende (côté droit) :
| ENTIER | MONNAIE | RÉEL | Date/heure | |
|---|---|---|---|---|
| ENTIER | ENTIER | MONNAIE | RÉEL | RÉEL |
| DEVISE | MONNAIE | MONNAIE | RÉEL | RÉEL |
| RÉEL | RÉEL | RÉEL | RÉEL | RÉEL |
| 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 tabulaires 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 (*)
| ENTIER | MONNAIE | RÉEL | Date/heure | |
|---|---|---|---|---|
| ENTIER | ENTIER | MONNAIE | RÉEL | ENTIER |
| DEVISE | MONNAIE | RÉEL | MONNAIE | MONNAIE |
| RÉEL | RÉEL | MONNAIE | RÉEL | RÉEL |
Par exemple, si un entier est combiné à 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 RÉELLE.
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 : (ligne/colonne)
| ENTIER | MONNAIE | RÉEL | Date/heure | |
|---|---|---|---|---|
| ENTIER | RÉEL | MONNAIE | RÉEL | RÉEL |
| DEVISE | MONNAIE | RÉEL | MONNAIE | RÉEL |
| RÉEL | RÉEL | RÉEL | RÉEL | RÉEL |
| date/heure | RÉEL | RÉEL | RÉEL | RÉEL |
Par exemple, si un entier est combiné à 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
Seul un ensemble limité de combinaisons de types de données mixtes pour les opérations de comparaison est pris en charge. Pour en savoir plus, consultez référence d’opérateur DAX.
Gestion des vides, des chaînes vides et des valeurs zéro
Le tableau suivant récapitule les différences entre DAX et Microsoft Excel, de la façon dont les espaces sont gérés :
| L'Expression | DAX | Exceller |
|---|---|---|
| VIDE + VIDE | VIDE | 0 (zéro) |
| VIDE +5 | 5 | 5 |
| VIDE * 5 | VIDE | 0 (zéro) |
| 5/VIDE | Infini | Erreur |
| 0/VIDE | NAN | Erreur |
| VIDE/VIDE | VIDE | Erreur |
| FAUX OU VIDE | FAUX | FAUX |
| FAUX ET VIDE | FAUX | FAUX |
| VRAI OU VIDE | VRAI | VRAI |
| VRAI ET VIDE | FAUX | VRAI |
| In a general context where "BLANK" refers to empty spaces or unused areas, the translation could be adjusted to "ESPACE VIDE OU INUTILE". | VIDE | Erreur |
| BLANC ET BLANC | VIDE | Erreur |
Pour plus d’informations sur la façon dont une fonction ou un opérateur particulier gère les valeurs vides, consultez les rubriques individuelles pour chaque fonction DAX, dans la section Référence de fonction DAX.