Types de données dans Power BI Desktop

Cet article décrit les types de données pris en charge dans Power BI Desktop et Data Analysis Expressions (DAX).

Lorsque vous chargez des données dans Power BI Desktop, celui-ci tente de convertir le type de données de la colonne source en un type de données qui prend mieux en charge un stockage, des calculs et une visualisation des données plus efficaces. Par exemple, si une colonne de valeurs que vous importez à partir d’Excel ne contient aucune valeur fractionnaire, Power BI Desktop convertit toute la colonne de données en type de données Nombre entier, qui convient davantage au stockage des nombres entiers.

Ce concept est important, car certaines fonctions DAX ont des exigences particulières en matière de type de données. Même si très souvent DAX convertit implicitement un type de données pour vous, cela n’est pas toujours le cas. Par exemple, si une fonction DAX nécessite un type de données Date et que le type de données de votre colonne est Texte, la fonction DAX ne fonctionnera pas correctement. Il est donc important et utile d’obtenir le type de données correct pour une colonne. Les conversions implicites sont décrites plus loin dans cet article.

Déterminer et spécifier le type de données d’une colonne

Dans Power BI Desktop, vous pouvez déterminer et spécifier le type de données d’une colonne dans l’Éditeur Power Query ou dans la vue Données ou Rapport :

Types de données dans l’Éditeur Power Query

Screenshot of the Data type ribbon, showing it in the Query Editor.

Types de données dans la vue Données ou Rapport

Screenshot of the Data type ribbon, showing it in the Data View.

La liste déroulante Type de données dans l’Éditeur Power Query comporte deux types de données actuellement absents dans la vue Données ou Rapport : Date/Heure/Fuseau horaire et Durée. Quand une colonne avec ces types de données est chargée dans le modèle et affichée dans la vue Données ou Rapport, une colonne avec le type de données Date/Heure/Fuseau horaire est convertie au format Date/Heure et une colonne avec le type de données Durée est convertie au format Nombre décimal.

Le type de données Binaire n’est pas pris en charge actuellement en dehors de l’Éditeur Power Query. Dans l’Éditeur Power Query, vous pouvez l’utiliser lors du chargement de fichiers binaires si vous le convertissez en d’autres types de données avant de le charger dans le modèle Power BI. Il existe dans les menus Vue de données et Vue de rapport pour des raisons de compatibilité, mais si vous essayez de charger des colonnes binaires dans le modèle Power BI, vous pouvez rencontrer des erreurs.

Types numériques

Power BI Desktop prend en charge trois types numériques :

Nombre décimal : représente un nombre à virgule flottante 64 bits (huit octets). C’est le type numérique le plus courant. Il correspond aux nombres tels qu’on se les représente habituellement. Bien que conçu pour gérer les nombres avec des valeurs fractionnelles, il gère également les nombres entiers. Le type Nombre décimal peut gérer des valeurs négatives comprises entre -1,79E +308 et -2,23E -308, 0, et des valeurs positives comprises entre 2,23E -308 et 1,79E +308. Par exemple, des nombres comme 34, 34,01 et 34,000367063 sont des nombres décimaux valides. La précision maximale qui peut être représentée dans un type Nombre décimal a une longueur de 15 chiffres. Le séparateur décimal peut figurer n’importe où dans le nombre. Le type Nombre décimal correspond à la manière dont Excel stocke les nombres. Le type de données Nombre décimal est spécifié dans le modèle d’objet tabulaire (TOM) en tant que Type DataType.Double Enum 1.

Nombre décimal fixe : possède un emplacement fixe pour le séparateur décimal. Le séparateur décimal a toujours quatre chiffres à sa droite et autorise 19 chiffres de précision. La plus grande valeur, qu’il peut représenter est 922 337 203 685 477,5807 (positif ou négatif). Le type Nombre décimal fixe est utile dans les cas où l’arrondi peut introduire des erreurs. Si vous utilisez beaucoup de nombres ayant de petites valeurs fractionnelles, il y a un risque de cumul qui peut entraîner une légère imprécision. Les valeurs situées après les quatre chiffres à droite du séparateur décimal étant tronquées, le type Nombre décimal fixe peut vous aider à éviter ces genres d’erreurs. Si vous connaissez SQL Server, ce type de données correspond à la valeur Decimal (19,4) de SQL Server ou au type de données Currency dans Analysis Services et Power Pivot dans Excel. Le type de données Nombre décimal fixe est spécifié dans TOM en tant que type d’énumération DataType.Decimal 1.

Nombre entier : représente un entier 64 bits (huit octets). S’agissant d’un entier, il ne comporte aucun chiffre à droite du séparateur décimal. Il autorise 19 chiffres ; les nombres entiers positifs ou négatifs compris entre -9 223 372 036 854 775 807 (-2^63+1) et 9 223 372 036 854 775 806 (2^63-2). Il peut représenter la plus grande précision possible parmi les divers types de données numériques. Comme Nombre décimal fixe, le type Nombre entier peut être utile dans les cas où vous avez besoin de contrôler l’arrondi. Le type de données Nombre entier est spécifié dans TOM en tant que DataType.Int64 Enum type 1.

Notes

Le modèle de données Power BI Desktop prend en charge les valeurs d’entier 64 bits, mais le plus grand nombre de visuels pouvant être exprimé de façon sûre est 9,007,199,254,740,991 (2^53-1) en raison des limitations de JavaScript. Si vous utilisez des nombres dans votre modèle de données ci-dessus, vous pouvez réduire la taille via des calculs avant de les ajouter à un visuel.

1 - DataType Énumérations sont spécifiées dans la propriété Column DataType tabulaire. Pour en savoir plus sur la modification par programmation d’objets dans Power BI, consultez Programmation Power BI jeux de données avec le modèle objet tabulaire.

Garantir la précision des calculs de type nombre

Les valeurs de colonne du type de données Nombre décimal sont stockées sous forme de types de données approximatifs conformément à la norme IEEE 754 pour les nombres à virgule flottante. Les types de données approximatifs ont des limitations inhérentes à leur précision , car au lieu de stocker la valeur exacte d’un nombre, ils peuvent être stockés comme une approximation extrêmement proche, ou arrondie. Cela signifie qu’il est possible que la perte de précision, ou l’imprécision, se produisent si le nombre de chiffres à virgule flottante ne peut pas être quantifié de manière fiable dans la valeur à virgule flottante. Le risque d’imprécision peut apparaître comme des résultats de calcul inattendus ou inexacts dans certains scénarios de création de rapports.

Les calculs effectuant des comparaisons liées à l’égalité (=, , <>>= et <=) entre les valeurs du type de données Nombre décimal peuvent potentiellement retourner des résultats inattendus. Cela est le plus apparent lors de l’utilisation de la fonction RANKX dans une expression DAX où le résultat est calculé deux fois, ce qui entraîne des nombres légèrement différents. La différence entre les deux nombres n’est pas perceptible par l’utilisateur du rapport, mais le résultat de classement peut être notablement incorrect. Pour éviter les résultats inattendus, vous pouvez modifier le type de données de colonne de nombre décimal en nombre décimal fixe ou entier, ou effectuer un arrondi forcé à l’aide de ROUND. Le type de données Nombre décimal fixe a une plus grande précision, car le séparateur décimal a toujours quatre chiffres à droite.

Bien que rares, les calculs qui additionnent les valeurs d’une colonne de type de données Nombre décimal peuvent potentiellement retourner des résultats inattendus. Il s’agit probablement de colonnes qui ont à la fois une grande quantité de nombres positifs et une grande quantité de nombres négatifs. Le résultat de la somme est affecté par la distribution des valeurs entre les lignes de la colonne. Si le calcul requis pour retourner une somme de résultats de requête additionne la plupart des nombres positifs avant de additionner la plupart des nombres négatifs, la somme partielle au début peut potentiellement perdre la précision, car elle peut être asymétrique par la somme partielle positive importante. En revanche, si une requête ajoute des nombres positifs et négatifs équilibrés, la somme conserve plus de précision et, par conséquent, des résultats plus précis sont retournés. Pour éviter les résultats inattendus, vous pouvez modifier le type de données de colonne de nombre décimal en nombre décimal fixe ou nombre entier.

Types Date/Heure

Power BI Desktop prend en charge cinq types de données Date/Heure dans la vue Requête. Les types Date/Heure/Fuseau horaire et Durée sont convertis pendant le chargement dans le modèle. Le modèle de données Power BI Desktop prend en charge uniquement la date et l’heure, mais il peut être mis en forme sous forme de dates ou d’heures de manière indépendante.

Date/Heure : représente une valeur de date et d’heure. Dans les coulisses, la valeur Date/Heure est stockée au format Nombre décimal. Vous pouvez donc effectuer une conversion entre les deux. La partie heure d’une date est stockée sous forme de fraction de multiples entiers de 1/300 de seconde (3,33 ms). Les dates comprises entre les années 1900 et 9999 sont prises en charge.

Date : représente seulement une date (aucune partie heure). En cas de conversion dans le modèle, une valeur de Date est identique à une valeur de Date/Heure avec une valeur fractionnelle égale à zéro.

Heure : représente seulement une heure (aucune partie date). En cas de conversion dans le modèle, une valeur d’Heure est identique à une valeur de Date/Heure sans aucun chiffre à gauche du séparateur décimal.

Date/Heure/Fuseau horaire : représente une Date/Heure au format UTC avec un décalage de fuseau horaire. Ce format est converti en Date/Heure pendant le chargement dans le modèle. Le modèle Power BI n’ajuste pas le fuseau horaire en fonction de la localisation ou des paramètres régionaux d’un utilisateur. Si la valeur 09:00 est chargée dans le modèle aux États-Unis, elle s’affiche au format 09:00 chaque fois que le rapport est ouvert ou consulté.

Durée : représente une durée. Ce format est converti au format Nombre décimal lors du chargement dans le modèle. En tant que type Nombre décimal, il peut être ajouté ou soustrait d’un champ Date/Heure avec des résultats corrects. S’agissant d’un type Nombre décimal, vous pouvez facilement l’utiliser dans des visualisations qui indiquent un ordre de grandeur.

Type Texte

Texte : chaîne de données de caractères Unicode. Il peut s’agir de chaînes, de nombres ou de dates représentés dans un format texte. La longueur de chaîne maximale est de 268 435 456 caractères Unicode (256 méga caractères) ou de 536 870 912 octets.

Power BI stocke les données de manière à pouvoir afficher les données différemment dans certaines situations. Cette section décrit des situations courantes où l’apparence des données de texte peut changer légèrement entre l’interrogation de données à l’aide de Power Query, puis après le chargement des données.

Respect de la casse (in-)

Le moteur qui stocke et interroge les données dans Power BI ne respecte pas la casse, ce qui signifie que le moteur traite différentes majuscules de lettres comme la même valeur : a est égal à A. toutefois, Power Query respecte la casse : un n’estpas égal à A. La différence de sensibilité au cas entraîne des situations où les données de texte sont chargées dans Power BI et changent par la suite la mise en majuscules, apparemment inexplicablement. Dans l’exemple simple suivant, nous avons chargé des données sur les commandes : une colonne OrderNo unique pour chaque commande et une colonne de destinataire qui contient le nom du destinataire, entrée manuellement au moment de l’ordre. Dans Power Query, ces données apparaissent comme suit :

Textual data with various capitalizations in Power Query

Notez que plusieurs commandes ont le même nom de destinataire, bien qu’entré dans le système de façons légèrement différentes.

Lorsque nous accédons à l’onglet Données dans Power BI après le chargement des données, la même table ressemble au tableau suivant.

The same textual data after loading into Power BI has changed capitalization

Notez que l’emploi des majuscules dans certains noms a changé par rapport aux données initialement entrées. Cette modification est due au fait que le moteur qui stocke les données dans Power BI ne respecte pas la casse et traite les versions en minuscules et en majuscules des caractères comme identiques. Power Query est sensible à la casse et fait donc cette distinction et affiche par conséquent les données exactement telles qu’elles ont été stockées dans le système source. Toutefois, les données figurant dans la deuxième capture d’écran ont été chargées dans le moteur de Power BI et ont donc changé.

Lors du chargement des données, le moteur évalue chaque ligne, une par une, en commençant par le haut. Pour chaque colonne de texte (par exemple, Addressee), le moteur stocke un dictionnaire de valeurs uniques pour améliorer la performance via la compression des données. Lors du traitement de la colonne Addressee, les trois premières valeurs rencontrées par le moteur sont uniques et sont stockées dans le dictionnaire. Toutefois, à partir du quatrième nom (commande 1004), comme le moteur ne respecte pas la casse, les noms sont considérés comme identiques : Taina Hasu est identique à TAINA HASU et à Taina HASU. Par conséquent, le moteur ne stocke pas ce nom, mais se réfère au premier nom qu’il a rencontré. Cela explique également pourquoi le nom MURALI DAS est également écrit en majuscules, car il s’agit simplement de la façon dont le nom a été écrit quand le moteur l’a évalué pour la première fois, lors du chargement des données de haut en bas.

L’image suivante explique ce processus :Depiction of the data load process and mapping text values to a dictionary of unique values

Dans l’exemple ci-dessus, le moteur charge la première ligne de données, crée le dictionnaire Addressee (de destinataires) et y ajoute Taina Hasu. Il ajoute également une référence à cette valeur dans la colonne Addressee de la table qu’il a chargée. Il effectue cette opération pour la deuxième et la troisième ligne également, car ces deux noms ne sont pas équivalents aux autres lorsqu’ils sont comparés en ignorant la casse.

Le destinataire (Addressee) de la quatrième ligne est comparé aux noms du dictionnaire et est trouvé : comme le moteur ne respecte pas la casse, TAINA HASU et Taina Hasu sont identiques. Par conséquent, le moteur n’ajoute pas de nouveau nom au dictionnaire Addressee, mais il fait référence à la place au nom existant. La même chose se produit pour les lignes restantes.

Notes

Étant donné que le moteur qui stocke et interroge les données dans Power BI respecte la casse, un soin particulier doit être pris lors de l’utilisation en mode DirectQuery avec une source sensible à la casse. Power BI part du principe que la source a éliminé les lignes en double ; étant donné que Power BI ne respecte pas la casse, deux valeurs qui diffèrent uniquement par cas sont traitées comme dupliquées, tandis que la source peut ne pas être traitée comme telle. Dans ce cas, le résultat final n’est pas défini et doit être évité. Si vous utilisez le mode DirectQuery et que votre source de données respecte la casse, vous devez normaliser la casse dans la requête source ou dans Power Query.

Espaces de fin

Lorsque vous utilisez des données qui contiennent des espaces de début ou de fin, vous devez utiliser la fonction Text.Trim pour supprimer des espaces au début ou à la fin du texte afin d’éviter toute confusion, car le moteur Power BI supprime automatiquement les espaces de fin, mais pas les espaces de début. Sans supprimer d’espaces de début ou de fin, vous risquez d’échouer à créer une relation, car des valeurs en double sont détectées ou des visuels peuvent retourner des résultats inattendus. Par exemple, nous avons chargé des données sur les clients : une colonne Name qui contient le nom du client et une colonne d’index unique pour chaque entrée. Notez que le nom du client est répété quatre fois, mais chaque fois avec différentes combinaisons d’espaces de début et de fin :

Ligne Espace de début Espace de fin Nom (entre guillemets pour plus de clarté) Index Longueur du texte
1 Non Non « Dylan Williams » 1 14
2 Non Oui « Dylan Williams » 10 15
3 Oui Non « Dylan Williams » 20 15
4 Oui Oui « Dylan Williams » 40 16

Ces variations peuvent se produire avec une entrée manuelle de données au fil du temps. Dans Power Query, les données obtenues sont indiquées comme suit.

Screenshot of textual data with various leading and trailing spaces in Power Query

Lorsque nous accédons à l’onglet Données dans Power BI une fois les données chargées, la même table ressemble à l’image suivante.

Screenshot of the same textual data after loading into Power BI returns the same number of rows as before.

Toutefois, un visuel basé sur ces données retourne seulement deux lignes.

Screenshot of a table visual based on the same data returns just two lines of data - the first row has a total index of 60 and the second row has a total index of 11.

Comme l’illustre l’image ci-dessus, la première ligne a une valeur totale de « 60 » pour le champ Index , ce qui conduit à la conclusion que la première ligne du visuel représente les deux dernières lignes des données chargées précédemment, tandis que la deuxième ligne avec la valeur d’index totale de « 11 » représente les deux premières lignes. La différence entre le nombre de lignes entre le visuel et la table de données est due au fait que le moteur supprime automatiquement (découpage) tous les espaces de fin, mais pas les espaces de début. Ainsi, la première et la deuxième ligne et la troisième et la quatrième ligne sont considérées comme identiques et, par conséquent, le visuel retourne ces résultats.

Ce comportement peut se produire lors de l’utilisation de visuels, ainsi que des messages d’erreur liés aux relations, car des valeurs en double sont détectées. Par exemple, selon la configuration de vos relations, vous pouvez voir une erreur similaire à l’image suivante.

Screenshot of an error message showing: Column 'Name' in Table 'Customers' contains a duplicate value 'Dylan Williams' and this is not allowed for columns on the one side of a many-to-one relationship or for columns that are used as the primary key of a table.

Dans d’autres situations, il se peut que vous ne puissiez pas créer une relation plusieurs-à-un ou un-à-un, car des valeurs en double sont détectées.

Screenshot of the relationship dialog showing a 'the cardinality you selected isn't valid for this relationship' error, which is related to duplicate values being detected.

Ces erreurs sont renvoyées aux espaces de début ou de fin et peuvent être résolues à l’aide de la fonction Text.Trim pour supprimer les espaces dans la fenêtre Transformation de données.

Type True/false

Vrai/Faux : valeur booléenne Vrai ou Faux.

Power BI convertit et affiche les données différemment dans certaines situations. Cette section décrit les cas courants de conversion de valeurs booléennes et comment traiter les conversions qui créent des résultats inattendus dans Power BI.

Pour obtenir les résultats les plus performants et les plus cohérents, lors du chargement d’une colonne qui contient des informations booléennes (true/false) dans Power BI, affectez au type de colonne la valeur True/False, comme décrit et expliqué dans l’exemple suivant.

Dans cet exemple, nous avons chargé des données indiquant si nos clients se sont inscrits à notre bulletin d’informations : la valeur TRUE indique que le client s’est inscrit au bulletin d’informations, alors que la valeur FALSE indique que le client ne s’est pas inscrit. Toutefois, lorsque nous publions le rapport dans le service Power BI, nous constatons que la colonne indiquant le suivi de l’état d’inscription au bulletin d’informations affiche 0 et -1 au lieu des valeurs attendues TRUE et FALSE. Les collections suivantes d’étapes impliquant l’interrogation, la publication et l’actualisation des données décrivent comment les conversions se produisent et comment les traiter.

La requête simplifiée pour cette table est illustrée ci-dessous.

Columns set to boolean

Le type de données de la colonne Subscribed To Newsletter (Inscrit à la lettre d’informations) est défini sur Any (Quelconque) et, en raison de ce paramétrage, les données sont chargées en tant que texte dans le modèle Power BI :

Data loaded into Power B I appears as expected

Quand nous ajoutons une visualisation simple affichant les informations détaillées par client, les données apparaissent dans le visuel comme prévu, à la fois dans Power BI Desktop et en cas de publication dans le service Power BI.

Visual shows data appearing as expected

Toutefois, lorsque nous actualisons le jeu de données dans le service Power BI, la colonne Subscribed To Newsletter (Inscrit à la lettre d’informations) dans les visuels affiche les valeurs -1 et 0 au lieu des valeurs TRUE et FALSE :

Visual shows data appearing in an unexpected format after refresh

Si nous republions le rapport à partir de Power BI Desktop, la colonne Subscribed To Newsletter affiche à nouveau TRUE ou FALSE comme prévu, mais une fois qu’une actualisation a lieu dans le service Power BI, les valeurs sont de nouveau modifiées pour afficher -1 et 0.

La solution pour s’assurer que cela ne se produise pas consiste à définir toutes les colonnes booléennes sur le type True/False dans Power BI Desktop et à republier votre rapport.

Change the data type of the column to true false

Lorsque la modification est apportée, la visualisation affiche les valeurs de la colonne Subscribed To Newsletter de manière légèrement différente. Au lieu que le texte soit entièrement en majuscules (comme entré dans la table), il est désormais en italique et seule la première lettre est majuscule, ce qui est le résultat de la modification du type de données de la colonne.

Values appear differently when the data type is changed

Une fois que le type de données a été modifié et republié dans le service Power BI, et lorsqu’une actualisation se produit, les valeurs sont affichées sous la forme True ou False, comme prévu.

When true or false values use the true false data type, data appears as expected after refresh

En résumé, lorsque vous travaillez avec des données booléennes dans Power BI, assurez-vous que les colonnes sont définies sur le type de données True/False dans Power BI Desktop.

Type Vide/Null

Vide : type de données dans DAX qui représente et remplace les valeurs null SQL. Vous pouvez créer une valeur vide à l’aide de la fonction VIDE et vérifier la présence de valeurs vides à l’aide de la fonction logique ESTVIDE.

Type de données Binaire

Le type de données Binaire peut être utilisé pour représenter n’importe quelles autres données au format binaire. Dans l’Éditeur Power Query, vous pouvez l’utiliser lors du chargement de fichiers binaires si vous le convertissez en d’autres types de données avant de le charger dans le modèle Power BI. Les colonnes binaires ne sont pas prises en charge dans le modèle de données Power BI. Il existe dans les menus Vue de données et Vue de rapport pour des raisons de compatibilité, mais si vous essayez de charger des colonnes binaires dans le modèle Power BI, vous pouvez rencontrer des erreurs.

Notes

Si une colonne binaire se trouve dans le résultat des étapes d’une requête, une tentative d’actualisation des données via une passerelle peut provoquer des erreurs. Il est recommandé de supprimer explicitement toutes les colonnes binaires comme dernière étape dans vos requêtes.

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 retournent une table qui peut ensuite servir d’entrée pour d’autres fonctions. Dans certaines fonctions qui nécessitent une table comme entrée, vous pouvez spécifier une expression qui correspond à une table. Pour certaines fonctions, une référence à une table de base est obligatoire. Pour plus d’informations sur les exigences relatives à des fonctions spécifiques, consultez Référence des fonctions DAX.

Conversion de types de données implicites et explicites dans les formules DAX

Chaque fonction DAX a des exigences spécifiques quant aux types de données 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 tables.

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, dans de nombreux cas DAX retourne une erreur. Toutefois, dans la mesure du possible DAX essaie de convertir implicitement les données vers le type de données requis. Par exemple :

  • Vous pouvez taper une date comme chaîne. DAX l’analysera et tentera d’effectuer un cast vers l’un des formats de date et d’heure de Windows.
  • Vous pouvez ajouter VRAI + 1 et obtenir le résultat 2, car VRAI est converti implicitement en nombre 1 et l’opération 1 + 1 est effectuée.
  • Si vous additionnez des valeurs de deux colonnes et que l’une d’elles est représentée en tant que texte ("12") et l’autre en tant que nombre (12), DAX convertit implicitement la chaîne en nombre, puis effectue l’addition pour obtenir 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.

Tableau des conversions de données implicites

Le type de conversion effectué est déterminé par l’opérateur, qui convertit les valeurs dont il a besoin 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 quand il est couplé avec le type de données dans la ligne d’intersection.

Notes

Les types de données texte ne sont pas inclus dans ces tableaux. Quand un nombre est représenté comme dans un format texte, dans certains cas Power BI tente de déterminer le type numérique et le représente sous forme de nombre.

Addition (+)

Opérateur(+) ENTIER DEVISE RÉEL Date/Heure
ENTIER ENTIER DEVISE RÉEL Date/Heure
DEVISE DEVISE DEVISE 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 avec des données de devise, les deux valeurs sont converties en nombre réel et le résultat retourné est un nombre réel.

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 diminuteur (côté droit).

Opérateur(-) ENTIER DEVISE RÉEL Date/Heure
ENTIER ENTIER DEVISE RÉEL RÉEL
DEVISE DEVISE DEVISE 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.

Notes

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

Multiplication (*)

Opérateur(*) ENTIER DEVISE RÉEL Date/Heure
ENTIER ENTIER DEVISE RÉEL ENTIER
DEVISE DEVISE RÉEL DEVISE DEVISE
RÉEL RÉEL DEVISE 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 un nombre réel.

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érator(/) (ligne/colonne) ENTIER DEVISE RÉEL Date/Heure
ENTIER RÉEL DEVISE RÉEL RÉEL
DEVISE DEVISE RÉEL DEVISE 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é avec une valeur de devise 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 celles-ci sont considérées comme supérieures aux valeurs numériques ou de date/heure. Les nombres et les valeurs de date et d’heure sont considérés comme ayant le même rang. Aucune conversion implicite n’est effectuée pour les valeurs de chaîne ou booléennes. 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 ENTIER DEVISE RÉEL Date/Heure
ENTIER ENTIER DEVISE RÉEL RÉEL
DEVISE DEVISE DEVISE RÉEL RÉEL
RÉEL RÉEL RÉEL RÉEL RÉEL
Date/Heure RÉEL RÉEL RÉEL Date/heure

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 toutes représentées par le même nouveau type de valeur, VIDE. Vous pouvez également générer des vides à l’aide de la fonction VIDE, ou vérifier la présence de vides à l’aide de la fonction ESTVIDE.

Le traitement des vides dans des opérations telles que l’addition ou la concaténation dépend de la fonction. Le tableau suivant résume les différences entre les formules DAX et Microsoft Excel, dans la façon dont les vides 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 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
VIDE OU VIDE VIDE Erreur
VIDE ET VIDE VIDE Erreur

Étapes suivantes

Vous pouvez effectuer toutes sortes d’opérations avec Power BI Desktop et des données. Pour plus d’informations sur ses fonctionnalités, passez en revue les ressources suivantes :