Casse tête : Index+Equiv+doublons

Résolu/Fermé
Melycea - Modifié par Melycea le 28/04/2011 à 15:38
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 29 avril 2011 à 16:00
Bonjour à tous,

Je suis sous Excel 2007.
J'ai un classeurA dont la cellule D2 de la feuille 1 se remplit automatiquement avec une valeur correspondante dans la colonne C du classeurB. Ce remplissage se fait à condition que :
- la cellule B2 de la feuille1 du classeurA corresponde à la colonne B de la feuille2 du même classeur traduction [classeurA]feuill1!B2 = [classeurB]feuill2!B:B
- la cellule C correspondante dans la feuille2 du classeurA correponde à la colonne A du classeurB
- la cellule C2 de la feuille1 du classeurA corresponde à la colonne B du classeurB
traduction [classeurA]feuil1!C2 = [classeurB]feuil1!B:B

Pour tout cela j'ai utilisé la formule:
{=SIERREUR(INDEX([classeurB]feuill1!C:C;EQUIV(INDEX(feuil2!C:C;EQUIV(feuil1!B2;feuil2!B:B;0))&C2;[ClasseurB]feuil1!D:D;0))&"";"")} 
Cette formule marche très bien sauf dans le cas où j'ai un doublon dans la colonne [classeurA]feuil1!B:B , j'ai toutes les lignes qui ont la même valeur qui se remplissent aussi sans tenir compte de la colonne [classeurA]feuil1!C:C et je ne peux plus modifier cette valeur.

Pourquoi?! Comment faire?!

Je sais que le problème n'est pas évident vu de l'extérieur donc je vous envoies une structure de mes classeurs qui mets en évidence mon problème.
Classeur A : http://cjoint.com/?ADCpKpXQdp5
Classeur B : http://cjoint.com/?ADCpLdhOnSo

Merci beaucoup à ceux qui auront le courage de s'y attarder.

5 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
28 avril 2011 à 21:47
bonjour


Lorsque tu utilises EQUIV pour chercher une valeur dans une colonne, c'est nécessairement la première valeur correspondante qui est toujours trouvée.

Si tu as des doublons, et que tu veuilles trouver la valeur suivante il faut alors utiliser la fonction DECALER pour te positionner mais cela va compliquer ta formule.
Il te faut peut-être avoir une autre colonne pour gérer cela ou fonctionner avec l'index de la colonne A s'il est utilisable.
1