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.
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.
Poster un commentaire