Comparer et soustraire 2 listes dans excel

dandupont -  
Boisgontierjacques Messages postés 177 Statut Membre -
Je désire comparer 2 liste de nom dans excel.

Liste A = liste du mois courant
Liste B = liste du mois précédant

Je voudrais faire 2 choses:

1. Liste A - liste B = liste des nouveaux clients
et
2. Liste B - Liste A =liste des client disparues

Merci infiniment pour votre aide

4 réponses

  1. Alex_Allgood
     
    ce qu'on veut, c'est éliminer les termes qui se trouvent dans les 2 listes et avoir un liste C comportannt les éléments de B n'étant pas dans A........

    Comment fait-on ?
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonsoir

      une possibilité :
      Supposons la 1ere liste en colonne A et la seconde liste en colonne B à partir de B2
      En C2 mettre la formule =NB.SI(A:A;B2) et etirer au bas de la colonne B
      Ensuite appliquer un filtre sur la colonne C pour ne conserver que les valeurs 0 (uniques à la colonne C)
      Copier collage spécial Valeurs de la colonne C filtrée à un autre endroit ou sur une autre feuille

      Cdlmnt
      1
  2. Alex_Allgood
     
    Bonsoir
    J'ai deux listes de mots: la liste a A a moins de termes que la liste B et se retrouve au complet a l'intérieur mais les termes de la liste A sont dispersés aléatoirement au travers de la liste B. Il faudrait faire une boucle pour vérifier si l'élément se de A se trouve dans B et s'il ne s'y trouve pas, mettre l'élément dans C.
    merci
    0
  3. Boisgontierjacques Messages postés 177 Statut Membre 64
     
    Bonsoir,

    Cf PJ

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

    Sub Liste2_Liste1()
    a = Range("A2:A" & [A65000].End(xlUp).Row)
    Set MonDico1 = CreateObject("Scripting.Dictionary")
    For Each c In a
    MonDico1(c) = ""
    Next c
    b = Range("C2:C" & [C65000].End(xlUp).Row)
    Set MonDico2 = CreateObject("Scripting.Dictionary")
    For Each c In b
    If Not MonDico1.exists(c) Then MonDico2(c) = ""
    Next c
    [I2].Resize(MonDico2.Count, 1) = Application.Transpose(MonDico2.keys)
    End Sub

    Sub Liste1_Liste2()
    a = Range("C2:C" & [C65000].End(xlUp).Row)
    Set MonDico1 = CreateObject("Scripting.Dictionary")
    For Each c In a
    MonDico1(c) = ""
    Next c
    b = Range("A2:A" & [A65000].End(xlUp).Row)
    Set MonDico2 = CreateObject("Scripting.Dictionary")
    For Each c In b
    If Not MonDico1.exists(c) Then MonDico2(c) = ""
    Next c
    [K2].Resize(MonDico2.Count, 1) = Application.Transpose(MonDico2.keys)
    End Sub

    Sub Communs()
    a = Range("A2:A" & [A65000].End(xlUp).Row)
    Set MonDico1 = CreateObject("Scripting.Dictionary")
    For Each c In a
    MonDico1(c) = ""
    Next c
    b = Range("C2:C" & [C65000].End(xlUp).Row)
    Set MonDico2 = CreateObject("Scripting.Dictionary")
    For Each c In b
    If MonDico1.exists(c) Then If Not MonDico2.exists(c) Then MonDico2(c) = ""
    Next c
    [G2].Resize(MonDico2.Count, 1) = Application.Transpose(MonDico2.keys)
    End Sub

    Jacques Boisgontier
    0
  4. cptarget Messages postés 26 Statut Membre 1
     
    bonjour,

    le mieux est d'utiliser les vlookup (rechercheV sur excel en français)
    --> imaginons que la liste A se trouve en colonne A et que la liste B se trouve en colonne B

    en colonne C : vous tapez la fonction : =vlookup(a:a;b:b;0) et double clic pour descendre jusqu'en bas (s'il est dans les 2 colonnes il sera là)

    réponses directes sur cptarget.be dans la section forum

    Christophe
    -1