Recherche plusieurs valeurs - INDEX_EQUIV_Excel2003
Bonjour,
je me permets de vous contacter concernant une fonction que je n'arrive pas à faire fonctionner. J'ai lu plusieurs post à ce sujet mais malgré tout, je sèche totalement.
Pouvez-vous m'aider dans mon extraction de données ?
Voici ma problématique :
J'ai un fichier Excel source dans lequel je dois extraire une liste de macro fonctionnalités (colonne C dans fichier source) correspondant au projet commençant par "037" (colonne E - fichier source).
La valeur de la macrofonctionnalité correspondante doit se retrouver dans le fichier à remplir, colonne A.
J'ai essayé plusieurs méthodes, dont :
* la fonction SI , bon résultat mais comme je teste chaque ligne (car le fichier est dynamique; on peut ajouter et supprimer des lignes), je me retrouve avec des lignes vides, ce que j'aimerais éviter.
* la constitution d'une macro d'extraction mais je n'en ai jamais fait, j'ai essayé, je n'ai plus de cheveux !
* La solution que j'ai retenu est l'utilisation de la combinaison INDEX(EQUIV) que j'aime bcp. Je trouve ça très bien. Mon seul pb est que je n'arrive pas à copier la formule dans les lignes suivantes pour avoir les secondes puis autres valeurs trouvées.
J'ai bo lire et tournicoter toutes les formules que j'ai pu trouver sur le forum en essayant de l'appliquer à mon cas, rien à faire.
Je n'arrive pas à comprendre la logique des formules qui pourraient me trouver les autres valeurs. Même quand je passe par une colonne intermédiaire de calcul de position, ça ne matche pas !!
J'ai essayé de reconstituer un fichier plus allégé . L'onglet 1 constitue le fichier source et l'onglet 2, le fichier à remplir.
Pouvez-vous m'aider à construire ma formule de façon à ce que je puisse aller piocher dans mon tableau toutes les macrofonctionnalités correspondantes au projet 37 ?
Voici la formule que j'essaye de mettre en place, qui fonctionne très bien pour la première valeur.
'=INDEX('Projets priorisables 2014 - v1.66.xls'!Macro;EQUIV("037*";'Projets priorisables 2014 - v1.66.xls'!Projet;0);1)
J'ai nommé Macro, la plage de recherche des valeurs.
J'ai mis 1 dans la formule Index, car il s'agit de la première colonne.
En ce qui concerne la formule EQUIV, j'ai nommé la zone de recherche Projet et recherche toutes les lignes qui commenceraient par 037.
Je vous remercie d'avance pour l'aide que vous voudrez bien m'apporte et regarderais régulièrement dans la journée de demain si quelqu'un m'a répondu afin de tester vos solutions.
Bonne soirée à tous
Bonjour
Un essai en A3 tirer vers le bas
=INDEX(Macro;EQUIV("037*";Projet;0)+LIGNE()-3;1)Leakim
Bonjour Leakim,
je teste ta solution et te tient au courant.
Merci de ton aide.
Bonjour Leakim,
j'ai testé ta solution et elle fonctionne bien.
Elle me trouve bien la première ligne avec les critères définis dans les fonctions INDEX/EQUIV et lorsque je fais une copie de la formule sur les lignes suivantes j'ai bien mes autres valeurs.
Seulement elle ne s'arrête pas !
Et oui parce que je pense qu'à partir du moment où elle a trouvé la première position, elle ne teste pas le fait qu'il faille que le projet commence par "037".
De ce fait, je pense qu'il faudrait que j'introduise le fait qu'il ne faille afficher la ligne que lorsque le projet est de type "037".
J'ai rajouté une ligne dans le fichier pour indiquer qu'il peut y avoir d'autres projets autres que 037.
Pouvez-vous m'aider à trouver une solution qui teste en plus cette condition pour l'affichage des lignes. Fonction de préférence mais s'il est nécessaire de passer par une macro, je ferais avec !
Merci par avance pour vos idées et joyeux halloween !
bonjour
en passant
la cols ( colonne S ) est masquée ; au plus simple
cordialement
ou alors sans colonne additionnelle ( cols)
'=INDEX(Macro;GRANDE.VALEUR(SI(SI(ESTNUM(TROUVE("037";Projet));TROUVE("037";Projet);"")=1;LIGNE(Projet);"");LIGNE(A1))-2)a completer d'un SI(ESTERREUR pour faire propre
Bonjour Tulipe,
merci bcp de ta réponse.
Je vais faire des tests de mon côté et te tiens au courant du résultat
Merci encore de m'avoir répondu.
Cdt