[Résolu] Afficher les plages de colonne identique
Modérateur : Vilains modOOs
Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
-
- Membre OOrganisé
- Messages : 51
- Inscription : 29 nov. 2015 16:17
[Résolu] Afficher les plages de colonne identique
Bonjour à tous,
Savez vous comment faire pour savoir combien de colonne identique se trouvent dans un classeur et si possible d'afficher les résultats en surbrillance ?
J'ai essayer la formule NB.SI mais il s'agit d'une recherche d'un critère dans une plage et je ne trouve pas la formule pour chercher une plage parmi des plages.
Dans le cas ou je n'ai pas été clair, j'ai joint un fichier.
Merci sincèrement pour votre aide
Cordialement,
Cyril
Savez vous comment faire pour savoir combien de colonne identique se trouvent dans un classeur et si possible d'afficher les résultats en surbrillance ?
J'ai essayer la formule NB.SI mais il s'agit d'une recherche d'un critère dans une plage et je ne trouve pas la formule pour chercher une plage parmi des plages.
Dans le cas ou je n'ai pas été clair, j'ai joint un fichier.
Merci sincèrement pour votre aide
Cordialement,
Cyril
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par cyril260 le 07 nov. 2018 20:37, modifié 1 fois.
OpenOffice 4.1.5 AOO415m1(Build:9789) - Rev. 1817496
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
-
- GourOOu
- Messages : 9629
- Inscription : 18 sept. 2006 09:40
- Localisation : France
Re: Afficher les plages de colonne identique
Bonjour,
Dans le fichier réel, combien y a -til de colonnes à vérifier ?
Parce qu’il va falloir vérifier la colonne :
A +
Dans le fichier réel, combien y a -til de colonnes à vérifier ?
Parce qu’il va falloir vérifier la colonne :
- 1 avec la 2
- 1 avec la 3
- 1 avec la 4
- 1 avec la 5
- 2 avec la 3
- 2 avec la 4
- 2 avec la 5
A +
-
- Membre OOrganisé
- Messages : 51
- Inscription : 29 nov. 2015 16:17
Re: Afficher les plages de colonne identique
Bonjour Jeff et merci pour ta réponse,
Il doit avoir environ 520 colonnes sur 14 lignes (oui je sais c'est beaucoup )
Il doit avoir environ 520 colonnes sur 14 lignes (oui je sais c'est beaucoup )
OpenOffice 4.1.5 AOO415m1(Build:9789) - Rev. 1817496
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Afficher les plages de colonne identique
Bonsoir,
Tu pourrais concaténer toute une colonne de données en une seule chaîne et utiliser une formule de type dans une MFC.
Tu pourrais aussi t'orienter vers une fonction de hachage... mais il risque d'y avoir des collisions.
Cordialement,
Jean-Louis
Tu pourrais concaténer toute une colonne de données en une seule chaîne et utiliser une formule de type
Code : Tout sélectionner
NB.SI(plage des chaînes; chaîne) >1
Tu pourrais aussi t'orienter vers une fonction de hachage... mais il risque d'y avoir des collisions.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: Afficher les plages de colonne identique
Bonjour,
A+
Cela risque de poser problème car si il existe plusieurs séries la surbrillance sélectionnera toutes les colonnes de toutes les séries.cyril260 a écrit :et si possible d'afficher les résultats en surbrillance ?
Vu la quantité, il est préférable de gérer cela par macro. Dans ce fil : [Résolu][Calc]Comparer et repérer colonnes identiques je te propose une solution qui nécessite de nommer la plage à traiter ainsi qu'une ligne en dessous pour effectuer un marquage en remplacement de la surbrillance. Il faudra passer par Ctrl+F3 pour nommer ces plages à l'identique dans le fichier final. Lorsqu'une série de colonnes identique est trouvée, toutes les cellules de la même séries portent le numéro de la première colonne trouvée dans cette série et ainsi de suite pour toutes les autres nouvelles séries si il y en a. Si une colonne est unique, elle ne reçoit pas de marquage : Le fichier est dans le fil que je te donne un peu plus haut.cyril260 a écrit :Il doit avoir environ 520 colonnes sur 14 lignes (oui je sais c'est beaucoup )
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Afficher les plages de colonne identique
Bonsoir,
Ci-joint une mise en œuvre de ma première solution suggérée plus haut (sans macro ni fonction ajoutée), sur 520 colonnes et 15 lignes (et pas 14, car ton fichier exemple en comportait 15).
Les chaînes sont créées en ligne 17 (masquée), le nombre de plages-colonnes identiques en ligne 18 et la MFC simplifiée se colorant en jaune dès que la cellule correspondante de la ligne 18 est supérieure à 1.
Cordialement,
Jean-Louis
Ci-joint une mise en œuvre de ma première solution suggérée plus haut (sans macro ni fonction ajoutée), sur 520 colonnes et 15 lignes (et pas 14, car ton fichier exemple en comportait 15).
Les chaînes sont créées en ligne 17 (masquée), le nombre de plages-colonnes identiques en ligne 18 et la MFC simplifiée se colorant en jaune dès que la cellule correspondante de la ligne 18 est supérieure à 1.
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- Membre OOrganisé
- Messages : 51
- Inscription : 29 nov. 2015 16:17
Re: Afficher les plages de colonne identique
Bonsoir,
Tout d'abord je tiens à dire un grand Merci pour vos réponse ! Je suis même impressionné que ma question est sujet d'un fil tutorial crée par OOotremer971 qui explique de façon si claire
@ OOotremer971:
La macro marche parfaitement et je te remercie, je vais l'enregistrer ! Il suffit simplement de définir les plages:
Plage_a_comparer et Plage_de_marquage et exécuter la macro pour connaître les colonnes identiques à l'aide d'un marquage précisant le numéro de colonne identique !! Merci sincèrement ! ( le niveau est trop élevé pour moi, donc je me contenterais d'appliquer la macro)
@ Jean-Louis Cadeillan: Merci sincèrement également pour tes réponses qui résoud également parfaitement le problème et sans macro.
-J'ai essayé d'appliquer ce que tu as dis dans le premier message, j'ai concaténeé toute une colonne de données en une seule chaîne ( Ctrl+F3 et j'ai défini la plage $Feuille1.$A$2:$A$16 et utiliser une formule dans une MFC de type avec un style de surbrillance de couleur Rouge et malheureusement les colonnes B C D deviennent rouge alors que la colonne D est identique à la colonne A.
-Ensuite j'ai regardé le fichier joint dans le second message, et en effet tout fonctionne parfaitement , mais dans un soucis de compréhension que signifie (désolé je débute dans Open Office et je trouve cela vraiment passionnant)
Merci encore sincèrement pour votre aide, je vais marquer le sujet [Résolu]
Tout d'abord je tiens à dire un grand Merci pour vos réponse ! Je suis même impressionné que ma question est sujet d'un fil tutorial crée par OOotremer971 qui explique de façon si claire
@ OOotremer971:
La macro marche parfaitement et je te remercie, je vais l'enregistrer ! Il suffit simplement de définir les plages:
Plage_a_comparer et Plage_de_marquage et exécuter la macro pour connaître les colonnes identiques à l'aide d'un marquage précisant le numéro de colonne identique !! Merci sincèrement ! ( le niveau est trop élevé pour moi, donc je me contenterais d'appliquer la macro)
@ Jean-Louis Cadeillan: Merci sincèrement également pour tes réponses qui résoud également parfaitement le problème et sans macro.
-J'ai essayé d'appliquer ce que tu as dis dans le premier message, j'ai concaténeé toute une colonne de données en une seule chaîne ( Ctrl+F3 et j'ai défini la plage $Feuille1.$A$2:$A$16 et utiliser une formule dans une MFC de type
Code : Tout sélectionner
NB.SI(A2:E16; nom_de_la_chaine)>1
-Ensuite j'ai regardé le fichier joint dans le second message, et en effet tout fonctionne parfaitement , mais dans un soucis de compréhension que signifie
Code : Tout sélectionner
=A2&"²"&A3&
Merci encore sincèrement pour votre aide, je vais marquer le sujet [Résolu]
OpenOffice 4.1.5 AOO415m1(Build:9789) - Rev. 1817496
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Afficher les plages de colonne identique
Quelques remarques :cyril260 a écrit :une formule dans une MFC de typeCode : Tout sélectionner
NB.SI(A2:E16; nom_de_la_chaine)>1
- la plage premier argument de NB.SI() est censée contenir les chaînes, c'est-à-dire des cellules (dans mon exemple, ces cellules se trouvent en ligne 17) dans lesquelles on a concaténé les valeurs d'autres cellules, donc la plage ne peut pas être A2:E16 (ton exemple) qui contient les valeurs initiales et non les chaînes concaténées ;
- cette plage de chaînes doit être en notation absolue (avec des $) pour ne pas se décaler quand tu recopie le NB.SI() (que ce soit dans la zone de MFC ou dans des cellules) ;
- en deuxième argument de NB.SI(), il ne faut pas mettre un nom (attribué à une cellule) mais la référence de la cellule elle-même, de manière à pouvoir la recopier.
Imagine que tu aies dans trois cellules consécutives d'une colonne 11, 12, 13, si tu fais une concaténation brute, tu obtiens 111213, mais tu obtiendrais 111213 également à partir des 3 cellules 1, 112, 13 ou des trois cellules 11,121, 3 , etc. : il y a des collisions ! D'où l'idée de séparer chaque valeur par un caractère dont on est sûr qu'il ne sera pas présent en tant que valeur, d'où le choix du ², ainsi même si tes valeurs de cellules étaient alphabétiques, et non numériques, le séparateur ² resterait discriminant.cyril260 a écrit :que signifieCode : Tout sélectionner
=A2&"²"&A3&
Remarque : à la place de l'opérateur de concaténation, on pourrait :
- utiliser la fonction CONCATENER()
- utiliser une fonction CONCAT() (merci à gerard24 ! Voir ici), embarquée dans le fichier, dont voici le code :Cette fonction ne marche correctement que pour OpenOffice et permet une écriture bien plus ramassée :
Code : Tout sélectionner
REM ***** BASIC ***** REM Fonction trouvée sur le forum anglais REM J'ai modifié le nom original JOINCELLS en CONCAT REM Concatène une plage de cellules avec séparateur en ignorant les cellules vides et les 0 REM Si la plage est un rectangle, la concaténation se fait ligne par ligne. Function CONCAT(cells, Optional sep$) If isMissing(sep) then sep = "" REM J'ai aussi rendu le séparateur optionnel on error goto exitErr CONCAT = "" for row = lBound(cells, 1) to uBound(cells, 1) for col = lBound(cells, 2) to uBound(cells, 2) if cells(row, col) <> 0 then if CONCAT <> "" then CONCAT = CONCAT & sep end if CONCAT = CONCAT & cells(row, col) end if next next exit function exitErr: REM #VALUE CONCAT = Null End Function
Code : Tout sélectionner
=CONCAT($A$2:$A$16;"²")
- Pour LibreOffice uniquement, utiliser la fonction JOINDRE.TEXTE(), de syntaxe voisine de CONCAT() :
Code : Tout sélectionner
=JOINDRE.TEXTE("²";;$A$2:$A$16)
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Résolu] Afficher les plages de colonne identique
Bonjour,
Bien que le sujet soit marqué résolu, je propose un complément sans macro à la solution donnée par Jean-Louis Cadeillan que je salue au passage : 1) une ligne de marquage pour repérer les séries identique (C pour première colonne dans la même série, Q pour quantité trouvée dans cette série)
2) en A21, un sélecteur qui permet de choisir un des marqueurs générés et ne mettre en surbrillance que les colonnes appartenant à ce même marquage. Les colonnes sans marquage sont uniques.
A+
Bien que le sujet soit marqué résolu, je propose un complément sans macro à la solution donnée par Jean-Louis Cadeillan que je salue au passage : 1) une ligne de marquage pour repérer les séries identique (C pour première colonne dans la même série, Q pour quantité trouvée dans cette série)
Code : Tout sélectionner
=SI(A18>1;"C"&EQUIV(A17;$A$17:A17;0)&" Q"&A18;"")
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- Membre OOrganisé
- Messages : 51
- Inscription : 29 nov. 2015 16:17
Re: [Résolu] Afficher les plages de colonne identique
Bonsoir, et désolé pour la réponse tardive
Merci beaucoup Jean-Louis Cadeillan pour ces précisions qui m'ont beaucoup aidé à comprendre ton raisonnement et je dois dire que c'est hyper bien pensé Cette combinaison de 3 formules a résolu parfaitement le problème
Là ou je n'ai pas encore réussit c'est d' ajouter la fonction CONCAT dans mon Oo, je l'ai ajouté sous forme de macro et lorsque je l' exécute je reçois une erreur mais je ne vais pas te déranger la dessus, tu m'a déjà beaucoup aidé ! merci encore
Et je tiens aussi à dire un grand Merci à OOotremer971 pour la super macro et également pour l'ajout de fonctions aux fichier de Jean-Louis Cadeillan permettant d'analyser les colonnes en double ! C'est super sympa et bien pensé également, merci encore
A très bientôt,
Cyril
Merci beaucoup Jean-Louis Cadeillan pour ces précisions qui m'ont beaucoup aidé à comprendre ton raisonnement et je dois dire que c'est hyper bien pensé Cette combinaison de 3 formules a résolu parfaitement le problème
Là ou je n'ai pas encore réussit c'est d' ajouter la fonction CONCAT dans mon Oo, je l'ai ajouté sous forme de macro et lorsque je l' exécute je reçois une erreur mais je ne vais pas te déranger la dessus, tu m'a déjà beaucoup aidé ! merci encore
Et je tiens aussi à dire un grand Merci à OOotremer971 pour la super macro et également pour l'ajout de fonctions aux fichier de Jean-Louis Cadeillan permettant d'analyser les colonnes en double ! C'est super sympa et bien pensé également, merci encore
A très bientôt,
Cyril
OpenOffice 4.1.5 AOO415m1(Build:9789) - Rev. 1817496
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.
2017-12-11 17:25
sous Windows XP Service Pack 3
Obligation de version.