Formation PUB760 : Microsoft Excel, 2021 Quelques fonctions Excel

5.8 EQUIVX() pour rechercher la position d'un élément recherché


La fonction EQUIVX() permet de rechercher la position relative d'une valeur dans une plage. Elle est souvent utilisée en combinaison avec INDEX().

EQUIVX() est une version améliorée de EQUIV().

Contrairement à RECHERCHEV() ou à RECHERCHEX(), EQUIVX() retourne la position relative d'un élément dans une plage et non une valeur qui correspond à cet élément.

Arguments obligatoires

EQUIVX() demande au moins deux arguments :

  • la valeur recherchée
  • la plage dans laquelle Excel recherchera la valeur.

Par exemple, pour connaître la position du code inscrit dans la cellule B8 par rapport à la plage A2:A6, entrez ceci : =EQUIVX(B8;A2:A6)

EQUIVX()

Dans cet exemple, EQUIVX() indique que la valeur BORDU est la 2e de la plage de recherche.

On voit que sa forme la plus simple, EQUIVX() s'utilise de la même façon que EQUIV(). Lorsqu'on utilise seulement les deux arguments obligatoires, il n'y aura aucune différence entre ces deux fonctions si la valeur recherchée est trouvée.

Par contre, si la valeur recherchée n'existe pas dans la plage de recherche, EQUIV() considèrera la valeur plus petite alors que EQUIVX() indiquera qu'il n'y a pas de correspondance.

Valeur non trouvée

Arguments optionnels

Le comportement de la recherche peut être précisé avec deux arguments supplémentaires.

Type de correspondance

Par défaut, EQUIVX() effectue une correspondance exacte c'est-à-dire que la fonction indique que la valeur recherchée n'a pas été trouvée lorsqu'elle ne trouve pas exactement cette valeur dans la plage de recherche.

Le 3e argument permet de modifier ce comportement.

Le type de correspondance peut prendre une des valeurs suivantes :

  • 0 : Correspondance exacte. Si la valeur recherchée n'est pas trouvée, Excel affichera #N/A. Il s’agit de la valeur par défaut.
  • -1 : Si la valeur recherchée n'est pas trouvée, Excel affichera la position relative de la cellule dont la valeur est inférieure à la valeur recherchée.

    Ici, j'ai laissé tomber l'exemple du code de produit puisqu'une recherche approximative donnerait des résultats erronés lorsque le code de produit n'est pas trouvé.

    Plutôt, cet exemple utilise une recherche approximative pour trouver la position du rabais à appliquer selon la quantité d'articles achetés. Dans un tel contexte, il n'est pas nécessaire d'entrer la quantité exacte pour connaître le rabais.

    =EQUIVX(B7;B2:B5;-1)

    Valeur plus petite

    Dans cet exemple, puisque la valeur 145 n'est pas trouvée, EQUIVX() considère la cellule dont la valeur est plus petite que la valeur recherchée, soit 100.

  • 1 : Si la valeur recherchée n'est pas trouvée, Excel affichera la position relative de la cellule qui correspond à la valeur supérieure à la valeur recherchée.

    Ici, on recherche la note en lettre à mettre au bulletin d'une étudiante ou d'un étudiant selon son résultat sur 100.

    =EQUIVX(D17;C4:C15;1)

    Valeur plus grande

    Dans cet exemple, puisque la valeur 83 n'est pas trouvée, EQUIVX() considére la cellule dont la valeur est plus grande que la valeur recherchée, soit 84, qui est en 9e position dans la plage de recherche.

  • 2 : Correspondance avec caractère générique. Ceci permet d'utiliser des caractères génériques comme valeur recherchée :
    • * : remplace un nombre quelconque de caractères

      Dans cet exemple, on recherche la position du premier article dont le code se termine par 24. Il se retrouve sur la 4e ligne de la plage.

      Recherche avec * comme caractère générique

    • ? : remplace un seul caractère. Par exemple, avec PO?S, EQUIVX() trouvera la position d'un article dont le code est POIS ou POTS mais pas PORTS.
    • ~ : permet d'échapper un caractère générique, c'est-à-dire qu'il sera interprété comme un caractère ordinaire.

      Utile lorsque la valeur recherchée contient elle-même un astérisque, un point d'interrogation ou un tilde.

      Il faut le faire suivre le tilde par * ? ou ~. Par exemple, avec VI~*X, EQUIVX() pourra retrouver la position d'un article dont le code est VI*X.

Mode de recherche

Par défaut, EQUIVX() effectue toujours sa recherche à partir du premier élément de la liste et il retourne la position de la première valeur rencontrée.

Le 4e argument, le mode de recherche, permet de changer ce comportement en précisant dans quel sens la recherche doit être effectuée.

Le mode de recherche peut prendre les valeurs suivantes :

  • 1 : recherche à partir de la première cellule de la plage. Il s’agit de la valeur par défaut.
  • -1 : recherche à partir de la dernière cellule de la plage.
  • 2 : recherche binaire en ordre croissant. Avec ce mode, les données de la plage doivent être triées en ordre croissant.

    La recherche binaire est beaucoup plus rapide. La différence du temps de traitement sera évidente si vous effectuez une recherche dans une plage qui contient des centaines de cellules.

  • -2 : recherche binaire en ordre décroissant. Avec ce mode, les données de la plage doivent être triées en ordre décroissant.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre