Dans des formules souvent "avancées", on voit apparaitre ce genre d'opérations semblant inutile à priori !
On voit cette technique quand la formule renvoie une matrice de valeurs booléennes.
{ VRAI ; FAUX ; VRAI }
et que l'on veut compter les VRAI par exemple.
On va souvent utiliser la fonction SOMME.
=SOMME( { VRAI ; FAUX ; VRAI } ) ==> 0 !
Mais le résultat est ici 0 (zéro) car VRAI et FAUX sont des valeurs booléennes et non numériques.
Conversion automatique d'Excel
On va profiter de la conversion qu'Excel réalise automatiquement dans certain cas (réalisation d'opérations de calculs).
Si dans une formule, on utilise un mauvais type de donnée, Excel va chercher à le convertir pour réaliser l'opération.
Exemple :
Un nombre stocké en texte (remarquer les guillemets).
= "5" * 2 ==> 10
On va donc profiter de ce comportement
Nous allons appliquer une opération mathématique à une valeur qui à la particularité de ne "rien" faire (ne pas changer la valeur) !
= "5" * 1 ==> 5
= "5" + 0 ==> 5
= --5 => -(-5) ==> 5
On peut aussi utiliser la fonction N.
= N("5") ==> 5
Donc pour les valeurs booléennes on a :
= VRAI * 1 ==> 1
= FAUX * 1 ==> 0
Dans notre formule on obtient :
=SOMME( { VRAI ; FAUX ; VRAI } * 1 ) ==> 2
C'est parfois inutile car une opération est déjà appliquée qui génèrera la conversion
Par exemple :
=SOMME( { VRAI ; FAUX ; VRAI } * { VRAI ; FAUX ; FAUX} )
Merci pour votre attention bienveillante.