Excel DAX - Erreurs de formule

Vous pouvez obtenir des erreurs lorsque vous écrivez DAX formulasavec une mauvaise syntaxe. Les champs calculés et les colonnes calculées peuvent contenir des fonctions DAX qui nécessitent un type d'arguments spécifique. Les arguments des fonctions DAX peuvent être des tables, des colonnes ou d'autres fonctions DAX (fonctions DAX imbriquées). Comme les fonctions DAX peuvent renvoyer des tables et des colonnes, il faut veiller à vérifier que le bon type d'arguments est passé aux fonctions DAX.

Les erreurs de formule DAX peuvent être des erreurs de syntaxe ou des erreurs sémantiques. Les erreurs peuvent se produire au moment de la conception ou au moment de l'exécution.

Dans ce chapitre, vous découvrirez certaines erreurs DAX courantes, leurs causes et comment les corriger.

Erreur DAX: calcul abandonné

L'erreur suivante peut se produire lors de la tentative de création (au moment du design) ou d'utilisation (au moment de l'exécution) d'un champ calculé avec une fonction de time-intelligence DAX. Dans chaque cas, une plage de dates non contiguë est transmise à la fonction d'intelligence temporelle.

"Erreur DAX: CALCULATION ABORTED: MdxScript (instance) (00, 0) La fonction 'DATEADD' ne fonctionne qu'avec des sélections de dates contiguës."

Cause au moment de l'exécution

Cette erreur peut s'afficher lorsqu'un champ calculé avec une fonction d'intelligence temporelle DAX est placé dans la zone VALEURS d'un tableau croisé dynamique et que des champs de date tels que le mois ou le trimestre sont sélectionnés en tant que segments ou filtres avant de sélectionner une année. Par exemple, si vous avez des données de trois ans - 2014, 2015 et 2016 et que vous essayez d'utiliser uniquement le mois de mars sans sélectionner le champ Année, les valeurs ne sont pas des valeurs de données contiguës et vous obtiendrez une erreur.

Comment réparer l'erreur au moment de l'exécution?

Dans l'exemple ci-dessus,

  • Ajoutez d'abord l'année en tant que segment ou filtre et sélectionnez une année.

  • Ensuite, ajoutez le mois ou le trimestre en tant que segment ou filtre.

  • Ensuite, sélectionnez un ou plusieurs mois ou trimestres à découper ou à filtrer pour l'année sélectionnée.

Cause au moment du design

Les fonctions d'intelligence temporelle DAX nécessitent une colonne de date spécifiée pour l'argument de date. La colonne de date doit avoir une plage de dates contiguë. Cette erreur peut être renvoyée s'il existe une valeur de date dans une ou plusieurs lignes de la colonne de date qui n'est pas contiguë aux valeurs de données des lignes précédentes et successives.

Si vous avez importé votre table contenant des dates à partir d'une source de données, n'oubliez pas que de nombreuses organisations exécutent des processus spéciaux qui analysent les tables des bases de données à la recherche de valeurs non valides et les remplacent par une valeur particulière. Autrement dit, si une date non valide est trouvée, une valeur de date particulière lui est attribuée qui peut ne pas être contiguë avec d'autres valeurs de données dans la colonne.

Comment corriger cette erreur au moment de la conception?

Procédez comme suit pour corriger l'erreur au moment de la conception -

  • Si votre table de dates est importée à partir d'une source de données, utilisez Actualiser dans la fenêtre Power Pivot pour réimporter toutes les modifications trouvées à la source.

  • Vérifiez les valeurs dans votre colonne de date pour vous assurer qu'elles sont dans un ordre contigu. Si une valeur n'est pas en place, elle devra être corrigée à la source et la table de dates devra être actualisée.

  • Créez une table de dates et une colonne de dates distinctes dans votre modèle de données. Spécifiez la nouvelle colonne de date comme argument de date dans la formule à l'origine de l'erreur. Les tables de dates sont faciles à créer et à ajouter à un modèle de données.

Erreur sémantique DAX - Un exemple

L'erreur DAX suivante est une erreur sémantique -

«Une fonction 'CALCULATE' a été utilisée dans une expression vrai-faux qui est utilisée comme expression de filtre de table. Ce n’est pas autorisé. »

Cause

Cette erreur peut apparaître lorsqu'une ou plusieurs expressions de filtre ne peuvent pas être utilisées dans le contexte du champ calculé ou de l'expression de colonne calculée.

Dans la plupart des cas, cette erreur est provoquée par une expression de filtre spécifiée en tant qu'argument de la fonction DAX CALCULATE. La fonction CALCULATE nécessite des filtres définis comme une expression booléenne ou une expression de table.

Comment corriger ces erreurs?

Vous pouvez corriger ces erreurs en utilisant la fonction DAX FILTER pour définir des filtres en tant qu'expression de table, qui peut ensuite être utilisée comme argument de la fonction DAX CALCULATE.