Comparer 1 chaine de caractere d'une cellule par rapport plage
Résolu
joaline62
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
joaline62 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
joaline62 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je voudrais comparer une chaine de caractere trouvé dans une cellule (B1)par rapport à une plage (A1:A10) et renvoyer la valeur dans la cellule (C1) si ce mot est retrouvé
Exemple:
COLONNEA | COLONNEB | COLONNEC
1 ARDITI | Me truc | <CASE VIDE>
2 GIRARDOT | mme dere |<CASE VIDE>
3 FUNES | Mme bardot |<CASE VIDE>
4 POLO | Mr DArditi | ARDITI
5 JACQUES | anne arditi | ARDITI
6 <CASE VIDE>| sophie bardot |<CASE VIDE>
7<CASE VIDE>| Melle chapeau |<CASE VIDE>
8<CASE VIDE>| Mrs GIRARDOT | GIRARDOT
9<CASE VIDE>| truc |<CASE VIDE>
10<CASE VIDE>| Girardot | GIRARDOT
11<CASE VIDE>| Me trac |<CASE VIDE>
12<CASE VIDE>| Louis de Funes | FUNES
13<CASE VIDE>| Jacques chancel | JACQUES
14<CASE VIDE>| Girardot jacques | JACQUES
15<CASE VIDE>| sophie jacques | JACQUES
J'ai ca
=(SOMME(ESTNUM(CHERCHE(SI($A$1:$A$10<>"";$A$1:$A$10);B1))*LIGNE($A$1:$A$10))>0)*1
ca marche mais ca me renvoie un 1 ou un 0 en colonne c actuellement.
je voudrais plutot la "valeur" en colonne c. et si possible plutôt une formule que un code vba.
merci d'avance
Auriez vous une idée
je voudrais comparer une chaine de caractere trouvé dans une cellule (B1)par rapport à une plage (A1:A10) et renvoyer la valeur dans la cellule (C1) si ce mot est retrouvé
Exemple:
COLONNEA | COLONNEB | COLONNEC
1 ARDITI | Me truc | <CASE VIDE>
2 GIRARDOT | mme dere |<CASE VIDE>
3 FUNES | Mme bardot |<CASE VIDE>
4 POLO | Mr DArditi | ARDITI
5 JACQUES | anne arditi | ARDITI
6 <CASE VIDE>| sophie bardot |<CASE VIDE>
7<CASE VIDE>| Melle chapeau |<CASE VIDE>
8<CASE VIDE>| Mrs GIRARDOT | GIRARDOT
9<CASE VIDE>| truc |<CASE VIDE>
10<CASE VIDE>| Girardot | GIRARDOT
11<CASE VIDE>| Me trac |<CASE VIDE>
12<CASE VIDE>| Louis de Funes | FUNES
13<CASE VIDE>| Jacques chancel | JACQUES
14<CASE VIDE>| Girardot jacques | JACQUES
15<CASE VIDE>| sophie jacques | JACQUES
J'ai ca
=(SOMME(ESTNUM(CHERCHE(SI($A$1:$A$10<>"";$A$1:$A$10);B1))*LIGNE($A$1:$A$10))>0)*1
ca marche mais ca me renvoie un 1 ou un 0 en colonne c actuellement.
je voudrais plutot la "valeur" en colonne c. et si possible plutôt une formule que un code vba.
merci d'avance
Auriez vous une idée
A voir également:
- Excel comparaison chaine de caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Liste déroulante excel - Guide
- Caractere speciaux - Guide
- Word et excel gratuit - Guide
22 réponses
Salut Eriiic,
70 références cela doit alimenter je pense plusieurs centaines de ligne colonne A et en matricielle je crains que cela coince ou ralenti le fonctionnement.
toujours en formule j'ai pensé écrire ma formule basique exemple en B2
=SI(NB.SI(A2;"*"&$E$2&"*")=1;$E$2;SI(NB.SI(A2;"*"&$E$3&"*")=1;$E$3;SI(NB.SI(A2;"*"&$E$4&"*")=1;$E$4;SI(NB.SI(A2;"*"&$E$5&"*")=1;$E$5;SI(NB.SI(A2;"*"&$E$6&"*")=1;$E$6;SI(NB.SI(A2;"*"&$E$7&"*")=1;$E$7;SI(NB.SI(A2;"*"&$E$8&"*")=1;$E$8;"")))))))
alors que B2 est activée on crée un champ dans le gestionnaire des noms que l'on nomme exemple Cond_1 ,dans la quelle on colle la formule
ensuite on modifie la formule en B2 pour poursuivre la suite conditionnelle
=SI(NB.SI(A2;"*"&$E$9&"*")=1;$E$9;SI(NB.SI(A2;"*"&$E$10&"*")=1;$E$10;SI(NB.SI(A2;"*"&$E$11&"*")=1;$E$11;SI(NB.SI(A2;"*"&$E$12&"*")=1;$E$12;SI(NB.SI(A2;"*"&$E$13&"*")=1;$E$13;SI(NB.SI(A2;"*"&$E$147&"*")=1;$E$14;SI(NB.SI(A2;"*"&$E$15&"*")=1;$E$15;"")))))))
et on crée un nouveau champ exemple Cond_2 avec cette formule etc pour la suite des références ce qui va donner une dizaine de champs
et pour finir en B2 il suffit d'écrire =Col_1&Col_2&Col_3&Col_4 etc ... et incrémenter la formule vers le bas
70 références cela doit alimenter je pense plusieurs centaines de ligne colonne A et en matricielle je crains que cela coince ou ralenti le fonctionnement.
toujours en formule j'ai pensé écrire ma formule basique exemple en B2
=SI(NB.SI(A2;"*"&$E$2&"*")=1;$E$2;SI(NB.SI(A2;"*"&$E$3&"*")=1;$E$3;SI(NB.SI(A2;"*"&$E$4&"*")=1;$E$4;SI(NB.SI(A2;"*"&$E$5&"*")=1;$E$5;SI(NB.SI(A2;"*"&$E$6&"*")=1;$E$6;SI(NB.SI(A2;"*"&$E$7&"*")=1;$E$7;SI(NB.SI(A2;"*"&$E$8&"*")=1;$E$8;"")))))))
alors que B2 est activée on crée un champ dans le gestionnaire des noms que l'on nomme exemple Cond_1 ,dans la quelle on colle la formule
ensuite on modifie la formule en B2 pour poursuivre la suite conditionnelle
=SI(NB.SI(A2;"*"&$E$9&"*")=1;$E$9;SI(NB.SI(A2;"*"&$E$10&"*")=1;$E$10;SI(NB.SI(A2;"*"&$E$11&"*")=1;$E$11;SI(NB.SI(A2;"*"&$E$12&"*")=1;$E$12;SI(NB.SI(A2;"*"&$E$13&"*")=1;$E$13;SI(NB.SI(A2;"*"&$E$147&"*")=1;$E$14;SI(NB.SI(A2;"*"&$E$15&"*")=1;$E$15;"")))))))
et on crée un nouveau champ exemple Cond_2 avec cette formule etc pour la suite des références ce qui va donner une dizaine de champs
et pour finir en B2 il suffit d'écrire =Col_1&Col_2&Col_3&Col_4 etc ... et incrémenter la formule vers le bas