Les 10 erreurs DAX les plus courantes et comment les éviter
Vous galérez avec des erreurs DAX incompréhensibles ?
Voici les 10 erreurs DAX les plus courantes et comment les éviter.
Du classique (Blank) au redoutable « A table of multiple values was supplied where a single value was expected », ces pièges peuvent saboter vos calculs et rendre vos rapports imprécis.
1- (Blank)
Cause : Se produit lorsqu’une mesure ou une colonne calculée renvoie une valeur vide ou BLANK(). Cela peut être dû à des filtres ne retournant aucun résultat ou à des calculs incorrects.
Solution : Utiliser IF(ISBLANK([Mesure]), 0, [Mesure]) pour gérer les valeurs vides.
2- Infinity
Cause : Apparaît lorsqu’on tente de diviser un nombre par zéro (x / 0).
Solution : Utiliser IF(Diviseur = 0, 0, Numérateur / Diviseur) ou
DIVIDE(Numérateur, Diviseur, 0).
3- NaN (Not a Number)
Cause : Se produit lorsqu’une opération mathématique donne un résultat invalide, comme 0 / 0.
Solution : Utiliser IFERROR() ou DIVIDE() avec une valeur alternative.
4- Type mismatch (Incompatibilité de type)
Cause : Tentative d’exécution d’une opération avec des types de données incompatibles (ex. : additionner du texte et un nombre).
Solution : Convertir les données avec VALUE(), FORMAT() ou CONVERT().
5- A table of multiple values was supplied where a single value was expected.
Cause : Une table est utilisée à la place d’une valeur scalaire dans des fonctions comme IF() ou CALCULATE().
Solution : Appliquer une agrégation (SUM(), MAX(),
SELECTEDVALUE()).
6- The value for column ‘X’ in table ‘Y’ cannot be determined in the current context.
Cause : Tentative de récupération d’une valeur sans agrégation dans un contexte où plusieurs valeurs sont possibles.
Solution : Utiliser des fonctions d’agrégation ou SELECTEDVALUE().
7- Circular dependency detected.
Cause : Une colonne calculée ou une mesure dépend d’elle-même directement ou indirectement.
Solution : Vérifier les références dans les formules et éviter les dépendances entre mesures.
8- Mismatched number of columns in UNION function.
Cause : En utilisant UNION(), les tables fusionnées ont un nombre différent de colonnes.
Solution : S’assurer que les deux tables ont le même nombre de colonnes et des types de données correspondants.
9- Too many arguments were passed to the function.
Cause : Trop de paramètres sont passés à une fonction DAX.
Solution : Vérifier la syntaxe et le nombre d’arguments autorisés pour la fonction.
10- The TRUE/FALSE expression does not specify a column.
Cause : Dans CALCULATE() ou FILTER(), la condition ne fait pas référence à une colonne spécifique.
Solution : Vérifier que le filtre contient une comparaison avec une colonne (Table[Colonne] = « Valeur »).
Ce sont quelques-unes des erreurs les plus courantes en DAX. Vous en avez déjà rencontré certaines ? 😅
