Fonctions incontournables souvent associées à la fonction INDEX (Voir Des formes et syntaxes peu connues de la fonction INDEX).
Rôle des deux fonctions
Recherche un élément spécifique dans une plage de cellules, puis renvoie la position relative de l’élément dans la plage.
Si je traduis : elle nous informe que la valeur est en Xème position tous simplement.
EQUIV
Fonction obsolète remplacée par la fonction EQUIVX !
Syntaxe
= EQUIV( Valeur_cherchée ; Tableau_recherche ; [Type] )
Arguments
- Valeur_cherchée : Valeur ou matrice de valeurs à trouver. Prend en compte les caractères génériques "?" et "*" pour remplacer un ou des caractères inconnus ("~?", "~*" et "~~" permettent de chercher les caractères "*", "?" et "~".
- Tableau_recherche : Plage ou matrice sous forme d'une colonne ou d'une ligne (horizontale ou verticale) où effectuer la recherche.
- Type : [facultatif] :
- -1 : Renvoie la position de la valeur exacte si elle est présente ou celle directement supérieur mais nécessite un Tableau_recherche trié en ordre décroissant !
Si la valeur est plus grande que la valeur maximale de Tableau_recherche, on obtient la valeur #N/A.
Paramètre utilisable plutôt sur des valeurs numériques. - 0 : Renvoie la position de la 1ere occurrence de la valeur à partir du début sinon renvoie #N/A quand la valeur n'est pas trouvée.
- 1 : (valeur par défaut) Renvoie la position de la valeur exacte si elle est présente ou celle directement inférieur mais nécessite un Tableau_recherche trié en ordre croissant !
Si la valeur est plus petite que la valeur minimale de Tableau_recherche on obtient la valeur #N/A.
Paramètre utilisable plutôt sur des valeurs numériques.
- -1 : Renvoie la position de la valeur exacte si elle est présente ou celle directement supérieur mais nécessite un Tableau_recherche trié en ordre décroissant !
Exemples d'utilisation
Position d'une portion de chaîne de caractères
Chercher la position de la 1ere personne ayant pour Nom "Térieur".
=EQUIV( "*Térieur" ; A2:A5 ; 0 )
Récupérer un % de réduction correspondant à des plages de quantité
Si l'on commande une quantité de 60, quel sera le taux de réduction à appliquer ?
Position : = EQUIV( 60 ; A2:A5 ; 1 )
Réduction : = INDEX( C2:C5 ; EQUIV(60;A2:A5;1) )
Autre solution : = RECHERCHEX( 60 ; A2:A5 ; C2:C5 ;;-1 )
Travailler avec une ou plusieurs matrices/constantes matricielles de valeurs
=EQUIV( {3;2} ; {4;3;8;2} ; 0 ) => Renvoie le tableau dynamique /matrice { 2 ; 4 }
Limitations de la fonctions EQUIV
Les cellules de Tableau_recherche qui contiennent plus de 255 caractères seront ignorées dans la recherche !
Contournement
=MAX(ESTNUM(CHERCHE(Valeur_cherchée;Tableau_recherche))*SEQUENCE(LIGNES(Tableau_recherche)))
EQUIVX
Nouvelle version de la fonction EQUIV.
Syntaxe
= EQUIVX( Valeur_cherchée ; Tableau_recherche ; [Mode_correspondance] ; [Mode_recherche] )
Arguments
- Valeur_cherchée : Valeur ou matrice de valeurs à trouver. Ne prendra en compte les caractères génériques "?" et "*" pour remplacer un ou des caractères inconnus que si Mode_correspondance = 2 !
- Tableau_recherche : Plage ou matrice sous forme d'une colonne ou d'une ligne (horizontale ou verticale) où effectuer la recherche.
- Mode_correspondance : [facultatif] :
- 1 : Renvoie la position de la valeur exacte si elle est présente ou directement supérieur mais SANS nécessiter que Tableau_recherche soit trié en ordre décroissant (contrairement à EQUIV) !
Si la valeur est plus grande que la valeur maximale de Tableau_recherche on obtient #N/A.
Paramètre utilisable plutôt sur des valeurs numériques.
( ! Valeur inversée par rapport à EQUIV : correspond au Type = - 1 !) - 0 : (valeur par défaut) Renvoie la position de la 1ere occurrence de la valeur à partir du début sinon renvoie #N/A quand la valeur n'est pas trouvée.
- -1 : Renvoie la position de la valeur exacte si elle est présente ou directement inférieur mais SANS nécessiter que Tableau_recherche soit trié en ordre croissant (contrairement à EQUIV) !
Si la valeur est plus petite que la valeur minimale de Tableau_recherche on obtient #N/A.
Paramètre utilisable plutôt sur des valeurs numériques.
( ! Valeur inversée par rapport à EQUIV : correspond au Type = 1 !) - 2 : Prend en compte les caractères génériques "?" et "*" pour remplacer un ou des caractères inconnus (c'était activé par défaut dans EQUIV).
"~?", "~*", "~~" permettent de rechercher les caractères "?", "*" et "~".
- 1 : Renvoie la position de la valeur exacte si elle est présente ou directement supérieur mais SANS nécessiter que Tableau_recherche soit trié en ordre décroissant (contrairement à EQUIV) !
- Mode_recherche : [facultatif] L'interpréter comme "Direction de la recherche".
- 1 : Rechercher du premier au dernier élément de Tableau_recherche (valeur par défaut).
- -1 : Rechercher du dernier au premier élément de Tableau_recherche (recherche inversée).
- 2 : Mode binaire, mode plus rapide mais nécessite que Tableau_recherche soit trié en ordre croissant.
- -2 : Mode binaire, mode plus rapide mais nécessite que Tableau_recherche soit trié en ordre décroissant.
Exemples d'utilisation
Récupérer un % de réduction correspondant à des plages de quantité
Même exemple que précédemment mais avec une plage Tableau_recherche où les lignes ne sont pas triées.
Utiliser plusieurs valeurs en tant que critère de recherche
Position du 1er T-shirt ayant un prix est inférieur à 12 €.
=EQUIVX( 1 ; (A2:A6="T-shirt") * (C2:C6<12) )
Interprétation de la formule
- (A2:A6="T-shirt") : Génère un tableau dynamique/matrice constitué de booléens (VRAI/FAUX). Tout ceux remplissant ce critère sont à VRAI.
- (C2:C6<12) : Génère un tableau dynamique/matrice constitué de booléens (VRAI/FAUX). Tout ceux remplissant ce critère sont à VRAI.
- (A2:A6="T-shirt") * (C2:C6<12) : Génère un tableau dynamique/matrice constitué de booléens (VRAI/FAUX). Tout ceux remplissant les 2 critères sont à VRAI. Ici la multiplication correspond à un ET logique (VRAI * VRAI = 1, les autres combinaisons renvoient 0).
- On recherche la valeur 1 qui une manière abrégée d'indiquer la valeur VRAI.
Synthèse
La fonction EQUIVX nous apporte en plus par rapport à EQUIV la possibilité de :
- Faire des recherches approchées sans avoir à trier Tableau_rech.
- Faire la recherche à partir du bas.
- Faire de recherche plus rapide via le mode Binaire.
- Ne pas être bloqué par les chaînes de plus de 255 caractères dans les cellules de Tableau_rech.
Microsoft a aussi annoncé une futur prise en charge des expressions régulières (tout comme pour RECHERCHEX).
Merci pour votre attention bienveillante.