Pb pour reclasser une liste suivant différents critères

Résolu/Fermé
nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015 - 27 juil. 2015 à 22:46
nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015 - 5 août 2015 à 11:26
Bonjour,
Je vous soumets un petit défi sur Excel qui dépasse mes maigres compétences...
Je réalise une feuille de calcul visant à faciliter la vie des personnes qui dépouillent des élections professionnelles. Il s'agit d'une suite de calculs fastidieux avec une étape sensible : le reclassement des candidats selon le nombre de votes reçus et le pourcentage de ratures.
Les candidats se présentent dans l'ordre de leur choix sur la liste électorale.
Chaque liste reçoit le même nombre de bulletins, mais le nom de certains candidats peut être raturé par les votants et ils perdent des voix. Les candidats qui reçoivent plus de 10% de ratures sont repoussés en bas de liste et reclassés par ordre décroissant du nombre de voix (après ratures).

Exemple :

Ordre------Nb de-----------Nb----------soit-------Nbre-------Nouvel
initial------bulletins------ratures ------------------de voix------ordre
---A------------47------------5----------10,6%------42------------B
---B------------47------------2-----------4,3%-------45-----------D
---C------------47------------7----------14,8%-------40-----------A
---D------------47------------0-----------0,0%-------47-----------E
---E------------47------------6-----------12,7%-------41----------C


Merci pour votre aide !!!

4 réponses

Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
27 juil. 2015 à 22:59
Bonjour,
Sans chercher très loin, vous trier le tableau sur la colonne [soit en %] dans l'ordre décroissant.
Outil [Trier] sous l'onglet [Données] bloc [Trier et Filtrer]

0
nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015
27 juil. 2015 à 23:15
Merci, mais je me suis mal exprimé: la liste initiale doit subsister, les noms doivent se reclasser automatiquement dans la dernière colonne. ..
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449 > nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015
27 juil. 2015 à 23:26
Bonjour,
A bon d'accord, mais je vous prie d'utiliser l'option : Répondre au sujet et non pas Commenter la réponse.... Et en plus un petit bonjour va de soit pour chaque message, nous ne sommes pas au parloir...
Salutations.
Le Pingou
0
jee pee Messages postés 40453 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 novembre 2024 9 417
Modifié par jee pee le 27/07/2015 à 23:24
Bonjour,

Déjà il faut se mettre d'accord sur les règles ;-)

https://www2.liaisons-sociales.fr/ratures-et-bulletins-nuls

Pour moi, les candidats ayant moins de 10% de rature sont en tête dans l'ordre de la liste et ceux ayant plus de 10% de ratures sont classés après, dans l'ordre du nombre de voix obtenues.

Le nouvel ordre (liste résultats) devrait être :

Ordre------Nb de-----------Nb----------soit-------Nbre-------Nouvel
initial------bulletins------ratures ------------------de voix------ordre
---A------------47------------5----------10,6%------42------------C
---B------------47------------2-----------4,3%-------45-----------A
---C------------47------------7----------14,8%-------40-----------E
---D------------47------------0-----------0,0%-------47-----------B
---E------------47------------6-----------12,7%-------41----------D


Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
Modifié par JvDo le 28/07/2015 à 00:32
Bonsoir jee pee,

C et A ont plus de 10 % de rayés; ils ne peuvent être en tête.
Et "l'ordre du nombre de voix obtenues" doit bien être décroissant.
Bref, c'est ce que nadarccm0512 a expliqué, non?

cordialement
0
jee pee Messages postés 40453 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 novembre 2024 9 417 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
Modifié par jee pee le 28/07/2015 à 08:56
les A,b,c sont pour moi une mauvaise présentation

il serait preferable

Ordre------Nb de-----------Nb----------soit-------Nbre-------Classement
initial------bulletins------ratures -------------de voix------election
---Alain------------47------------5----------10,6%-------42-----------3
---Bernard----------47------------2-----------4,3%-------45-----------1
---Claude-----------47------------7----------14,8%-------40-----------5
---Denis------------47------------0-----------0,0%-------47-----------2
---Estelle----------47------------6----------12,7%-------41-----------4
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
28 juil. 2015 à 03:11
Bonsoir à tous,

je pars d'une disposition comme ça :

En G3:G7, tu rentres la formule matricielle :
=INDEX(A3:A7;PRODUITMAT(--(LIGNE($1:$5)-SOMMEPROD(--(D3:D7<10%))=TRANSPOSE(LIGNE($1:$5))*(LIGNE($1:$5)>=SOMMEPROD(--(D3:D7<10%))));INDEX(SI(D3:D7>=10%;LIGNE(A3:A7);0);EQUIV(GRANDE.VALEUR(SI(D3:D7>=10%;E3:E7+(LIGNES($A$1:$A7)-LIGNE(E3:E7))/100000000;0);LIGNE($1:$5));SI(D3:D7>=10%;E3:E7+(LIGNES($A$1:$A7)-LIGNE(E3:E7))/100000000;0);0)))+SIERREUR(PETITE.VALEUR(SI(D3:D7<10%;LIGNE(A3:A7));LIGNE($1:$5));0)-LIGNES($A$1:$A2))
et tu la valides par CTRL+MAJ+ENTER

tu peux recopier la zone A3:G7 autant que nécessaire pour tester cette formule avec plusieurs configurations de vote.

au cas où : https://www.cjoint.com/c/EGCbkLJazgH

cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
Modifié par JvDo le 28/07/2015 à 04:50
je viens de me rendre compte que tu as posté sur au moins 3 autres forum !!

https://forum.excel-pratique.com/viewtopic.php?forum_uri=excel&t=66859&start=

http://www.developpez.net/forums/d1534555/logiciels/microsoft-office/excel/pb-reorganiser-membres-d-liste/

https://www.excel-downloads.com/threads/pb-pour-reclasser-une-liste-suivant-plusieurs-criteres.233881/

tu aurais pu le dire, je ne me serais pas cassé la tête sur ta question.
0
nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015
31 juil. 2015 à 23:16
Bonjour,

J'essaie de décortiquer et comprendre ta solution, mais je ne comprends pas la référence aux lignes $1:$5. Elle ne semble pas faire référence à des valeurs utiles, mais sans elles la formule ne marche pas.
Pourrais-tu m'expliciter la manip ?

Merci.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858 > nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015
31 juil. 2015 à 23:51
Bonsoir,

ligne($1:$5) crée un vecteur de 5 lignes contenant la séquence de 1 à 5.
Pour s'en convaincre, il suffit de sélectionner 5 cellules superposées, disons A1:A5, puis de saisir ligne($1:$5) et de valider par CTRL+MAJ+ENTER
Il y a beaucoup d'autres façons de le faire.
J'ai trouvé que celle là était économique en frappes clavier.

l'objectif est d'obtenir la matrice booléenne que j'ai dû laisser en $T$3:$X$7.

encore une fois, si tu sélectionnes une zone de 5 sur 5 cellules et que tu saisis =--(LIGNE($1:$5)-SOMMEPROD(--(D3:D7<10%))=TRANSPOSE(LIGNE($1:$5))*(LIGNE($1:$5)>=SOMMEPROD(--(D3:D7<10%)))) validé par CTRL+MAJ+ENTER, tu auras la matrice $T$3:$X$7.

Si tu veux simplifier la formule, tu peux remplacer ce code par $T$3:$X$7.

cdlt
0
nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
4 août 2015 à 18:11
Bonjour,

Désolé de te solliciter à nouveau, mais je ne parviens pas à transposer la formule ! J'ai tjs un message d'erreur #nombre! qui apparaît à la place du résultat :
http://www.cjoint.com/c/EHeqjCuiai5
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858 > nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015
4 août 2015 à 23:04
Bonsoir,

regarde : https://www.cjoint.com/c/EHevcJAVSYy

cordialement
0
nadarccm0512 Messages postés 6 Date d'inscription lundi 27 juillet 2015 Statut Membre Dernière intervention 5 août 2015
28 juil. 2015 à 09:13
Bonjour,

Désolé si je ne respecte pas les règles d'usage, c'est la première fois que je poste. La question étant assez urgente je l'ai en effet postée sur plusieurs forums, pour drainer un maximum de réponses. Je ne m'attendais pas à autant de réactivité !!!

Merci à JvDo, qui a trouvé la solution, semble-t-il : en effet, la difficulté consiste à garder les noms ayant obtenu moins de 10% de ratures dans l'ordre initial de la liste, et de reclasser les autres en fonction du nombre de voix. Je n'avais peut-être pas assez insisté sur ce point.

Merci donc pour cette solution à la fois élégante et efficace. J'imagine que j'ai le droit d'en communiquer l'adresse aux personnes qui ont répondu sur d'autres forums ?

Mon problème, maintenant, c'est que si je constate que la formule de JvDo fonctionne, je ne comprends pas comment ! Mais je vais la décortiquer pour l'adapter à mon fichier initial !

Merci encore !
0