Comparer toute les lignes d'un tableau excel
Fxbrg Messages postés 715 Statut Membre -
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.
Configuration: Windows XP Internet Explorer 7.0
- Excel comparer deux lignes
- Nombre de jours entre deux dates excel - Guide
- Comment faire deux colonnes sur word - Guide
- Fusionner deux cellules excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
44 réponses
- 1
- 2
- 3
Le problème porte sur la comparaison de génotypes de 200 individus dans un tableau Excel, avec 12 colonnes (6 gènes) pour repérer des lignes identiques et les colorer.
Plusieurs solutions existent, notamment la mise en forme conditionnelle, l’utilisation de macros pour comparer chaque ligne avec toutes les autres et la création d’une clé par concaténation.
D’autres approches proposent de concaténer les génotypes dans une colonne auxiliaire, de trier et de marquer les doublons ou groupes concordants, puis d’appliquer une couleur conditionnelle.
En cas de données sensibles à des formats numériques, l’importance d’un format homogène et de vérifications adaptées est soulignée, les macros pouvant être utiles mais demandant des ajustements.
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 questionTu 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 :-)
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 :)
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
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
Question : cherches-tu un seul couple? peut-il y avoir plus de deux lignes concordantes? peut-il y avoir plusieurs groupes de lignes concordantes?
:-)
regarde ça : http://www.cijoint.fr/cjlink.php?file=cj200802/cij6851484335735.xls
et dis-moi ce que tu en penses :-)
http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
:-)
:-)
http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
@+,
JF
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.
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 :-)
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 ^^
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
- 1
- 2
- 3