Recherche H ou V avec « faux »
Un problème se présente cependant avec le modèle du 24 mars. Qu’arrive-t-il si l’on entre en F14 un prénom erroné, par exemple « Jules » ?
Eh bien, tout logiquement, nous récupérerons les résultats pour « Jacques Lerose », puisque « Jacques » est le dernier prénom inférieur ou égal à
« Jules ».
Là nous constatons qu’il y a un problème. En effet, avec la table de tarifs postaux, les valeurs intermédiaires sont acceptables : tout envoi entre 100 gr. et 250 gr. coûte effectivement 1,22 €. En revanche, un prénom entre
« Jacques » et « Léon » ne correspond pas à « Jacques ».
Il est donc souhaitable de pouvoir exclure – dans un tel cas – les valeurs intermédiaires. C’est une fonctionnalité qui n’était pas présente dans la première version de RechercheH() et RechercheV(), mais qui a été ajoutée par la suite. L’astuce revient à ajouter un quatrième argument avec la valeur FAUX, pour indiquer à Excel que l’on refuse les valeurs intermédiaires.
Nouvelle formule de F15 : =recherchev(F14;E3:F11;2;faux)
Si le prénom n’est pas présent dans la liste, la valeur « #NA » apparaît alors…
Remarque 1
Quand il n’y a pas de quatrième argument, cela se passe comme si ce quatrième argument était VRAI : les valeurs intermédiaires sont alors acceptées.
Remarque 2
Microsoft ne vous le dit pas dans l’aide mais, quand il y a FAUX en quatrième argument, l’algorithme utilisé est différent. Dans ce cas, Excel descend la colonne de recherche jusqu’à ce qu’il trouve la valeur cherchée et – dès qu’il l’a trouvée – s’arrête et renvoie ce qui est dans cette ligne et dans la colonne demandée.
Corollaires de la remarque 2
Etant donné l’algorithme utilisé quand il y a FAUX en dernier argument, il est évident que, dans ce cas, il n’y a plus aucune nécessité pour que la colonne de recherche soit triée en ordre croissant.
S’il y a plusieurs « Gilles » dans la liste, c’est maintenant le premier qui sera retenu…
Remarque 3
Ce dernier argument avec FAUX fonctionne avec RechercheV() et avec RechercheH(), mais pas avec Recherche(). Pour obtenir le même résultat avec Recherche(), il faut écrire : =si(recherche(valeur);vecteur_recherche)=
valeur;recherche(valeur;matrice_recherche);na())
Eh bien, tout logiquement, nous récupérerons les résultats pour « Jacques Lerose », puisque « Jacques » est le dernier prénom inférieur ou égal à
« Jules ».
Là nous constatons qu’il y a un problème. En effet, avec la table de tarifs postaux, les valeurs intermédiaires sont acceptables : tout envoi entre 100 gr. et 250 gr. coûte effectivement 1,22 €. En revanche, un prénom entre
« Jacques » et « Léon » ne correspond pas à « Jacques ».
Il est donc souhaitable de pouvoir exclure – dans un tel cas – les valeurs intermédiaires. C’est une fonctionnalité qui n’était pas présente dans la première version de RechercheH() et RechercheV(), mais qui a été ajoutée par la suite. L’astuce revient à ajouter un quatrième argument avec la valeur FAUX, pour indiquer à Excel que l’on refuse les valeurs intermédiaires.
Nouvelle formule de F15 : =recherchev(F14;E3:F11;2;faux)
Si le prénom n’est pas présent dans la liste, la valeur « #NA » apparaît alors…
Remarque 1
Quand il n’y a pas de quatrième argument, cela se passe comme si ce quatrième argument était VRAI : les valeurs intermédiaires sont alors acceptées.
Remarque 2
Microsoft ne vous le dit pas dans l’aide mais, quand il y a FAUX en quatrième argument, l’algorithme utilisé est différent. Dans ce cas, Excel descend la colonne de recherche jusqu’à ce qu’il trouve la valeur cherchée et – dès qu’il l’a trouvée – s’arrête et renvoie ce qui est dans cette ligne et dans la colonne demandée.
Corollaires de la remarque 2
Etant donné l’algorithme utilisé quand il y a FAUX en dernier argument, il est évident que, dans ce cas, il n’y a plus aucune nécessité pour que la colonne de recherche soit triée en ordre croissant.
S’il y a plusieurs « Gilles » dans la liste, c’est maintenant le premier qui sera retenu…
Remarque 3
Ce dernier argument avec FAUX fonctionne avec RechercheV() et avec RechercheH(), mais pas avec Recherche(). Pour obtenir le même résultat avec Recherche(), il faut écrire : =si(recherche(valeur);vecteur_recherche)=
valeur;recherche(valeur;matrice_recherche);na())
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil