• Votre panier est vide.

  • LOGIN

Logique DAX et espaces vides des articles de blog – SQLServerCentral


Certains articles de veille peuvent faire l'objet de traduction automatique.


Il y a quelque temps, je bavardais avec Shannon Lindsay sur Twitter. Elle y partage de nombreux conseils utiles sur Power BI. Elle a partagé son conseil de syntaxe de l’opérateur & utilisé pour la concaténation et de l’opérateur && utilisé pour le booléen AND, ce qui m’a rappelé les conversions implicites et les espaces dans DAX.

Avant de lire le tweet ci-dessous, voyez combien d’entre eux vous pouvez deviner correctement:

Blank + 5 = ? 
Blank * 5 = ?
5 / Blank = ?
0 / Blank = ?

Dans DAX, Blank est converti en 0 en addition et soustraction.

Et la logique booléenne? Connaissez-vous le résultat des expressions suivantes?

AND(True(), Blank()) = ? 
OR(True(), Blank()) = ? 
AND(False(), Blank()) = ? 
AND(Blank(), Blank()) = ? 

Vous pouvez voir les résultats ainsi que quelques autres permutations dans la capture d’écran ci-dessous.

Deux tables dans un rapport Power BI. Le tableau de gauche montre les opérations arithmétiques impliquant des blancs. Par exemple, Blank + Blank = Blank, 0 * Blank = NaN, 5 * Blank = Blank, 5 / Blank = Infinity. Le tableau de droite montre les opérations booléennes impliquant des blancs. Vrai et vide = faux, vrai ou vide = vrai, faux et vide = faux, vide ou vide = faux
Lisez le tableau de gauche en tant que Number1 [operator] Number2, donc 5 + Blank = 5. 5 * Blank = Blank. Et 5 / Blank = Infini. Lisez le bon tableau comme Bool1 [operator] Bool2, donc True AND Blank = False et True OU Blank = True.

Pourquoi est-ce important?

Vous devez comprendre l’impact des blancs dans vos données. Voulez-vous vraiment diviser par zéro lorsque vous manquez des données? Si vous exécutez un ET booléen et que vos données sont vides, êtes-vous d’accord pour afficher le résultat False? N’oubliez pas que votre expression peut produire des résultats indésirables plutôt qu’une erreur.

Tout d’abord, vous devez savoir où il est possible dans vos données d’obtenir une entrée vide. Lorsque vous écrivez vos mesures DAX, vous devrez peut-être gérer les blancs. DAX propose le IFERREUR () pour vérifier si le résultat d’une expression renvoie une erreur. Il y a aussi un ISBLANK () fonction que vous pouvez utiliser pour vérifier une valeur vide et un SE FONDRE() pour fournir une valeur alternative lorsqu’une valeur vide est détectée.

Mais l’ajout de logique supplémentaire dans vos mesures peut avoir un impact sur les performances. Par exemple, le DIVISER() La fonction peut gérer la division par zéro erreur pour vous. Mais DIVIDE () peut être plus lent que l’opérateur /. La différence de performances dépend de vos données et de l’expression que vous écrivez. Vous pouvez également utiliser une instruction IF pour vérifier si une valeur d’entrée est supérieure à zéro à l’aide de l’opérande>. Cela peut être plus rapide que de vérifier les blancs ou les erreurs à l’aide d’autres fonctions.

En fin de compte, produire le résultat correct est plus important que des performances rapides, mais nous nous efforçons d’atteindre les deux. Si vous avez des conseils sur la gestion des blancs dans DAX, veuillez les partager dans les commentaires.

La poste Logique DAX et blancs est apparu en premier le SQLServerCentral.

Voir aussi :

octobre 29, 2020

Poster un commentaire

Please Login to comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Culte du code | 2015-2022  (Vecteurs par Freepik, Parallax par fullvector)