Faire une recherche sur un tableau excel

Fermé
daniel - 9 mars 2011 à 09:33
 daniel - 9 mars 2011 à 17:51
Bonjour,
depuis quelques temps , je recherche une formule
dans une feuille excel , j ai 3 colonnes
A: toto
B: 254
C: une liste de noms

quand dans la liste de noms en c se trouve : TOTO , dans une colonne D on inscrit le chiffre de B , soit 254
evidement , la colonne A comporte 3000 noms et C entre 2000 et 4000 noms
je recherche cette formule depuis 8 mois et j en ai un besoin urgent ( c est en fait un tableau excel qui permet de faire le tri de medicaments dans un dispensaire de soins en afrique)
merci et merci encore de votre aide
daniel

A voir également:

4 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 9/03/2011 à 10:25
Bonjour,

Si j'ai bien compris le problème , essayer cette formule.

(J'ai supposé qu'en ligne 1 il y a le titre des colonnes et que la colonne C fait 4000 lignes)

Inscrire cette formule en D2 :

=SI(ESTERREUR(RECHERCHEV(A2;C$2:C$4000;1;FAUX));"";B2)

et recopier vers le bas jusqu'à la fin des lignes de la colonne A

EDIT : J'ai corrigé une erreur il faut des $ pour la colonne C

A+

Cordialement,
0
merci pour votre aide , mais cela ne marche pas
leshiffres en d ne correspondent pas
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
9 mars 2011 à 11:13
Chez moi cela fonctionne.
A moins que je n'ai pas compris le problème si
Les chiffres ne correspondent pas.

Je crois que peut-être j'ai commis l'erreur suivante :

Dans la colonne B les chiffres correspondent-ils à la liste en C ?
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 9/03/2011 à 11:38
Si mon diagnostic est le bon il faut alors utiliser une formule un peu plus complexe toujours en D2 et en "étirant la formule vers le bas jusqu'à la fin de la colonne A) :

=SI(ESTERREUR(EQUIV(A2;C$2:C$4000;0));"";INDEX(B$2:B$4000;EQUIV(A2;C$2:C$4000;0)))

A tester.
0
non , dans la colonne A , les noms doivent correspondrent entierement ou en partie a ceux dans la colonne en C , et s ils correspondent , alors la valeur en C correspondante ira dans D
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
9 mars 2011 à 14:51
J'ai peur que l'on ne se comprenne pas bien, pour être plus efficaces Il faudrait nous transmettre un extrait du fichier de préférence au format Excel 2003 (en enlevant les informations confidentielles ).

En le déposant sur le site gratuit www.cijoint.fr puis en postant ici le lien donné par le site.
0
voila
http://www.cijoint.fr/cjlink.php?file=cj201103/cijLWEDfl1.xls
merci encore
0
non, ABACAVIR et ABACAVIR LAMIVUDINE sont deux choses differentes
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 9/03/2011 à 15:36
Oui, je comprend bien mais donc dans la colonne C, on est bien d'accord, dans cet exemple il n'y a pas de correspondance pour ces deux là.

Autre question. Si en colonne A je trouve "ABACAVIR SULFATE", quelle valeur je dois trouver en D puisqu'il y a en 3 dans la colonne C
0
11 , car abacavir = abacavir sulfate ...je sais c est complique ....
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
9 mars 2011 à 16:08
Bon, je crois que le faisais une erreur déjà.

Je reformule :

"On cherche si le nom de la colonne C se trouve dans la colonne A et si c'est le cas on indique le numéro qui est en B".

Je prends un exemple simple : en C9 j'ai "ABARELIX" je trouve "ABARELIX" en A7 donc en D9 je mets la valeur 4 473.

C'est bien cela ?
0
exactement et precisement
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
9 mars 2011 à 17:11
Bon voila une formule en B1 qui doit mieux marcher :

=SI(ESTERREUR(RECHERCHEV("*"&C1&"*";A$1:B$4000;2;FAUX));"";RECHERCHEV("*"&C1&"*";A$1:B$4000;2;FAUX))

A recopier toujours vers le bas.


Par contre je n'ai pas de solution pour les cas comme ABACAVIR et ABACAVIR SULFATE
0
merci cela fonctionne , mais comme il y a des croisements de noms (comme plus haut abacavir et abacavir lamivudine , cela donne des faux
il faut que je reorganise tout cela
mais merci , merci cela fonctionne parfaitement et simplement
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 9/03/2011 à 17:48
Dans la formule : "*"&C2&"*" signifie qu'il cherche toute chaîne de caractère contenant le nom C2. Peut-être que cela provoque des faux inutiles. En remplaçant par la formule plus simple :

=SI(ESTERREUR(RECHERCHEV(C2;A$1:B$4000;2;FAUX));"";RECHERCHEV(C2;A$1:B$4000;2;FAUX))

Il y aura peut-être moins de faux....
0
malheureusement je ne peux avoir de faux , c est du domaine medical
je test ce soir
merci beaucoup
0