Comparer deux lignes si elles sont identique ou non

0548 Messages postés 81 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. 0548 Messages postés 81 Statut Membre
       
      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
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > 0548 Messages postés 81 Statut Membre
         
        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
      2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744 > via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention  
         
        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