Fonction pour comparer des données en fonction d'un identifiant commun

Bonjour à tous !

Je dois comparer des données issues de deux bases de données clients différentes, dans le même fichier.

Pour se faire, chaque ligne = un identifiant commun pour les clients qui se ressemblent, et ensuite la suite de la ligne correspond aux données clients issues des deux bases de données différentes. C'est ceux la que je dois comparer entre eux. En gros j'ai une grosse base avec 35000 lignes et je dois seulement comparer ce qui est comparable, c'est à dire la ligne qui correspond au même identifiant de base. Je dois comparer plusieurs cellules (entre 4 et 5) et obtenir un score de "match".

Je suis un peu perdu car je n'arrive pas à modéliser la manière dont je peux comparer uniquement ce qui est comparable....

Voila si quelqu'un à une idée ca serait vraiment génial !! En vous remerciant d'avoir pris le temps de me lire,

Bonne journée à tous !

Bonjour,

Tu as ton fichier sous les yeux et une vague idée de ce que tu attends comme résultat, mais tu es perdu... Alors imagine pour nous sans aucun fichier ni exemple !!

Bonjour Pedro22,

Merci pour ta réponse !! voici un fichier joint et si je peux préciser mon idée..

Dans ce fichier tu peux voir que la première cellule correspond à un identifiant commun aux deux bases de données différentes. C'est cet identifiant qui doit être mon facteur de comparaison: si il est identique alors je compare les deux lignes et en fonction du score de similarité, je peux décider si les clients sont les même.

En espérant que cela soit un peu plus clair ...

Une proposition :

- Formule en Q2 :

=SIERREUR(SimilitudeLignes(DECALER($A$1:$P$1;EQUIV($A2;$A$1:$A1;0)-1;0);$A2:$P2);"REF "&A2)

- Fonction VBA personnalisée à mettre dans un module standard de l'éditeur VBA :

Public Function SimilitudeLignes(Ligne1 As Range, Ligne2 As Range) As Single

Dim Col As Integer, ColMax As Integer, Res As Integer

If Ligne1.Count <= Ligne2.Count Then ColMax = Ligne1.Count Else ColMax = Ligne2.Count
For Col = 1 To ColMax
    If Ligne1(Col) = Ligne2(Col) Then Res = Res + 1
Next
SimilitudeLignes = Round(Res / ColMax, 3)

End Function

- MFC personnalisée pour mettre en vert les cellules identiques à la référence :

=A2=DECALER(A$1;EQUIV($A2;$A$1:$A1;0)-1;0)

Le fichier modifié pour inclure tout ça :

PS : la ligne de référence pour la comparaison est la première rencontrée qui possède le même index en colonne A

Tu peux aussi appliquer une MFC "échelle de couleur" pour visualiser le niveau de similitude dans la colonne "Score".

Re-bonjour Pedro,

Je te remercie pour tes réponses ! ca a résolu mon probleme !!

Bonne journée a toi !!

Re-bonjour Pedro,

Je te remercie pour tes réponses ! ca a résolu mon probleme !!

Bonne journée a toi !!

Merci du retour, c'est sympa de se challenger sur des problématiques un peu originales comme la tienne !

Bonne continuation !

Rechercher des sujets similaires à "fonction comparer donnees identifiant commun"