Comparer toute les lignes d'un tableau excel
Sieg
-
Fxbrg Messages postés 715 Statut Membre -
Fxbrg Messages postés 715 Statut Membre -
Bonjour,
J'ai un ensemble de donnée que je cherche a comparer les unes avec les autres et je ne trouve aucun formule correspondante sous excel, on ma conseil de me rabattre sur les macro mais je n'ai aucune connaissance dans ce domaine donc j'en appel a vous.
Mes données sont des génotypes a comparer (biologie), se présentant dans un tableau excel fait par mes soins ^^
Le format du tableau et de ce type
Nom des individus en colonne A à partir de A2
Génotype premier gene colonne B et C à partir de B2 et C2
avec 6genes étudiés donc au totale 12colonnes a comparer entre chaque individus sur environ 200 individus.
Le but serait de comparer chaque individus a tous les autres et de me signaler en couleur par exemple les individus ayant les même valeur pour tous les génotypes en même temps ...
Comme je doute d'etre trés clair je vous donne un exemple concret :
Nom géno1 Géno2 Géno3 Géno4 Geno5 Géno6
ind1 106 106 230 230 301 304 110 105 243 244 321 367
ind2 107 106 236 230 301 304 110 109 243 244 321 367
ind3 106 106 230 230 301 304 110 105 243 244 321 367
Les individus 1 et 3 sont identiques donc il faudrait me les mettre en couleur.
Voila j'espère que c'est assez clair comme cela.
Merci a vous.
J'ai un ensemble de donnée que je cherche a comparer les unes avec les autres et je ne trouve aucun formule correspondante sous excel, on ma conseil de me rabattre sur les macro mais je n'ai aucune connaissance dans ce domaine donc j'en appel a vous.
Mes données sont des génotypes a comparer (biologie), se présentant dans un tableau excel fait par mes soins ^^
Le format du tableau et de ce type
Nom des individus en colonne A à partir de A2
Génotype premier gene colonne B et C à partir de B2 et C2
avec 6genes étudiés donc au totale 12colonnes a comparer entre chaque individus sur environ 200 individus.
Le but serait de comparer chaque individus a tous les autres et de me signaler en couleur par exemple les individus ayant les même valeur pour tous les génotypes en même temps ...
Comme je doute d'etre trés clair je vous donne un exemple concret :
Nom géno1 Géno2 Géno3 Géno4 Geno5 Géno6
ind1 106 106 230 230 301 304 110 105 243 244 321 367
ind2 107 106 236 230 301 304 110 109 243 244 321 367
ind3 106 106 230 230 301 304 110 105 243 244 321 367
Les individus 1 et 3 sont identiques donc il faudrait me les mettre en couleur.
Voila j'espère que c'est assez clair comme cela.
Merci a vous.
A voir également:
- Excel comparer deux lignes
- Nombre de jours entre deux dates excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Fusionner deux cellules excel - Guide
44 réponses
il y a un article dans micro actuel de ce mois ci qui traite de ton problème, ils parlent de mise en forme conditionnelle
La mise en forme et la coloration des données n'est que superflu, la base du soucis c'est de comparer chacune de mes lignes de données avec l'ensemble de mon tableau.
Et si ca répond à ma question est-ce que tu pourrais etre plus explicite parce que je ne vois pas en quoi une mise en forme auto maiderais a comparer des données...
Il faut en fait que je comparer la ligne 2 d'un tableau avec un ensemble de ligne (jusqu'a 151 pour l'instant mais on l'espère prochainement sur un millier voir plus ...)
Et si ca répond à ma question est-ce que tu pourrais etre plus explicite parce que je ne vois pas en quoi une mise en forme auto maiderais a comparer des données...
Il faut en fait que je comparer la ligne 2 d'un tableau avec un ensemble de ligne (jusqu'a 151 pour l'instant mais on l'espère prochainement sur un millier voir plus ...)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hello,
Tu peux mettre en ligne un exemple de ton fichier? (cijoint.fr)
Tu veux que cette identification par couleur se fasse à la volée? c-à-d quand tu saisis un gène? Ou bien tu veux saisir puis lancer la recherche de concordances?
Dans tous les cas, il va falloir passer par une macro, si tu mets ton fichier en ligne, je m'y colle :-)
Tu peux mettre en ligne un exemple de ton fichier? (cijoint.fr)
Tu veux que cette identification par couleur se fasse à la volée? c-à-d quand tu saisis un gène? Ou bien tu veux saisir puis lancer la recherche de concordances?
Dans tous les cas, il va falloir passer par une macro, si tu mets ton fichier en ligne, je m'y colle :-)
J'ai essayer avec la mise en forme, effectivement ca me signale les données identiques mais ca ne m'avance pas car ca ne compare qu'une cellule a une autre (a moins de ne pas avoir bien comprit).
Il me faut comparer les 12cellules a la fois et seulement si les 12cellules sorte de maniere identique dans ma base de donnée alors il faut qu'il me le signale. Ce n'est pas une comparaison case par case dont j'ai besoin mais comparer les 12cases de génotype de chaque individus avec les 12cases de génotype de chacun des autres individus.
La mise en forme conditionnelle m'aide pour la lecture manuelle mais j'aimerais trouver une méthode vraiment automatisé de comparaison de l'ensemble de mes donnée simultanéement, sachant que le nombre d'individus va augmenter ainsi que le nombre de génotype ...
Merci de ton aide en tout cas :)
Il me faut comparer les 12cellules a la fois et seulement si les 12cellules sorte de maniere identique dans ma base de donnée alors il faut qu'il me le signale. Ce n'est pas une comparaison case par case dont j'ai besoin mais comparer les 12cases de génotype de chaque individus avec les 12cases de génotype de chacun des autres individus.
La mise en forme conditionnelle m'aide pour la lecture manuelle mais j'aimerais trouver une méthode vraiment automatisé de comparaison de l'ensemble de mes donnée simultanéement, sachant que le nombre d'individus va augmenter ainsi que le nombre de génotype ...
Merci de ton aide en tout cas :)
Bonjour
Pour comparer les 12 cellules à la fois, il faudrait concatener vos colonnes en créant une colonne récapitulative:
Soit en colonne X
cellule X2, à trier selon la hauteur du champ
=B2&C2&D2&E2&F2&G2&H2etc......
Ainsi vous obtiendrez un code complet dans une cellule, spécifique à chaque ligne.
Ceci dit, je laisse des meilleurs que moi traiter la suite, car je ne connais pas la macro qui donnera les couleurs . Et sans macro, on ne dépassera pas 3 options de couleur , avec un formatage conditionnel
Je peux simplement identifier par une formule qu'il y ai une seule ou plusieurs fois le même code dans la liste:
en colonne Y par exemple:
En Y2
=si(ESTVIDE(X2);0;SI((NB.SI(X:X;X2)=1);"Seul";"plusieurs"))
"Seul et plusieurs" étant à revoir selon les codes à utiliser.
Tout cela ne vous aidera sans doute pas beaucoup....
BCRDLMNT
Pour comparer les 12 cellules à la fois, il faudrait concatener vos colonnes en créant une colonne récapitulative:
Soit en colonne X
cellule X2, à trier selon la hauteur du champ
=B2&C2&D2&E2&F2&G2&H2etc......
Ainsi vous obtiendrez un code complet dans une cellule, spécifique à chaque ligne.
Ceci dit, je laisse des meilleurs que moi traiter la suite, car je ne connais pas la macro qui donnera les couleurs . Et sans macro, on ne dépassera pas 3 options de couleur , avec un formatage conditionnel
Je peux simplement identifier par une formule qu'il y ai une seule ou plusieurs fois le même code dans la liste:
en colonne Y par exemple:
En Y2
=si(ESTVIDE(X2);0;SI((NB.SI(X:X;X2)=1);"Seul";"plusieurs"))
"Seul et plusieurs" étant à revoir selon les codes à utiliser.
Tout cela ne vous aidera sans doute pas beaucoup....
BCRDLMNT
Voila une partie de mes données en exemple avec la mise en forme qu'ils doivent avoir :
http://www.cijoint.fr/cjlink.php?file=cj200802/cij11118932045752.xls.
et je pencherais plutot pour une saisie totale de toute mes infos puis une recherche de concordance.
Merci de ton aide ^^
http://www.cijoint.fr/cjlink.php?file=cj200802/cij11118932045752.xls.
et je pencherais plutot pour une saisie totale de toute mes infos puis une recherche de concordance.
Merci de ton aide ^^
Je retente le lien n'ayant pas trouver l'icone d'édition ^^
http://www.cijoint.fr/cjlink.php?file=cj200802/cij11118932045752.xls
http://www.cijoint.fr/cjlink.php?file=cj200802/cij11118932045752.xls
Ca marche...
Question : cherches-tu un seul couple? peut-il y avoir plus de deux lignes concordantes? peut-il y avoir plusieurs groupes de lignes concordantes?
:-)
Question : cherches-tu un seul couple? peut-il y avoir plus de deux lignes concordantes? peut-il y avoir plusieurs groupes de lignes concordantes?
:-)
Hello :-)
regarde ça : http://www.cijoint.fr/cjlink.php?file=cj200802/cij6851484335735.xls
et dis-moi ce que tu en penses :-)
regarde ça : http://www.cijoint.fr/cjlink.php?file=cj200802/cij6851484335735.xls
et dis-moi ce que tu en penses :-)
Oops, j'ai mis un mauvais lien, voici le bon :
http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
:-)
http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
:-)
Pour info, ce petit bout de code ne fonctionne que si tu n'as que des paires... Si tu peux avoir trois lignes ou plus identiques, il faut le modifier...
:-)
:-)
Voici la version qui accepte tous les cas de figure, plus un bouton de reset des couleurs pour le fun :-)
http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
Arghh... impossible de mettre la version finale du cij... Si tu as un mail, je te l'envoie en direct :-) le fichier fait 32ko..
@+,
JF
@+,
JF
Merci de ton aide ^^
Oui il est possible d'avoir plus de deux ligne égale tout comme il est possible qu'il y est des groupes de deux et + de ligne égale ... 2ligne égale et 3ligne égale différente des deux autres est tout a fait possible.
Voila mon adresse mail : sieg-wahrmeit@laposte.net
L'exemple que tu me donne a l'air sympa mais il me le faudrait sous le format macro ou m'expliquer comment récupérer de ton exemple le fichier de programmation correspondant a la macro utilisé ^^ <== noob attitude.
Merci en tout cas.
Oui il est possible d'avoir plus de deux ligne égale tout comme il est possible qu'il y est des groupes de deux et + de ligne égale ... 2ligne égale et 3ligne égale différente des deux autres est tout a fait possible.
Voila mon adresse mail : sieg-wahrmeit@laposte.net
L'exemple que tu me donne a l'air sympa mais il me le faudrait sous le format macro ou m'expliquer comment récupérer de ton exemple le fichier de programmation correspondant a la macro utilisé ^^ <== noob attitude.
Merci en tout cas.
Le fichier est parti...
Pour voir le code : clic droit sur l'onglet de ta feuille, puis visualiser le code...
Il y a deux boutons, chacun a son code : le premier remet le fond en blanc...
Le second est plus malin :-)
On crée deux variables : conc1 et conc2.
Ensuite on part de la fin de la feuille (usedrange.rows.count) et on remonte (step -1) jusqu'à la ligne 2 (to 2)
A chaque ligne, on affecte conc1 comme étant une concaténation de toutes les cellules de la ligne (cells(1,2)&...cells(i,13)
Ensuite on balaie tout le tableau, en partant de la ligne juste au dessus jusqu'à la ligne 2, on affecte à la seconde variable conc2 la concaténation de la ligne observée, puis on compare. Si conc1=conc2, on donne aux deux lignes la mêmes couleur...
Et on recommence jusqu'à la fin... :-)
Ce code est indépendant du nombre de lignes de ton tableau. Tu peux avoir X occurences de lignes identiques, qui seront de la même couleur. Chaque nouvelle association prend une nouvelle couleur.
Dis moi si ça gaze :-)
Pour voir le code : clic droit sur l'onglet de ta feuille, puis visualiser le code...
Il y a deux boutons, chacun a son code : le premier remet le fond en blanc...
Le second est plus malin :-)
On crée deux variables : conc1 et conc2.
Ensuite on part de la fin de la feuille (usedrange.rows.count) et on remonte (step -1) jusqu'à la ligne 2 (to 2)
A chaque ligne, on affecte conc1 comme étant une concaténation de toutes les cellules de la ligne (cells(1,2)&...cells(i,13)
Ensuite on balaie tout le tableau, en partant de la ligne juste au dessus jusqu'à la ligne 2, on affecte à la seconde variable conc2 la concaténation de la ligne observée, puis on compare. Si conc1=conc2, on donne aux deux lignes la mêmes couleur...
Et on recommence jusqu'à la fin... :-)
Ce code est indépendant du nombre de lignes de ton tableau. Tu peux avoir X occurences de lignes identiques, qui seront de la même couleur. Chaque nouvelle association prend une nouvelle couleur.
Dis moi si ça gaze :-)
Visuellement ca marche et c'est tréssssssss exactement ce que je voulais, malheureusement quand je ccopie-colle l'ensemble de mes données j'ai un message d'erreur ...
Erreur d'execution 1004
Impossible de définir la propriété ColorIndex de la classe Interior
Et en cliquant bien évidemment sur débogage j'ai le droit a une surlignement de cette ligne :
Range(Cells(i, 2), Cells(i, 13)).Interior.ColorIndex = i
Voila si tu as une idée je suis prenneur ^^
Erreur d'execution 1004
Impossible de définir la propriété ColorIndex de la classe Interior
Et en cliquant bien évidemment sur débogage j'ai le droit a une surlignement de cette ligne :
Range(Cells(i, 2), Cells(i, 13)).Interior.ColorIndex = i
Voila si tu as une idée je suis prenneur ^^
Il est possible que selon le nombre de lignes, le i soit trop grand ou ne corresponde pas à une couleur... Combien as-tu de lignes dans ton tableau?
Pour le moment 151 ligne différent (en partant de la 2eme ...) mais au final je risque de passer les 1000 voir plus avec un peu de chance.
Copie ça en lieu et place du code du bouton 1 :
Private Sub CommandButton1_Click()
Dim conc1 As Double, conc2 As Double
Dim n As Integer, i As Integer, j As Integer, k As Integer
j = 2
For i = UsedRange.Rows.Count To 2 Step -1
conc1 = Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5) & Cells(i, 6) & Cells(i, 7) & Cells(i, 8) & Cells(i, 9) & Cells(i, 10) & Cells(i, 11) & Cells(i, 12) & Cells(i, 13)
k = 0
If Cells(i, 2).Interior.ColorIndex = -4142 Then
For n = 1 To i - 2
conc2 = Cells(i - n, 2) & Cells(i - n, 3) & Cells(i - n, 4) & Cells(i - n, 5) & Cells(i - n, 6) & Cells(i - n, 7) & Cells(i - n, 8) & Cells(i - n, 9) & Cells(i - n, 10) & Cells(i - n, 11) & Cells(i - n, 12) & Cells(i - n, 13)
If conc1 = conc2 Then
Range(Cells(i, 2), Cells(i, 13)).Interior.ColorIndex = j
Range(Cells(i - n, 2), Cells(i - n, 13)).Interior.ColorIndex = j
k = 1
End If
Next
End If
If k = 1 Then j = j + 1
Next
End Sub
et dis-moi comment ça se passe...
Je dois partir, serai de retour plus tard ce soir...
@+,
JF
Private Sub CommandButton1_Click()
Dim conc1 As Double, conc2 As Double
Dim n As Integer, i As Integer, j As Integer, k As Integer
j = 2
For i = UsedRange.Rows.Count To 2 Step -1
conc1 = Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5) & Cells(i, 6) & Cells(i, 7) & Cells(i, 8) & Cells(i, 9) & Cells(i, 10) & Cells(i, 11) & Cells(i, 12) & Cells(i, 13)
k = 0
If Cells(i, 2).Interior.ColorIndex = -4142 Then
For n = 1 To i - 2
conc2 = Cells(i - n, 2) & Cells(i - n, 3) & Cells(i - n, 4) & Cells(i - n, 5) & Cells(i - n, 6) & Cells(i - n, 7) & Cells(i - n, 8) & Cells(i - n, 9) & Cells(i - n, 10) & Cells(i - n, 11) & Cells(i - n, 12) & Cells(i - n, 13)
If conc1 = conc2 Then
Range(Cells(i, 2), Cells(i, 13)).Interior.ColorIndex = j
Range(Cells(i - n, 2), Cells(i - n, 13)).Interior.ColorIndex = j
k = 1
End If
Next
End If
If k = 1 Then j = j + 1
Next
End Sub
et dis-moi comment ça se passe...
Je dois partir, serai de retour plus tard ce soir...
@+,
JF