Monsieur Excel
Pour tout savoir faire sur Excel !

27 février 2017

La fonction equiv() : aide en ligne

La fonction equiv() est une des trois fonctions de recherche d’Excel : elle est particulièrement utile. Rappelons-en le principe :
=equiv(valeur_cherchée;vecteur;code)

La valeur cherchée est un texte ou une valeur numérique.
Quand le code est 0, equiv() renvoie la position de la première occurrence de la valeur cherchée dans le vecteur.
Quand le code est 1, equiv() renvoie la position de la dernière occurrence inférieure ou égale à la valeur cherchée dans le vecteur. Cela suppose en général que le vecteur soit classé en ordre croissant.
Quand le code est -1, equiv() renvoie la position de la dernière occurrence supérieure ou égale à la valeur cherchée dans le vecteur. Cela suppose en général que le vecteur soit classé en ordre décroissant.
Quand le code est absent, Excel se comporte comme s’il était égal à 1.


Là où l’aide d’Excel a tout faux…

Comme on le voit dans la photo n°1, Excel appelle le second argument tableau_recherche, ce qui laisse entendre qu’il s’agit d’une matrice. Ceci est renforcé par la photo n°2, où Excel parle clairement d’une « matrice de valeurs ou la référence à une matrice ». Le problème, c’est que si vous entrez une matrice (c’est-à-dire au moins deux lignes et deux colonnes), le résultat de votre equiv() devient un déprimant #NA!

Là où l’aide d’Excel vous induit en erreur…

Dans le bloc D4:D8, nous avons entré les formules reproduites en E4:E8. Dans mon modèle, la formule de D1, ainsi que celles des colonnes A et B, est : =ent(1+10*alea()).

Chaque fois que je lance un recalcul avec [F9], je constate que D5 et D6 affichent toujours le même résultat, idem pour D7 et D8.

D5:D6 montrent bien que, quand le troisième argument est absent, le code absent prend la valeur 1.

Mais on voit en D7:D8 que, quand il y a le « ; » sans code, le code absent prend alors la valeur 0 !