[Résolu] Tri de cellules appairées à des groupes de colonnes
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.
-
- Fraîchement OOthentifié
- Messages : 5
- Inscription : 11 oct. 2021 21:09
[Résolu] Tri de cellules appairées à des groupes de colonnes
Salut à tous,
J'aimerais créer une feuille de tri automatique et je n'ai pas la moindre idée de la manière de faire aboutir mon idée. J'aurais besoin de vos lumières s'il vous plait:
Dans une liste de 60 lignes ou plus, de 2 colonnes, les deux cellules horizontales de chaque ligne étant en regard, des paires indissociables.
J'ai aussi 3 groupes +1 de 20 lignes sur 2 colonnes, dans la même feuille. Éventuellement, le 4ème groupe se remplira s'il y a plus de 60 lignes au départ mais peu utile d'aller si loin. Je peux écrémer moi même pour me borner à 60 lignes et me contenter de 3 groupes, afin de ne pas complexifier encore plus la procédure.
Mon objectif:
¤ D'une part, classer ces lignes par ordre décroissant grâce aux cellules contenant une valeur numérique (typiquement, colonne A).
¤ D'autre part, placer les ligne 41 à 60 dans un groupe, une double colonne (puisqu'il y a deux colonnes valeur numérique+nom) dans l'ordre préalablement classé.
¤ Et d'autres part, les 40 première lignes, les dispatcher dans 2 autres groupes de 20 lignes, pour que le total de l'addition des valeurs numériques soit équivalente AU MAXIMUM entre eux (si parfaitement égaux, alors c'est encore mieux).
Je ne sais pas du tout s'il faudra l'emploi de macros, ou de fonctionnalité déjà présente en dur dans le logiciel, et encore moins où les trouver ni comment la construire.
Qu'en pensez-vous?
J'aimerais créer une feuille de tri automatique et je n'ai pas la moindre idée de la manière de faire aboutir mon idée. J'aurais besoin de vos lumières s'il vous plait:
Dans une liste de 60 lignes ou plus, de 2 colonnes, les deux cellules horizontales de chaque ligne étant en regard, des paires indissociables.
J'ai aussi 3 groupes +1 de 20 lignes sur 2 colonnes, dans la même feuille. Éventuellement, le 4ème groupe se remplira s'il y a plus de 60 lignes au départ mais peu utile d'aller si loin. Je peux écrémer moi même pour me borner à 60 lignes et me contenter de 3 groupes, afin de ne pas complexifier encore plus la procédure.
Mon objectif:
¤ D'une part, classer ces lignes par ordre décroissant grâce aux cellules contenant une valeur numérique (typiquement, colonne A).
¤ D'autre part, placer les ligne 41 à 60 dans un groupe, une double colonne (puisqu'il y a deux colonnes valeur numérique+nom) dans l'ordre préalablement classé.
¤ Et d'autres part, les 40 première lignes, les dispatcher dans 2 autres groupes de 20 lignes, pour que le total de l'addition des valeurs numériques soit équivalente AU MAXIMUM entre eux (si parfaitement égaux, alors c'est encore mieux).
Je ne sais pas du tout s'il faudra l'emploi de macros, ou de fonctionnalité déjà présente en dur dans le logiciel, et encore moins où les trouver ni comment la construire.
Qu'en pensez-vous?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Viking2020 le 12 oct. 2021 14:36, modifié 4 fois.
OpenOffice 4.1.7 /Windows 7
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour,
Merci
@+
Pas grand chose à vrai dire... Tes explications sont parfaitement claire pour une personne connaissant son contexte d'utilisation. Je n'en doute pas. Ici on préfère un fichier exemple avec des données bidon si nécessaire et cerise sur le gâteau, une feuille représentant le fichier avant traitement, et une autre après.Viking2020 a écrit :Qu'en penser vous?
Merci
@+
-
- Fraîchement OOthentifié
- Messages : 5
- Inscription : 11 oct. 2021 21:09
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour,
Merci d'avoir répondu. J'ai fait ce que tu as demandé mais sur une seule feuille, puisque, idéalement, j'aimerais que tout se passe dans une seule. L'idée, c'est qu'une fois ma base de données construite, les cellules en question se remplissent d'elles même, "en live" (avec le petit effet de satisfaction qui va avec ).
Je joints le fichier au premier message du fil.
A titre d'exemple, je réduit la liste de 60 ligne à 6 et 3 groupes. Le 3ème étant les paires qui ont les plus petites valeurs numériques:
15_A
27_B
18_C
42_D
67_E
10_F
Le total est de: 179
En ôtant les deux plus petites valeurs, le sous total passe à 154
La moyenne de ce sous total est 77. Valeur que j'aimerais retrouver approximativement en total dans chacun des 2 premiers groupes, en faire des groupes relativement équilibré.
Groupe 1:
42_D
27_B
69_Total
Groupe 2:
67_E
18_C
85_Total
Tout autre disposition éloignerait les totaux de la moyenne en question.
Finalement,
Groupe 3:
15_A
10_F
Ici, les écarts à la moyenne sont assez flagrants, c'est pour exposer le principe. J'aurais l'usage de nombre bien plus grands (quelques millier).
Merci d'avoir répondu. J'ai fait ce que tu as demandé mais sur une seule feuille, puisque, idéalement, j'aimerais que tout se passe dans une seule. L'idée, c'est qu'une fois ma base de données construite, les cellules en question se remplissent d'elles même, "en live" (avec le petit effet de satisfaction qui va avec ).
Je joints le fichier au premier message du fil.
A titre d'exemple, je réduit la liste de 60 ligne à 6 et 3 groupes. Le 3ème étant les paires qui ont les plus petites valeurs numériques:
15_A
27_B
18_C
42_D
67_E
10_F
Le total est de: 179
En ôtant les deux plus petites valeurs, le sous total passe à 154
La moyenne de ce sous total est 77. Valeur que j'aimerais retrouver approximativement en total dans chacun des 2 premiers groupes, en faire des groupes relativement équilibré.
Groupe 1:
42_D
27_B
69_Total
Groupe 2:
67_E
18_C
85_Total
Tout autre disposition éloignerait les totaux de la moyenne en question.
Finalement,
Groupe 3:
15_A
10_F
Ici, les écarts à la moyenne sont assez flagrants, c'est pour exposer le principe. J'aurais l'usage de nombre bien plus grands (quelques millier).
OpenOffice 4.1.7 /Windows 7
-
- GourOOu
- Messages : 9629
- Inscription : 18 sept. 2006 09:40
- Localisation : France
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour,
J'ai du mal à comprendre le rapport entre les explications du post précédent, et le fichier joint au premier message
N'y aurait-il pas erreur de pièce jointe ?
A +
J'ai du mal à comprendre le rapport entre les explications du post précédent, et le fichier joint au premier message
N'y aurait-il pas erreur de pièce jointe ?
A +
-
- Fraîchement OOthentifié
- Messages : 5
- Inscription : 11 oct. 2021 21:09
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour Jef, merci pour ta réponse.
Non non, c'est bien ce fichier, rempli manuellement. Alors oui, certes, la toute première ligne n'est là que pour information. Elle est totalement inutile dans les faits, et je ne compte pas la faire apparaitre dans ma feuille finale. Dison que c'est la ligne 0.
Les colonnes A et B son mes données. Dans l'ordre alphabétique des noms pour référence et construction.
J'aimerais ensuite que cette liste de 60+ lignes soit classée par ordre décroissant; Et qu'ensuite, elle soit scindée en 3 groupe de 20 lignes. Le dernier groupe (Groupe 3), avec les valeurs numériques de la colonne A les plus basses (et classées par ordre décroissant bien sûr), typiquement, ligne 41 à 60 donc.
Reste ensuite 40 lignes à classer/trier (tjrs pas ordre décroissant numériquement) dans les groupes 1 et 2. L'objectif est que ces deux groupes aient chacun un total équivalent l'un à l'autre. Comme dans mon exemple sur la feuille en pièces jointe: 54259/54258. Peu importe les noms ou les valeurs, j'ai juste besoin que les totaux soit le plus égaux possible.
Si on avait classé ça par ligne pair et impair par exemple, une ligne vers groupe 1, la suivante vers groupe 2, les totaux aurait eu quelque chose comme 470 d'écart si j'ai bonne mémoire. J'aimerais réduire cet écart autant que faire se peux.
Non non, c'est bien ce fichier, rempli manuellement. Alors oui, certes, la toute première ligne n'est là que pour information. Elle est totalement inutile dans les faits, et je ne compte pas la faire apparaitre dans ma feuille finale. Dison que c'est la ligne 0.
Ca, c'est l'équivalent des colonnes A et B dans la pièce jointe.15_A
27_B
18_C
42_D
67_E
10_F
Et ça, les colonne D et E (groupe 1), J et H (groupe 2) et J et K (Groupe 3).Groupe 1:
42_D
27_B
69_Total
Groupe 2:
67_E
18_C
85_Total
Groupe 3:
15_A
10_F
Les colonnes A et B son mes données. Dans l'ordre alphabétique des noms pour référence et construction.
J'aimerais ensuite que cette liste de 60+ lignes soit classée par ordre décroissant; Et qu'ensuite, elle soit scindée en 3 groupe de 20 lignes. Le dernier groupe (Groupe 3), avec les valeurs numériques de la colonne A les plus basses (et classées par ordre décroissant bien sûr), typiquement, ligne 41 à 60 donc.
Reste ensuite 40 lignes à classer/trier (tjrs pas ordre décroissant numériquement) dans les groupes 1 et 2. L'objectif est que ces deux groupes aient chacun un total équivalent l'un à l'autre. Comme dans mon exemple sur la feuille en pièces jointe: 54259/54258. Peu importe les noms ou les valeurs, j'ai juste besoin que les totaux soit le plus égaux possible.
Si on avait classé ça par ligne pair et impair par exemple, une ligne vers groupe 1, la suivante vers groupe 2, les totaux aurait eu quelque chose comme 470 d'écart si j'ai bonne mémoire. J'aimerais réduire cet écart autant que faire se peux.
OpenOffice 4.1.7 /Windows 7
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour,
Pour cette partie là, un recours à une macro est nécessaire. Le reste peut-être facilement géré avec les fonctions INDEX() PETITE.VALEUR() ou GRANDE.VALEUR().
@+
478. Mais là c'est quasiment mission impossible avec les fonction de base. Il faudrait une multitude de tableau pour tester différents classements possibles jusqu'à finir par trouver le plus approchant.Viking2020 a écrit :les totaux aurait eu quelque chose comme 470 d'écart si j'ai bonne mémoire. J'aimerais réduire cet écart autant que faire se peux.
Pour cette partie là, un recours à une macro est nécessaire. Le reste peut-être facilement géré avec les fonctions INDEX() PETITE.VALEUR() ou GRANDE.VALEUR().
@+
-
- Fraîchement OOthentifié
- Messages : 5
- Inscription : 11 oct. 2021 21:09
Re: Tri de cellules appairées dans des groupes de colonnes
OK, c'est bien ce que je me disais. Je ne sais pas du tout l'utiliser, mais j'ai instinctivement pensé au langage de prog Python aussi. Je vais aller poser la question simplifiée dans la section Macro alors. Merci.zeguedon a écrit : Pour cette partie là, un recours à une macro est nécessaire.
Le classement par ordre croissant et la scission de la liste en plusieurs groupes donc?zeguedon a écrit : Le reste peut-être facilement géré avec les fonctions INDEX() PETITE.VALEUR() ou GRANDE.VALEUR().
Ce tuto (h**ps://silkyroad.developpez.com/excel/indexequiv/) te semble pertinent pour apprendre à m'en servir stp? Je ne suis qu'un utilisateur averti de Calc, j'arrive à faire des trucs pas mal, mais je m'en sers tellement rarement que je dois souvent revoir les mêmes explications pour refaire les mêmes choses avec le temps.
La modération vous a écrit: Neutralisation URL : pas besoin de lien vers des tutoriels pour un tableur propriétaire et payant.
OpenOffice 4.1.7 /Windows 7
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour,
Les cellules de ta colonne A ne sont pas des valeurs numériques. Est-ce qu tu sais pourquoi ? Elle contiennent un caractère fantôme comme séparateur de millier (8239). Il faut donc convertir cette colonne avant d'envisager de son traitement :
à propager vers le bas.
Pour le reste, je reviendrai plus tard avec un exemple (pas trop de temps libre pour m'y consacrer avant le fin de la semaine).
@+
Les cellules de ta colonne A ne sont pas des valeurs numériques. Est-ce qu tu sais pourquoi ? Elle contiennent un caractère fantôme comme séparateur de millier (8239). Il faut donc convertir cette colonne avant d'envisager de son traitement :
Code : Tout sélectionner
=CNUM(SUBSTITUE(A2;UNICAR(8239);""))
Pour le reste, je reviendrai plus tard avec un exemple (pas trop de temps libre pour m'y consacrer avant le fin de la semaine).
@+
-
- Fraîchement OOthentifié
- Messages : 5
- Inscription : 11 oct. 2021 21:09
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour zeguedon,zeguedon a écrit : Les cellules de ta colonne A ne sont pas des valeurs numériques. Est-ce qu tu sais pourquoi ? Elle contiennent un caractère fantôme comme séparateur de millier (8239). Il faut donc convertir cette colonne avant d'envisager de son traitement :à propager vers le bas.Code : Tout sélectionner
=CNUM(SUBSTITUE(A2;UNICAR(8239);""))
Oui, j'ai remarqué en effet lorsque j'ai construit les 3 groupes (ça me prends une petite heure). J'ai ensuite oublié de convertir la colonne A, je pensais juste que ça servirait à un exemple imagé. Je me sers du tableur du célèbre moteur de recherche pour diffuser mon travail à tout ce beau monde en fait (colonne B), le passage de l'un à OpenOffice occasionne quelques erreurs.
Merci pour le code nonobstant, je copiais la colonne dans Notepad pour rechercher/remplacer
Ha cool, merci beaucoup. J'ai besoin de pistes, parce que là, je sèche... Je vais potasser les commandes INDEX et *.VALEURS pendant ce temps là.Pour le reste, je reviendrai plus tard avec un exemple (pas trop de temps libre pour m'y consacrer avant le fin de la semaine).
OpenOffice 4.1.7 /Windows 7
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: Tri de cellules appairées dans des groupes de colonnes
Bonjour,
Dans le fichier joint, une petit exemple pour faire "mumuse". J'ai mis en commentaire (petit carré rouge en haut à droite des cellules concernées) dans l'entête des colonnes contenant des formules quelques explications les concernant.
Pour faire fonctionner la répartition, il faut appuyer sur la touche de fonction F9 autant que nécessaire. Le calcul automatique des formules est volontairement désactivé.
Une version avec macro pour faire le job suivra dans la section adéquat.
Bonne découverte
@+
Dans le fichier joint, une petit exemple pour faire "mumuse". J'ai mis en commentaire (petit carré rouge en haut à droite des cellules concernées) dans l'entête des colonnes contenant des formules quelques explications les concernant.
Pour faire fonctionner la répartition, il faut appuyer sur la touche de fonction F9 autant que nécessaire. Le calcul automatique des formules est volontairement désactivé.
Une version avec macro pour faire le job suivra dans la section adéquat.
Bonne découverte
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.