Recherche

 

Edition / Rechercher

Edition / Atteindre

Fonctions de recherche

 

 

 

 

 

Edition / Rechercher

Edition / Rechercher permet de rechercher un mot, un chiffre ou une référence
- dans les valeurs ou les formules d'une page Excel
- avec ou sans les majuscules
- par cellule entière ou à l'intérieur d'une cellule.
On peut utiliser ? ou * pour remplacer un ou plusieurs caractères ().
Par exemple : Edition / Rechercher / Résultat*Net trouvera aussi bien Résultat Net que Résultat Courant Net.




Edition / Atteindre

Edition / Atteindre permet de sélectionner une plage (nommée ou non).

Edition / Atteindre / Cellules… permet de sélectionner toutes les cellules d'une certaine catégorie dans une plage.

Cette dernière possibilité est particulièrement intéressante quand la taille d'un fichier Excel semble anormalement importante. Avec Edition / Atteindre / Cellules / Dernière cellule, on accède à la cellule considérée par Excel comme la cellule correspondant à la colonne non vide la plus à droite et à la dernière ligne non vide. Il est fréquent de trouver une dernière cellule très loin de la dernière cellule réellement occupée (problème de formatage ou de cellules contenant une "chaîne de texte vide"). Il suffit de supprimer les lignes et colonnes inutiles et d'enregistrer pour que le fichier retrouve une taille normale.

 

Fonctions de recherche

Les fonctions EQUIV, RECHERCHEV et RECHERCHEH permettent d’utiliser directement le résultat d’une recherche dans un calcul. Elles acceptent les "jokers" (* et ?).

EQUIV ("toto"; plage_rech;0) donne la position (n° de cellule) de toto dans la plage (linéaire) plage_rech.

A utiliser en combinaison avec INDEX(plage;num) qui donne le contenu de la cellule num de la zone plage (INDEX peut également être utilisé sur une plage rectangulaire, avec deux arguments num).

RECHERCHEH("toto"; plage_rech; n°ligne;FAUX) va rechercher la position de toto dans la première ligne de la plage plage_rech, et renvoyer la valeur de la cellule correspondante de la ligne numéro n°ligne de la plage.

(Si le dernier argument est VRAI et que les cellules de la première ligne sont placées en ordre croissant, la fonction recherche la valeur la plus proche de toto).

La fonction CHERCHE effectue une recherche à l’intérieur d’une chaîne de caractères. Elle renvoie la position de la chaîne cherchée dans le texte.




Un exemple, établir la liste des personnes nées avant le 1/1/93 à partir d'une table des dates de naissance :
On ajoute une colonne (que l'on pourra éventuellement masquer) contenant une formule (formule recopiée vers le bas) qui s'incrémente de 1 à chaque fois que la ligne contient une date supérieure au 1/1/93 :


Il suffit alors de rechercher les noms correspondant aux chiffres 1, 2, 3...
L'utilisation de EQUIV en utilisant le numéro de ligne pour obtenir "1,2,3..." est particulièrement indiqué : Après avoir pris soin de nommer "noms" la plage contenant les noms, il suffit d'inscrire
=INDEX(noms;EQUIV(LIGNE();DECALER(noms;;3);0))
n'importe où en ligne 1 d'une page du classeur, puis de recopier vers le bas pour obtenir la liste cherchée.
(DECALER(noms;;3) correspond à la plage ajoutée).
On aurait aussi pu utiliser RECHERCHEV en insérant la nouvelle colonne avant la liste des noms).




Remarque
Un peu plus compliqué, on peut obtenir le même résultat sans rajouter de colonne en utilisant une formule matricielle
("noms" est la plage contenant les noms, "dates" la plage contenant les dates de naissance) :
Sélectionnez une plage verticale suffisamment longue pour contenir tous les noms des personnes dont la date de naissance est postérieure au 1/1/2000. La plage peut être située n'importe où dans le classeur.
Recopiez dans la barre de formule :
=INDEX(noms;EQUIV(LIGNE(DECALER($A$1;;;NB(dates);1));PRODUITMAT(1*(LIGNE(DECALER($A$1;;;NB(dates);NB(dates)))>=COLONNE(DECALER($A$1;;;NB(dates);NB(dates))));1*(dates>DATE(2000;1;1)));0))
puis validez la formule par CTRL+MAJ+Entrée.
(Cliquez ici pour comprendre les formules matricielles).

>>>