Fonction rechercheh
clem
-
Mytå Messages postés 4246 Date d'inscription Statut Contributeur Dernière intervention -
Mytå Messages postés 4246 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'utilise la fonction rechercheh sur excel 2003, je m'en sert pour recuperer des données sur un autre fichier, avec cette syntaxe :
=RECHERCHEH(1555;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;0)
cette fonction marche correctement mais je voudrais maintenant m'en servir pour rechercher la meme chose sur toutes les feuilles de mon fichier
quelqu'un peut il m'aider?
J'utilise la fonction rechercheh sur excel 2003, je m'en sert pour recuperer des données sur un autre fichier, avec cette syntaxe :
=RECHERCHEH(1555;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;0)
cette fonction marche correctement mais je voudrais maintenant m'en servir pour rechercher la meme chose sur toutes les feuilles de mon fichier
quelqu'un peut il m'aider?
A voir également:
- Fonction rechercheh
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
6 réponses
Bonjour clem.
Si j'ai à peu près compris, tu es dans la cellule B2 de la Feuil5 et tu veux lire la donnée placée à la quatrième (et dernière) ligne de la plage C3:G6 de la Feuil1, dans la colonne qui contient 1555 en ligne 3. C'est bien ça ?
Ensuite tu veux en faire de même pour Feuil2, Feuil3 et Feuil4 : C'est ça ?
Le mieux est de donner à la plage C3:G6 le nom Plage1 et d'écrire ta formule
=RECHERCHEH(1555;Plage1;4;0) ;
dans Feuil2 tu fais de même, donner à la plage C3:G6 le nom Plage2 et ainsi de suite.
De retour dans Feuil5, tu utilises 4 cellules avec
=RECHERCHEH(1555;Plage1;4;0)
=RECHERCHEH(1555;Plage2;4;0)
=RECHERCHEH(1555;Plage3;4;0)
=RECHERCHEH(1555;Plage4;4;0)
ou encore en A2 tu insères une liste déroulante de cellule te permettant de choisir entre Plage1, Plage2, Plage3 et Plage4, avec une formule unique en B2 =RECHERCHEH(1555;A2;4;0)
Tu as bien compris qu'il n'y a pas moyen d'avoir d'un seul coup les résultats de la recherche sur plusieurs tableaux dispersés dans plusieurs feuilles ... Alors réfléchis : N'est-il pas possible de créer un tableau récapitulatif ?
Si j'ai à peu près compris, tu es dans la cellule B2 de la Feuil5 et tu veux lire la donnée placée à la quatrième (et dernière) ligne de la plage C3:G6 de la Feuil1, dans la colonne qui contient 1555 en ligne 3. C'est bien ça ?
Ensuite tu veux en faire de même pour Feuil2, Feuil3 et Feuil4 : C'est ça ?
Le mieux est de donner à la plage C3:G6 le nom Plage1 et d'écrire ta formule
=RECHERCHEH(1555;Plage1;4;0) ;
dans Feuil2 tu fais de même, donner à la plage C3:G6 le nom Plage2 et ainsi de suite.
De retour dans Feuil5, tu utilises 4 cellules avec
=RECHERCHEH(1555;Plage1;4;0)
=RECHERCHEH(1555;Plage2;4;0)
=RECHERCHEH(1555;Plage3;4;0)
=RECHERCHEH(1555;Plage4;4;0)
ou encore en A2 tu insères une liste déroulante de cellule te permettant de choisir entre Plage1, Plage2, Plage3 et Plage4, avec une formule unique en B2 =RECHERCHEH(1555;A2;4;0)
Tu as bien compris qu'il n'y a pas moyen d'avoir d'un seul coup les résultats de la recherche sur plusieurs tableaux dispersés dans plusieurs feuilles ... Alors réfléchis : N'est-il pas possible de créer un tableau récapitulatif ?
Dans la partie tableau tu met la fonction "et(...;...;...)"
a la place des points tu indique le fichier la feuille et la zone pour chaque zone, je suppose que tu as une plage/zone par feuille donc en gros tu fais en fonction du nombre de feuilles.
ca donnera a peu près ca:
=RECHERCHEH(1555;et('[fichier_affaire.xls]feuil1'!$C$3:$G$6;'[fichier_affaire.xls]feuil2'!$C$3:$G$6; etc.);4;0)
j'ai pas tester mais ca devrait fonctionner tient nous au courant ;)
a la place des points tu indique le fichier la feuille et la zone pour chaque zone, je suppose que tu as une plage/zone par feuille donc en gros tu fais en fonction du nombre de feuilles.
ca donnera a peu près ca:
=RECHERCHEH(1555;et('[fichier_affaire.xls]feuil1'!$C$3:$G$6;'[fichier_affaire.xls]feuil2'!$C$3:$G$6; etc.);4;0)
j'ai pas tester mais ca devrait fonctionner tient nous au courant ;)
=RECHERCHEH(1555;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;0)
Bonjour remplace la valeur 1555 par la cellule (ou est 1555) exemple en B2
et tu incrémentes
=SI(ESTERREUR(RECHERCHEV(B2;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;FAUX));0; RECHERCHEV(B2;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;FAUX))
J'utilise de préférence RECHERCHEV que RECHERCHEH
Bonjour remplace la valeur 1555 par la cellule (ou est 1555) exemple en B2
et tu incrémentes
=SI(ESTERREUR(RECHERCHEV(B2;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;FAUX));0; RECHERCHEV(B2;'[fichier_affaire.xls]feuil1'!$C$3:$G$6;4;FAUX))
J'utilise de préférence RECHERCHEV que RECHERCHEH
Je m'adresse à Slif.
Tu devrais tester, parce que les matrices fractionnées, ça ne plaît pas trop à Excel, et que la fonction ET n'est valide que dans des formules conditionnelles, ce qui n'est pas le cas ici.
Ton approche aurait pu s'organiser autour de la concaténation (&) ou du nom à attribuer à une plage discontinue ... mais sans garantie du résultat !
Tu devrais tester, parce que les matrices fractionnées, ça ne plaît pas trop à Excel, et que la fonction ET n'est valide que dans des formules conditionnelles, ce qui n'est pas le cas ici.
Ton approche aurait pu s'organiser autour de la concaténation (&) ou du nom à attribuer à une plage discontinue ... mais sans garantie du résultat !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour tous
.... et un bonjour particulier à xkristi qui nous revient efficacement de temps en temps, ce qui nous fait bien plaisir! :-)
La solution de xkristi fonctionne très bien, mais risque d'être un peu laborieuse si le nombre de feuilles à traiter est important.
On peut en voir une petite variante:
pour l'exemple à adapter:
_en colonne A d'une feuille résultat, à partir de A2:
_En texte,les noms des feuilles et les limites de champ:
(donc feuille1:, champ A3 G6, entrer, avec toute la ponctuation:
[Fichier_affaire.xls]feuille1!$A$3:$G$6
et créer ainsi une liste avec les noms correspondants aux feuilles
réserver la ligne 1 à partir de B pour entrer les valeurs à trouver.
en B2
=SI(ESTERREUR(RECHERCHEH(B$1;INDIRECT($A2);4;0);"";RECHERCHEV(B$1;INDIRECT($A2);4;0))
tirer cette formule sur la hauteur de la liste des classeurs et sur la longueur nécessaire aux valeurs à trouver.(attention à la position des blocages)
Ainsi, la valeur trouvée s'affichera sur la ligne correspondante à la feuille où elle se trouve.(et éventuellement plusieurs fois si valeur identiques dans feuilles différentes)
Toutefois:
*1°)cette solution ne fonctionne que si les deux classeurs sont ouverts (sauf erreur) sinon affiche #REF
*2°) pour simplifier la fonction INDIRECT il est préférable de disposer de nom de feuilles et de classeur sans blancs dans le texte, qui perturbent excel (exemple: Feuille_1 plutôt que Feuille 1)
Au cas où ce problème soit incontournable:
_ entrer les noms dans la liste A en plaçant une apostrophe derrière le nom de la feuille, juste avant le point d'exclamation
(exemple: [Fichier affaire.xls]Feuille1'!
_Compléter le code indirect avec au début une apostrophe entre guillemets, suivi de &
soit:
INDIRECT("'"&A2)
Bonne chance
Crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
.... et un bonjour particulier à xkristi qui nous revient efficacement de temps en temps, ce qui nous fait bien plaisir! :-)
La solution de xkristi fonctionne très bien, mais risque d'être un peu laborieuse si le nombre de feuilles à traiter est important.
On peut en voir une petite variante:
pour l'exemple à adapter:
_en colonne A d'une feuille résultat, à partir de A2:
_En texte,les noms des feuilles et les limites de champ:
(donc feuille1:, champ A3 G6, entrer, avec toute la ponctuation:
[Fichier_affaire.xls]feuille1!$A$3:$G$6
et créer ainsi une liste avec les noms correspondants aux feuilles
réserver la ligne 1 à partir de B pour entrer les valeurs à trouver.
en B2
=SI(ESTERREUR(RECHERCHEH(B$1;INDIRECT($A2);4;0);"";RECHERCHEV(B$1;INDIRECT($A2);4;0))
tirer cette formule sur la hauteur de la liste des classeurs et sur la longueur nécessaire aux valeurs à trouver.(attention à la position des blocages)
Ainsi, la valeur trouvée s'affichera sur la ligne correspondante à la feuille où elle se trouve.(et éventuellement plusieurs fois si valeur identiques dans feuilles différentes)
Toutefois:
*1°)cette solution ne fonctionne que si les deux classeurs sont ouverts (sauf erreur) sinon affiche #REF
*2°) pour simplifier la fonction INDIRECT il est préférable de disposer de nom de feuilles et de classeur sans blancs dans le texte, qui perturbent excel (exemple: Feuille_1 plutôt que Feuille 1)
Au cas où ce problème soit incontournable:
_ entrer les noms dans la liste A en plaçant une apostrophe derrière le nom de la feuille, juste avant le point d'exclamation
(exemple: [Fichier affaire.xls]Feuille1'!
_Compléter le code indirect avec au début une apostrophe entre guillemets, suivi de &
soit:
INDIRECT("'"&A2)
Bonne chance
Crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Salut le forum
Les deux classeurs doivent être ouverts.
Recherche valeur de A2 sur les feuilles 1 à 4 du fichier Essai.xls
Dans la Plage A2:A6 et retourne la valeur de la Plage B2:B6
Fonction aussi bien en RechercheV et RechercheH en adaptant les plages.
Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Les deux classeurs doivent être ouverts.
Recherche valeur de A2 sur les feuilles 1 à 4 du fichier Essai.xls
Dans la Plage A2:A6 et retourne la valeur de la Plage B2:B6
=SOMMEPROD(SOMME.SI(INDIRECT("[Essai.xls]Feuil"&LIGNE(1:4)&"!A2:A6");$A$2;INDIRECT("[Essai.xls]Feuil"&LIGNE(1:4)&"!B2:B6")))
Fonction aussi bien en RechercheV et RechercheH en adaptant les plages.
Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
peut être pourras tu combler une lacune dans mon bien maigre savoir, car pour moi il n'y a pas moyen d'utiliser un nom de plage d'un autre classeur?
Or il semble ici que si les feuilles sont toutes dans le même la rechercher et dans un autre.
Toutefois, je crois me souvenir d'avoir vu passer une solution dans ce cas, mais je ne suis sur de rien.
Bien amicalement
Raymond, j'ai posté juste un peu avant ton message une solution de recherche...
Mytå