À quoi sert le “- -” dans une formule Excel? (Excel FAQ)

Vous avez déjà vu un "- -" dans une formule Excel et vous vous demandez à quoi cela sert?

Voici la réponse…

"- -": transformer un Booléen en une valeur numérique

Certaines fonctions Excel (comme par exemple SUMPROD) ne peuvent travailler qu'avec des valeurs numériques. Il arrive donc que vous devez transformer des valeurs de type Booléen (VRAI/FAUX) en valeur numérique pour pouvoir effectuer d'autres calculs.

Excel convertit automatiquement le Booléen en nombre (0 ou 1) dès qu'il est utilisé dans un calcul numérique. Donc par exemple la formule:

=VRAI+0 va donner comme résultat 1 et =FAUX+0 sera égal à 0

Le signe "-" représente une "opération unaire" ce qui veut dire opération qui n'a qu'un seul argument. Cette opération transforme un nombre en sa valeur négative. Et comme c'est une opération mathématique, elle pourra transformer le booléen en nombre.

Le problème est qu'ainsi, la valeur de VRAI sera égale à "-1" ce que nous ne voulons pas:

=-VRAI résultat: -1

=-FAUX résultat: 0

Et que fait-on pour changer le signe d'un nombre? On utilise la "négation"! Donc -(-1) = 1. Si on applique cette règle au Booléen, cela va donner ceci:

=--VRAI résultat: 1

=--FAUX résultat: 0

Excel: Transformer Booléen en nombre

On obtient donc le résultat souhaité… Et dans une formule plus complexe, c'est probablement moins perturbant d'utiliser l'expression

=--(A1<A2) plutôt que =(A1<A2)+0

Un avantage supplémentaire: cette conversion peut vous permettre de vous passer de la construction SI.

À la place de la formule: =SI(A1<A2;1;0), vous pouvez simplement utiliser =--(A1<A2). Le résultat sera le même…

Conclusion

Ceci n'est probablement pas une information vitale pour un utilisateur lambda d'Excel mais si vous aimez bien comprendre la logique qui se cache derrière les fonctions Excel, cela peut être intéressant, voire utile…

Pour aller plus loin dans les fonctions et formules Excel

Pour terminer, voici quelques autres articles qui pourraient vous intéresser…

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *