comparaison de colonnes

  • Initiateur de la discussion franck
  • Date de début
F

franck

Guest
Bonjour,

Je souhaite comparer le contenu de 2 colonnes.

Chacune des colonnes contient des noms, dont un grand nombre est commun aux 2 colonnes.

Je souhaite comparer de manière automatique les 2 colonnes de façon à ce que les noms qui ne sont pas commun aux 2 colonnes apparaissent dans une troisième colonne ou une autre feuille.

J'espère avoir été clair, mais je vais vous imager ma demande au cas où :

colonne 1 colonne 2 résultat attendu

toto1 toto1 toto6
toto2 toto3 toto7
toto3 toto6 toto8
toto4 toto7
toto5 toto8


Merci pour votre aide.
 
A

andré

Guest
Salut franck,

Quitte à te déccevoir, mais pour moi ta question ne correpond pas à ton exemple.

Question : les noms qui ne sont pas communs aux deux colonnes, donc toto2, toto4, toto5, toto6, toto7 et toto8.
Exemple: les noms de la colonne 2 qui ne sont pas présents dans la colonne 1

Voudrais-tu préciser ?

Ândré.
 
F

franck

Guest
Tu as raison mon exemple est erroné (où avais-je la tête ?), je reprends donc :

liste1 liste 2 Résultat attendu

toto 1 toto 1 toto 9
toto 2 toto 2 toto 10
toto 3 toto 3 toto 11
toto 4 toto 4
toto 5 toto 5
toto 6 toto 6
toto 7 toto 7
toto 8 toto 8
toto 9
toto 10
toto 11


ce devrait être plus compréhensible
 
A

andré

Guest
Salut franck,

Effectivement !

Je suppose tes deux colonnes en C et D, à partir de C2 et D2, ton résulutat en E à partir de E2.

En B2, tu places la formule : =SI(OU(C2="";NB.SI(D:D;C2)>0);"";MAX(B$1:B1)+1), que tu tires vers le bas
En E2 la formule : =SI(NBVAL(E$1:E1)+1>MAX(B:B);"";RECHERCHEV(NBVAL(E$1:E1)+1;B:C;2;0)), que tu tirers également vers le bas.

Si de plus tu veux récupérer les valeurs de la colonne D qui ne se trouvent pas en colonne B, tu emploies les colonne A et F avec des formules similaires.

Voilà, cela devarit marcher (du moins chez moi !)

Ândré.
 
A

antoine

Guest
un truc dans ce gout là devrait fonctionner :

' commeçons par compter le nombre de toto ;)

dim nbligne as single
nbligne = 1

do while cells(nbLigne,1) <> "" or cells(nbLigne,2) <> ""
nbligne = nbligne +1
loop

' puis la comparaison en elle meme

dim compteurCol3 as single
compteurCol3 = 1

for i = 1 to nbligne
if cells(i,1) <> cells(i,2) then
cells(compteurCol3 , 3) = cells(i,1) ' ne copie que la colone 1 en col3
compteurcol3 = compteurcol3 + 1
end if
next i

voila .. attention, j'ai respécté le dernier exemple. MAis je suis pas sur de ce que tu veux : voila un exemple de ce que ça feras

toto1 toto1 toto27
toto27 toto18 toto15
toto15 toto7
toto12 toto12 shdbs
toto7 fdfdf
shdbs toto10
 
F

franck

Guest
merci pour vos réponses,

André,

j'ai essayé ta proposition, le résultat renvoyé dans la colonne B correspond à un chiffre lorsqu'effectivement les conditions de comparaison sont réunies.
En fait, peux-tu modifier ta proposition afin de faire apparaitre dans la colonne E que les noms se retrouvant dans une colonne à le fois (C ou D) ?


Antoine,

J'avoue que je comprends pas du tout ce que tu propose mais c'est surement dû au fait que je ne soit q'un débutant en la matière.

Comment doit être utilisé ton programme, et surtout comment l'éditer ?

En tout cas je vous remercie pour le mal que vous vous donnez.

Salut, Franck
 
L

loic38

Guest
bonsoir
ce que tu cherches ressemble de très près aux fonctionnalité de "Non Correspondance entre tables " traitées par Access

une petite question que ton second exemple ne traite pas,
si dans la seconde colonne en dessous de TOTO8, figurait TOTO999, voudrais tu que ce TOTO999 figure dans la troisième colonne ?
 
F

franck

Guest
Bonsoir,

Effectivement, il faudrait que TOTO999 figure dans la troisième colonne.

Une précision : j'ai pris l'exemple de toto suivi d'un nombre, ce pouraît aussi bien être des listes de nom tout court (sans un nombre derrière)

j'èspère avoir répondu à ton interrogation.
 
A

andré

Guest
Resalu franck,

J'ai bien reçu ta question, en rpincipe pas si compliquée, mais j'ai un petit problème : si à la fois sur une même ligne les valeurs en C et en D sont uniques, donc à reporter en E.

J'y réfléchis (pendant que je regarde le foot ce soir) et je tiens ma réponse demain ... si je la trouve !

En attednant, vive Monaco !
Ândré.
 
A

andré

Guest
Bonjour franck,

Voilà, j'ai trouvé, mais je n'ai su le faire qu'en créant une deuxième colonne supplémentaire.

Tant qu'à y faire, j'ai un peu élargi le problème :

Deux valeurs identiques dans le même tableau ne sont pas pris en compte, peu importe où elles se trouvent (dans la même colonne ou dans l'autre).

Les colonnes ne sont pas limitées en nombre de lignes, il suffit de copier les formules sur la hauteur désirée.

Par une procédure similaire il y a possibilité d'effectuer cette sélection sur plus de deux colonnes, en créant pour chaque nouvelle colonne une colonne supplémentaire et en ajoutant à la formule de la colonne E un SI et un RECHERCHEV complémentaire (sans oublier de placer la fonction MAX en en-tête des colonnes supplémentaires)

Les valeurs peuvent être alphanumériques

Si tu as besoin d'un mot d'explication supplémentaire, h'hésite pas.
Ândré.
 

Pièces jointes

  • valeurs_uniques.zip
    4 KB · Affichages: 22

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 912
Membres
103 983
dernier inscrit
AlbertCouillard