Recherche sur plusieurs feuilles
Résolu/Fermé
A voir également:
- Recherche sur plusieurs feuilles
- Recherche musique - Guide
- Google recherche par image - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Recherche adresse - Guide
5 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 396
Modifié par Vaucluse le 4/05/2011 à 12:38
Modifié par Vaucluse le 4/05/2011 à 12:38
Bonjour
ça risque d'étre coton en formule si vous avez beaucoup de feuille
essayez quand même
=SI(NB.SI([ClasseurB.xls]Feuil1!$D:$D;C2&C2)>0;(INDEX([ClasseurB.xls]Feuil1!$C:$C;EQUIV(C2&C2;[ClasseurB.xls]Feuil1!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil2!$D:$D;C2&C2)>0;(INDEX([ClasseurB.xls]Feuil2!$C:$C;EQUIV(C2&C2;[ClasseurB.xls]Feuil2!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil3!$D:$D;C2&C2)>0;(INDEX([ClasseurB.xls]Feuil3!$C:$C;EQUIV(C2&C2;[ClasseurB.xls]Feuil3!$D:$D;0));etc.... avec le nombre de parenthéses pour fermer en proportion du nombre de SI
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
ça risque d'étre coton en formule si vous avez beaucoup de feuille
essayez quand même
=SI(NB.SI([ClasseurB.xls]Feuil1!$D:$D;C2&C2)>0;(INDEX([ClasseurB.xls]Feuil1!$C:$C;EQUIV(C2&C2;[ClasseurB.xls]Feuil1!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil2!$D:$D;C2&C2)>0;(INDEX([ClasseurB.xls]Feuil2!$C:$C;EQUIV(C2&C2;[ClasseurB.xls]Feuil2!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil3!$D:$D;C2&C2)>0;(INDEX([ClasseurB.xls]Feuil3!$C:$C;EQUIV(C2&C2;[ClasseurB.xls]Feuil3!$D:$D;0));etc.... avec le nombre de parenthéses pour fermer en proportion du nombre de SI
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
N'ayant pas compris la deuxième proposition, j'ai essayé d'adapter la première en faisant la formule :
Mais, la partie soulignée ne s'exécute jamais...
Je viens de passer la matiné à chercher mais je ne comprend pas d'où vient l'erreur
=SIERREUR(SI(NB.SI([ClasseurB.xls]Feuil1!$B:$B;C2)>0;INDEX([ClasseurB.xls]Feuil1!$C:$C;EQUIV(Feuil2!C2&C2;[ClasseurB.xls]Feuil1!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil2!$B:$B;C2)>0;INDEX([ClasseurB.xls]Feuil2!$C:$C;EQUIV(Feuil2!C2&C2;[ClasseurB.xls]Feuil2!$D:$D;0));""));"")
Mais, la partie soulignée ne s'exécute jamais...
Je viens de passer la matiné à chercher mais je ne comprend pas d'où vient l'erreur
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 396
4 mai 2011 à 11:49
4 mai 2011 à 11:49
Bonjour
je pensais que la seconde serait plus simple
quant à celle ci, vous remarquerez que je n'ai pas reconduit le SIERREUR en tête de formule, étant donné que c'est le code NB.SI qui détecte à chaque changement si la formule correspondante doit être appliquée ou pas.
Réalignez donc la formule sur l'exemple et, si besoin pour éviter FAUX, terminer avant la dernière parenthèse par ;""
bonne chance, n'hésitez pas si problème.
pour la seconde solution, ,je vous prépare un petit modèle pour info (entre feuille sans changement de classeur)
A+
Crdlmnt
je pensais que la seconde serait plus simple
quant à celle ci, vous remarquerez que je n'ai pas reconduit le SIERREUR en tête de formule, étant donné que c'est le code NB.SI qui détecte à chaque changement si la formule correspondante doit être appliquée ou pas.
Réalignez donc la formule sur l'exemple et, si besoin pour éviter FAUX, terminer avant la dernière parenthèse par ;""
bonne chance, n'hésitez pas si problème.
pour la seconde solution, ,je vous prépare un petit modèle pour info (entre feuille sans changement de classeur)
A+
Crdlmnt
Sans le "SIERREUR", les cellules dont la valeur est dans [ClasseurB.xls]Feuil1 s'affiche bien mais pour les autres j'ai l'erreur #NA
J'ai pas trop compris ce que c'était comme erreur???
J'ai pas trop compris ce que c'était comme erreur???
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 396
Modifié par Vaucluse le 4/05/2011 à 13:06
Modifié par Vaucluse le 4/05/2011 à 13:06
Votre formule n'est encore pas au point selon ma proposition:
NB.SI.... >0 sert à détecter si la référence cherchée est présente dans la colonne où va s"appliquer le code EQUIV qui suit.
Il faut donc que la référence cherchée et la colonne où s'applique NB.SI soit les mêmes que dans l'item EQUIV qui suit.
Or là, vous cherchez la présence de C2 dans la colonne B pour ensuite appliquer EQUIV en cherchant C2&C2 dans la colonne D
Les codes NB.SI doivent se rapporte au champ du EQUIV correspondant, soit pour le classeur 1:
NB.SI([classeur1.xls]Feuil1!D:D;C2&C2) et idem pour les autres
comme indiqué dans ma proposition.
bonne chance
ps ci joint un fichier avec les deux modèles de solution, ceci vous aidera peut être
bien entendu, ce fichier travaille sur les feuilles d'un même classeur, il faut intégrer dans les adresses le libellé correspondant aux classeurs.
http://www.cijoint.fr/cjlink.php?file=cj201105/cijAfncd61.xls
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
NB.SI.... >0 sert à détecter si la référence cherchée est présente dans la colonne où va s"appliquer le code EQUIV qui suit.
Il faut donc que la référence cherchée et la colonne où s'applique NB.SI soit les mêmes que dans l'item EQUIV qui suit.
Or là, vous cherchez la présence de C2 dans la colonne B pour ensuite appliquer EQUIV en cherchant C2&C2 dans la colonne D
Les codes NB.SI doivent se rapporte au champ du EQUIV correspondant, soit pour le classeur 1:
NB.SI([classeur1.xls]Feuil1!D:D;C2&C2) et idem pour les autres
comme indiqué dans ma proposition.
bonne chance
ps ci joint un fichier avec les deux modèles de solution, ceci vous aidera peut être
bien entendu, ce fichier travaille sur les feuilles d'un même classeur, il faut intégrer dans les adresses le libellé correspondant aux classeurs.
http://www.cijoint.fr/cjlink.php?file=cj201105/cijAfncd61.xls
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup pour le petit fichier. ça m'a beaucoup aidé.
Malgré une bonne persévérance, je n'arrive toujours pas à appliquer à mon cas la formule avec la fonction Indirect.
Mais ça a très bien marché avec les NB.SI, donc je pense que je vais m'en contenter.
Si ça peut servir à quelqu'un d'autre, ma formule est :
Merci encore
Malgré une bonne persévérance, je n'arrive toujours pas à appliquer à mon cas la formule avec la fonction Indirect.
Mais ça a très bien marché avec les NB.SI, donc je pense que je vais m'en contenter.
Si ça peut servir à quelqu'un d'autre, ma formule est :
=SI(NB.SI([ClasseurB.xls]Feuil1!$D:$D;Feuil2!C2&C2)>0;INDEX([ClasseurB.xls]Feuil1!$C:$C;EQUIV(Feuil2!C2&C2;[ClasseurB.xls]Feuil1!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil2!$D:$D;Feuil2!C2&C2)>0;INDEX([ClasseurB.xls]Feuil2!$C:$C;EQUIV(Feuil2!C2&C2;[ClasseurB.xls]Feuil2!$D:$D;0));SI(NB.SI([ClasseurB.xls]Feuil3!$D:$D;Feuil2!C2&C2)>0;INDEX([ClasseurB.xls]Feuil3!$C:$C;EQUIV(Feuil2!C2&C2;[ClasseurB.xls]Feuil3!$D:$D;0));"")))
Merci encore
3 mai 2011 à 16:59
J'ai pas trop le temps donc je m'y attarderai plus longuement demain matin.
Je vous tiendrai au courant.
Merci encore
Modifié par Vaucluse le 4/05/2011 à 12:36
peut être plus simple selon ce que vous avez comme feuille:
dans une cellule hors champ exemple à adapter basé sur
code à chercher en classeur1 Feuil2,Feuil2,Feuil3,Feuil4
édition à ressortir de la colonne B dans chacune des feuilles
valeur à chercher :C2&C2 de classeur1 en D:D sur classeur 2
Dans une cellule hors champ sur classeur 2 (X1 pour l'exemple), la formule
=SI(NB.SI('[classeur2.xls]Feuil1!'!D:D;C2$C2)>0;"'[classeur2.xls]Feuil1!'";SI(NB.SI('[classeur2.xls]Feuil1!'!D:D;C2&C2)>0;"'[classeur2.xls]Feuil2!'";SI(NB.SI('[classeur2.xls]Feuil3!'!D:D;C2&C2)>0;"'[classeur2.xls]Feuil3!'"SI(NB.SI('[classeur2.xls]Feuil4!'!D:D;C2&C2)>0;"'[classeur2.xls]Feuil4!'"))))
en fait cette formule doit vous afficher dans la cellule X1 le libellé complet du nom du classeur et de la feuille, en incluant les apostrophes et point d'exclamation. C'est à dire strictement conforme au libellé complet avant l'adresse du champ dans les formules.
La formule d'édition à partir d'une référence à trouver entrée en A2 classeur 1 devient alors plus simplement:
=INDEX(INDIRECT($X$1&"B:B";EQUIV(C2&C2;INDIRECT($X$1&"D:D");0);1)
le code indirect renverra à l'adresse indiquée en X1
ce sera mis lourd comme formule, et en prime X1 vous donne le nom de lafeuille où se trouve la valeur cherchée.
si le nombre de feuille est trop important et nécessite trop de si, on peut définir l'adresse de la feuille à partir d'un tableau et d'une recherche. Revenez si nécessaire
bon courage
crdlmnt