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
14934
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
A voir également:

2 réponses

gbinforme
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 615
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
13692
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juin 2022
2 432 > 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
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 615 > via55
Messages postés
13692
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juin 2022

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