Comparer et soustraire 2 listes dans excel

dandupont -  
Boisgontierjacques Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

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
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
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
Boisgontierjacques Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   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
cptarget Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   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