IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Comparaison de deux listes [XL-2007]


Sujet :

Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut Comparaison de deux listes
    Bonjour,

    J'ai actuellement deux fichiers excel contenants chacun deux colonnes [Identifiant] [Date].

    Mon but est de ressortir dans un troisième fichier (ou dans une autre feuille sur le même fichier peut m'importe) tous les couples [identifiant][Date] présents dans un fichier mais pas dans l'autre... En gros je veut un fichier qui regroupe l'ensemble des différences entre les deux fichiers.

    Après moult recherche j'ai trouvé pas mal de façons de comparer deux fichiers (winmerge notamment) mais la plupart ne permettent que de rendre les deux fichiers identiques ce qui n'est pas ce que je souhaite...

    Du coup connaîtriez vous un moyen d'effectuer cette opération ?

    Merci d'avance!!

    Ps : Les fichiers font dans les 140K lignes donc impossible de le faire à la main hein

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 412
    Points : 16 254
    Points
    16 254
    Par défaut
    Bonjour

    En utilisant NB.SI ou bien EQUIV, en prenant la référence dans un fichier puis dans l'autre, on peux trouver ces écarts.

    Ces fonctions peuvent être utilisées dans des formules classiques, dans une simple mise en forme conditionnelle dans les fichiers sources ou dans un filtre avancé qui extraira une copie de ces lignes (là aussi en 2 passes).

    Sinon on peut également le faire par VBA.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tu copies tes deux listes (l'une à la suite de l'autre pour n'en faire qu'une) dans un nouvel onglet.

    En supposant que tes listes soient en A1:B100 (si c'est différent, adapte la formule), tu place en C1 la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI.ENS(A$1:A$100;A1;B$1:B$100;B1)
    Tu recopies cette formule sur toutes tes lignes.

    Ensuite tu fais un tri en prenant la colonne C comme critère de tri.

    Tu repères sur quelle ligne la colonne C passe de 1 à 2.
    Tu supprimes tout ce qui a une valeur supérieure ou égale à 2 en colonne C.

    Terminé.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Bonjour et merci pour vos réponses.

    Menhir j'ai tenté avec la formule que tu m'a donnée en modifiant quelque peut :

    J'ai mit mes deux listes sur quatres colonnes et j'ai ensuite comparé les résultats de la façons suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI.ENS(A2:A135315;E2;B2:B135315;F2)
    Donc si je ne me trompe pas je cherche dans la liste colonne A:B si le couple E2:F2 est présent et si la formule répond 0 ce n'est pas le cas.

    Cela correspond mieux à ce que recherche car pour être plus précis je veux connaitre les éléments de la liste colonnes E:F qui ne sont pas présent dans la liste A:B.

    Par contre petit problème lorsque j'étend la formule l'ensembles de la colonne, ma plage de critère se décale d'autant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI.ENS(A3:A135316;E3;B3:B135316;F3)
    Or la liste A:B étant plus petite que la liste E:F je me retrouve au bout d'un moment à avoir des résultats faux...

    Merci de votre aide !!

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par mcfly37 Voir le message
    Par contre petit problème lorsque j'étend la formule l'ensembles de la colonne, ma plage de critère se décale d'autant :
    C'est pour ça qu'il faut des $ dans les références (voir ma formule).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    cf PJ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     Sub CompareDates()
      Set f1 = Sheets("BD1")
      Set f2 = Sheets("BD2")
      f1.Range("A1:B10000").Sort Key1:=f1.[a2], Order1:=xlAscending, Header:=xlYes
      f2.Range("A1:B10000").Sort Key1:=f2.[a2], Order1:=xlAscending, Header:=xlYes
      Set a = f1.Range("A2:A" & f1.[a65000].End(xlUp).Row)
      Set b = f2.Range("a2:a" & f2.[a65000].End(xlUp).Row)
      b.Resize(, 2).Interior.ColorIndex = xlNone
      a.Resize(, 2).Interior.ColorIndex = xlNone
      Set d1 = CreateObject("Scripting.Dictionary")
      Set d2 = CreateObject("Scripting.Dictionary")
      For Each c In a
        d1(c.Value) = c.Offset(, 1).Value
      Next c
      For Each c In b
        d2(c.Value) = c.Offset(, 1).Value
        If d1.exists(c.Value) Then
          If d1.Item(c.Value) <> d2.Item(c.Value) Then c.Resize(, 2).Interior.ColorIndex = 3
        Else
          c.Resize(, 2).Interior.ColorIndex = 4
        End If
      Next c
      For Each c In a
        If d2.exists(c.Value) Then
           If d1.Item(c.Value) <> d2.Item(c.Value) Then c.Resize(, 2).Interior.ColorIndex = 3
        Else
          c.Resize(, 2).Interior.ColorIndex = 4
        End If
      Next c
    End Sub
    Jacques Boisgontier
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Comparaison de deux listes
    Par chesrome dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/12/2012, 12h33
  2. comparaison de deux listes
    Par karaudrey88 dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2012, 14h04
  3. comparaison les éléments deux listes
    Par minooo dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 18/06/2012, 09h52
  4. Comparaison de deux listes
    Par Isabella83 dans le forum Langage
    Réponses: 12
    Dernier message: 30/03/2012, 12h11
  5. Comparaison de deux listes de fichier
    Par jackiechen dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 07/01/2008, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo