Comparer deux lignes si elles sont identique ou non

Fermé
0548 Messages postés 73 Date d'inscription samedi 21 mars 2015 Statut Membre Dernière intervention 19 janvier 2017 - 23 mai 2015 à 22:35
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 mai 2015 à 08:49
Bonsoir ,

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 :

https://www.cjoint.com/c/EExv66dAKlI

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

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 703
23 mai 2015 à 23:11
Bonjour,

Si tu veux savoir si A2 et égal à B2, il te suffit de la formule
=A2=B2
et tu auras VRAI ou FAUX selon le cas.
1
0548 Messages postés 73 Date d'inscription samedi 21 mars 2015 Statut Membre Dernière intervention 19 janvier 2017
24 mai 2015 à 01:32
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
0
via55 Messages postés 14487 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 octobre 2024 2 733 > 0548 Messages postés 73 Date d'inscription samedi 21 mars 2015 Statut Membre Dernière intervention 19 janvier 2017
24 mai 2015 à 23:31
Bonsoir

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
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 703 > via55 Messages postés 14487 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 octobre 2024
25 mai 2015 à 11:44
Bonjour via55,

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
par (avec le ";")
epurechaine1 = Replace(Replace(Replace(chaine1, "|", ","), "/", ","), ";", ",") 
0