Comparer toute les lignes d'un tableau excel
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
44 réponses
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.
-
Thanks, U2... :-)
-
Salut,
Promis je vais essayer de pas faire de faute d'orthographe pour que vous finissiez pas en maquereau ... triste ou non ^^
Bon et bien visiblement ca répond a mes attentes, les cases vides ne devait pas forcément etre prises en comptent mais ca me permet de faire d'une pierre deux coups et de me montrer les individus ou il manque des informations donc c'est vraiment tout aussi bien ^^
Un grand merci encore une fois, je me plonge dans l'étude des codes pour les comprendre et si besoin de quelques chose d'approchant ne plus devoir faire appel totalement a vous ^^ ...
En attente de nouvelles difficultés ... Have fun ^^
Sieg -
et voila, plus simple que prévu :-)
http://www.cijoint.fr/cjlink.php?file=cj200803/cij2492645146205.xls
:-) -
Euh macrotiste, faudrait voir à pas faire de fote d'orthographe, que ça devienne pas maquereau triste... :-)
Sérieusement : la mère est toujours en première ligne? Qu'en est-il des cases vides? Doit-on en tenir compte?
Je m'y mets plus tard...
:-) -
Salut,
Je dois avouer ne pas avoir tester la version "toutes colonnes" vu que j'ai toujours des annotations sur le ou les cotés, par contre et vous allez etre content j'aurais encore besoin d'un peu d'aide ^^...
J'aimerais savoir ce qu'il faut que je change pour que ce qu'il me fait actuellement, a savoir comparer chacune des lignes avec toutes les autres, deviennent "comparer la premiere ligne avec toutes les autres mais seulement une colonne a la fois" ... Bref je suis pas trés clair donc exemple ^^
http://www.cijoint.fr/cjlink.php?file=cj200803/cij63819616210.xls
Dans le fichier les cases coloriées correspondent au fait que parmis les deux nombres present chez le descendant aucun de ceux ci ne se retrouve chez la Mère (ou plutot que ce qu'on trouve chez la Mère on le retrouve pas chez le descendant alors qu'on devrait retrouver au moins l'un des deux ...)
Donc ce que je voudrais c'est dans le même style que la macro précédente, a savoir comparer la mère a tous les descendant et si je ne retrouve pas au moins une des deux valeur pour chaque locus étudié alors me le signaler ^^
Dites voir messieurs les macrotistes c'est faisable ca ? -
Salut :-)
Pour l'instant, la macro ne prend en compte que les colonnes B à M.
Voici la version qui prend en compte TOUTES les colonnes, quelles qu'elle soient, il faut donc impérativement que tu n'aies que des locus dans cette feuilles, rien d'autre, sinon les concaténations et comparaisons vont pas le faire :-)
http://www.cijoint.fr/cjlink.php?file=cj200802/cij671435795948.xls
La macro prend maintenant en charge toutes les lignes, quel que soit leur nombre, et toutes les colonnes, quel que soit leur nombre...
:-) -
Oui en fait j'ai posé la question trop vite, car même sans rien connaitre a VB ca m'a pas été trop difficile d'avoir ma réponse et de savoir quoi changer et comment ...
tu prend simplement jusqu'a i, 13 suffit de pousser aussi loin qu'on veut ...
Bref derniere question est idiote désolé ^^ -
J'ai encore une petite question t'en qu'a faire ^^
J'aimerais savoir/comprendre la maniere dont la macro est construite parce que les 6locus actuels (ce que j'ai appeller locus dans la feuil excel) devrait doubler voir tripler ... Donc est-ce qu'elle prend en compte toute la ligne ou juste les colonnes jusqu'a M ? -
Et oui, et même a la survie d'une espèce ..... de plante ^^.
J'ai essayer d'éviter les termes technique mais bon c'était pas gagner au départ ^^ ...
En plus pour ta satisfaction personnel tu peux savoir que ta macro devrait pas mal tourner dans le Labo ^^, et oui stoujours comme ca les besoins sont la mais peu cherche .. -
Cool :-)
Au moins avec toi on travaille pour la science...lol
JF -
EXCELLENT ^^
Désolé a Vaucluse et a Raymond qui se sont donné du mal mais je pense rester sur la macro de Fxbrg (pas fait attention si tu avais un petit nom désolé ^^)
Elle fait trés exactement ce que je veux et en plus de maniere vraiment visuelle, un vrai bonheur pour les yeux et en terme d'efficacite ...
Un grand merci a vous tous pour votre aide précieuse, pour l'instant je ne vois rien d'autre mais je pense que vous aurez un jour ou l'autre de mes nouvelles ^^, rapide et efficace ca me plait beaucoup ...
Bonne journée a vous et a bientot (enfin peut-etre pas trop tot ca voudrais dire que je suis encore embéter ^^) -
Voila la bête :
- Les doublons qui n'en sont pas : corrigé, il s'agissait d'un mauvais format de variable (en gros, la variable valait du genre 1.00104.10 puissance 35, la comparaison ne se faisait que sur les premiers chiffres...)
- le fichier copie maintenant, en les associant, les doublons ou triplons ou plus sur la feuille 2... Le bouton Reset remet les couleurs à 0 ET efface la feuille 2.
Voici le lien : http://www.cijoint.fr/cjlink.php?file=cj200802/cij9492483465819.xls
Dis-voir si ça roule :-) -
Voila les lignes déja colorier qui me pose probleme, je ne sais vraiment pas d'ou cela peut venir ...
vraiment navré de vous mettre autant a contribution mais la formation excel j'y ai pas eu le droit ^^ donc je bidouille avec les formules mais les macros c'est vraiment, mais vraiment pas pour moi ...
http://www.cijoint.fr/cjlink.php?file=cj200802/cij8699252555842.xls
Fin de journée pour moi, je passerais peut-etre ce soir vous lire mais sinon bonne soirée a vous et a demain ^^ -
Vous etes trop réactif ^^
Oui effectivement je n'ai pas pensé a vérifier si en triant puis avec la formule SI il arriverais a me détecter des triplons voir + et même des doublons accolé ... je dois vérifier ca encore, je te lie le fichier dans ma prochaine réponse pour que tu puisse te faire une idée du probleme.-
ContributeurRe
je n'ais pas eu le temps de voir votre fichier mais je vous propose, à partir des suppositins suivantes:
Votre concaténation en colonne X de X2 à X200
=SI(NB.SI(X:X;X2)=1;1000;NB.SI($X$2:$X$200;X2)-NB.SI($X3:$X$200;X2))
Ainsi les codes identiques seront "incrémentés" à -1 à chaque fois et les codes seuls seront affectés de 1000 dans la colonne Y
Quand vous faires le tri, d'abord sur la colonne X et ensuite sur la Y vous aurez un tableau avec les codes identiques qui se suivent, plus une colonne qui vous donnera le N° d'ordre de la ligne, la limite du changement de code étant à 1
Vous pourrez donc identifier par formatage toutes les lignes où Y est égal à1 pour situer les chagngement de ligne de code
Attention aux signes, dans la 2° parrtie de la formule, il faut que le champ du dernier NB.SI soit en continu nune ligne en dessous pour que la formule fonctionne.(d'où le $X2
(Nombre de code dans le champ - nombre de code en dessous de la ligne)
BCRDLMT
-
-
Bon alors visiblement la combinaison concaténasion + formule si comme nous la donner Raymond fonction pas trop mal, maintenant il me suffirait juste de réussir a renvoyer les noms des individus ayant le même génotype (le noms des doublons quoi) dans une autre feuille excel, ca m'éviterais d'avoir a faire défiler toute ma liste ...
Vous voyez une possibilitée ? en cherchant dans les formules excel je trouve rien qui me permette de lier une case en fonction d'une condition validé dans une cellule d'une colonne ...
Par exemple ici j'ai gentillement demander qu'il me note le nom des deux individus ... bon en fait voila la formule que j'ai utilisé :
=SI(T5=T4;SI(T5="";"";(CONCATENER(A4;" ";A5;" Doublon")));SI(T5="";"";"Unique"))
T car j'ai compter en prennant 24génotype soit 12cases appeller locus qui contient chacun deux génotypes ^^, maintenant c'est beau mais ca m'oblige a défiler, il n'est pas possible de renvoyer sur la feuille2 les valeurs A4 A5 de mon exemple si la case ou est écrite la formule contient déja A4 A5 doublon ???
Je travail a lier le fichier pour te montrer les lieux d'erreur.-
ContributeurJe te propose une manière simple (et même simpliste) de ne lire que les noms concernés par des doublons, en Feuil2.
Tu peux ensuite faire un filtre sur la colonne A.
https://www.cjoint.com/?cCtzYwFFoJ
-
-
Salut Raymond,
Ton fichier est cool et simple, mais comme dit Sieg plus haut, il se peut qu'il ait des triplons ou pire, et il se peut aussi que deux paires de doublons soient à la suite, ce qui, une fois triés, les mettraient tous à la suite, pas facile à lire quoi est égal à quoi... :-)
Et si les doublons trouvés qui n'en sont pas sont liés aux cases vides, le problème sera le même, macro ou directement dans la feuille. J'attends de voir la réponse de Sieg...
:-) -
Salut :-)
Tu peux me faire passer (ou mettre ici) un exemple de doublon trouvé qui n'en est pas? Il doit y avoir une erreur de frappe quelque part, sinon il n'y a pas de raison qu'il ne trouve pas les doublons...:-) Ou alors, comme dans ton fichier exemple, tu as des cases vides, il se peut que la concaténation donne une valeur identique alors que les cases sont différentes...
15/20 couleurs c cool... :-) -
ContributeurSuite à mon post 25, voici un fichier de démonstration : https://www.cjoint.com/?cCrIzwk82E
-
Ah désolé oublier de préciser que le nombre de couleur a pas d'influence, je ne suis pas du tout sencer en retrouver en fait, chaque doublon est une possible erreur de manip ou alors de lecture et d'interprétation de mes donées brutes (avant le fichier excel ^^)
Donc je l'espère même sur 1000individus je ne devrais pas avoir plus de ... 15-20doublons maxi ... enfin j'espère ^^ -
désolé de pas suivre plus que ca mais c'est qu'une partie de mon boulot ^^
Donc j'ai tester la macro d'hier, avec l'ensemble du fichier ca avait l'air de marcher et donc j'ai pas insister hier soir, par contre en re-regardant ce matin je me suis rendu compte que les comparaison sont pas génial, visiblement il ne compare pas toutes les colonnes de chaque ligne vu qu'il me trouve des doublons qui n'en sont pas (juste 1ou 2 génotype différent, soit 1 a 2cases différentes mais quand même ^^)
Par contre on ma aussi fournit une macro appeller GenAlex qui visiblement a été fait spécialement pour le génotype biologique ... bon ca a pas l'air évident et je pense bien trop pousser pour ce que je veux (ca semble combiner des étude statistiques et des ratio d'erreur pour chaque valeur ce qui me donnerais plus d'informtaion a traiter qu'au départ ^^).
Je devais vraiment pas etre au mieux de mon attention hier car je viens seulement de comprendre l'idée de concatenée les valeurs et de trier, oui ca ne donne pas de couleur mais il y a peut-etre possibilité de regler la question.
Je vais m'essayer a ca tout de suite et je vous tient au courant.
Merci de votre aide encore une fois ^^
- 1
- 2
- 3