j'ai un projet dont je dois comparer et extraire les noms des personnes en commun voici un exemple :
- Ada Wai-chee Fu, Polly Mei-shuen Chan, Yin-Ling Cheung, Yiu Sang Moon
- Ada Wai-Chee Fu,Siu-Cheung Chau,
=> Ada Wai-chee Fu est le nom en commun .
j'ai mis ces noms dans le fichier ci joint en mettant les auteurs du fichier 1 : dans la colonne A et les auteurs du fichier2 dans la colonne B :
maintenat je veux bien conaitre si il y'a des transactions (des lignes ) ou les noms des auteurs d'une ligne X de la colonne A sont les mêmes que la colonnes B :
j'ai voulu jouer sur la longeur : en utilisant cette methode :
EXACT(LEN(A2);LEN(B2) mais elle n'est pas à 100 % efficace , alors j'ai essayé d'ajouter cette formule là :
- =AND(EXACT(LEFT(A2;SEARCH(",";A2)+3);LEFT(B2;SEARCH(",";B2)+3));EXACT(LEN(A2);LEN(B2)-1))
Mais en cas de maque de virgule j'ai eu un message d'erreur , de plus il y'a des lignes dont les noms sont séparé par d'autre caractère spéciaux exepmle " |"
j'ai vraiment que vous m'aidiez afin de trouver une solution .
merci d'avance
gbinforme , je peux pas utiliser "=A2=B2" car comme j'ai mentionné dans certain cas , je trouve des caractères spéciaux donc
exemple :
-Colonne A : Tzi-cker Chiueh|Jun Zhang
- Colonne B : Tzi-cker Chiueh ,Jun Zhang
normalement je dois avoir TRUE mais quand j'utilise la formule =A2=B2 j'aurai comme résultat FALSE
Une possibilité avec une fonction personnalisée qui épure d'abord les chaines en remplaçant les | et les / par des virgules puis scinde les chaines en fonction des virgules et compare les items puis renvoie les items communs
https://www.cjoint.com/?0EyxBhAsa6J ALT+F11 pour voir le code commenté et le compléter si nécessaire (remplacement d'autres caractères spéciaux)
Tu as tout à fait raison, seule une fonction spécialisée peut faire la comparaison.
Ainsi tu pourras rajouter des séparateurs car pourquoi pas ";" ou ":" ?
Petite suggestion, tu peux remplacer
a = Application.WorksheetFunction.Substitute(chaine1, "|", ",") c = Application.WorksheetFunction.Substitute(a, "/", ",") epurechaine1 = c
Tu peux ajouter d'autres caractères à supprimer si besoin.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
exemple :
-Colonne A : Tzi-cker Chiueh|Jun Zhang
- Colonne B : Tzi-cker Chiueh ,Jun Zhang
normalement je dois avoir TRUE mais quand j'utilise la formule =A2=B2 j'aurai comme résultat FALSE
Une possibilité avec une fonction personnalisée qui épure d'abord les chaines en remplaçant les | et les / par des virgules puis scinde les chaines en fonction des virgules et compare les items puis renvoie les items communs
https://www.cjoint.com/?0EyxBhAsa6J
ALT+F11 pour voir le code commenté et le compléter si nécessaire (remplacement d'autres caractères spéciaux)
Cdlmnt
Via
Tu as tout à fait raison, seule une fonction spécialisée peut faire la comparaison.
Ainsi tu pourras rajouter des séparateurs car pourquoi pas ";" ou ":" ?
Petite suggestion, tu peux remplacer par (avec le ";")