Fonction Nb.si difficile à mettre en oeuvre (dans fichier tennis)

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

Re,

Surtout qu'il me faut à peu près 4 poules identiques de chaque !

En dupliquant les poules, je me suis aperçu que la saisie des noms était assez longue.
Aurais-tu une formule qui me permettrait d'automatiser cette tache? Exemple poule 8, noms de D6 : D13, les répartir selon, de D17: E14. J'ai du mal avec le placement des formules 1*Gauche et Droite !
merci une nouvelle fois.
 
Dernière édition:

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

Re,

J'ai parlé trop vite, j'ai fait ceci:
RECHERCHEV(1*GAUCHE($B17;1);$A$6:$D$13;4;FAUX)

RECHERCHEV(1*DROITE($B17;1);$A$6:$D$13;4;FAUX)

par contre, je n'ai pas trouvé, quand il n'y a pas de noms , j'aimerais autant que les cellules restent vides et non des "0" à la place.
merci

bonne soirée
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonsoir

Tu peux "effacer" les 0 avec une mise en forme conditionelle mettant ces valeurs en blanc, si ces 0 servent dans d'autres formules (ce qui me semble être le cas).

Où veux tu utiliser ces RECHERCHEV, STP, et pourquoi faire ?

Ne te précipites pas trop ! si tu veux, je peux peut être réfléchir pour mettre des noms ou des DECALER te facilitant le travail.

@ plus
 

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

Re,

En fait, en début de rencontre, je rentre les noms des joueurs de D63 : D70, j'ai mis des recherchev afin de remplir ces noms ds le tableau. Est-ce bien, ainsi fait ?
merci
 

Fichiers joints

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonsoir

Oui, c'est bon comme cela.
Ceci dit, il est mieux de ne pas travailler sur des cellules fusionnées. Tu aurais pu laisser les cellules A63, B63 et C63 séparément (de même pour celles en dessous), mettre les nombres dans la colonne B, et faire avec
RECHERCHEV(1*GAUCHE($B17;1);$B$63:$D$70;3;FAUX)
@ plus
 

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonjour Cisco,

Bon, très bien, tous les essais se sont bien déroulés. Aucune erreur ni désagrément. Je te remercie pour tout. Mais avant de clore ce fichier, qui va réellement servir, il me faut automatiser une tache, que je n'ai pu faire aboutir.
peux-tu regarder ?

J'ai une zone de validation de données, en "D" onglet "poule", pour la saisie des noms de joueurs.
Je souhaiterai qu'en "E" et "H" s'affichent respectivement le nom du club et le classement du joueur (notés ds l'onglet"Liste")
Je les ai inscrit à la main dans "Poule7", donc en "E" et "H".
Ensuite, il faudrait que les noms se classent automatiquement par rapport au classement du joueur, sans toucher au N° du joueur en "B" comme ceci.



Cette modif s'avère importante, car on passe beaucoup de temps à inscrire les noms et répartir par classement, surtout que le temps est compté lors des rencontres.
merci une nouvelle fois
bon wkend
 

Fichiers joints

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonsoir

Cf. une possibilité en pièce jointe.
Attention, j'ai dû utiliser une formule matricielle en E6, et comme les formules matricielles ne fonctionnent pas dans les cellules fusionnées..., j'ai défusionné.
En H6:H12, la formule ne prend en compte qu'au maximum 29 membres dans chaque club, dans les parties EQUIV(E6;Liste!A$1:L$1;0);30). Si il y en a plus, il faut modifier les 2 trentes, un au début, un à la fin, de cette formule.
Toujours en H, j'ai dû rajouter un +LIGNE()/100, juste pour départager les ex-aequo au niveau du classement, les deux 800 par exemple. L'affichage ne donnant pas les chiffres après la virgule, on ne voit pas ce rajout, on voit 800 alors que c'est 800,09. Ces valeurs sont réécrites en colonne S, dans l'ordre décroissant, grace à un GRANDE.VALEUR...
Ainsi, la formule en colonne P ne rapelle pas deux fois le même nom, puisque pour elle, il y a un 800,07 et un 800,09 en colonne S, et non deux 800.

@ plus

PS : Modification de la plage 06:O12 du fichier le 10/03.
 

Fichiers joints

Dernière édition:

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

bonjour, Cisco,

Cela est parfaitement conforme à la demande. Encore une fois une superbe interprétation. L' idéal serait d'éviter de sélectionner des joueurs d'un même club dans une même poule en partant des scores les plus élevés. La validation de données me permet-elle une sélection en fonction de plusieurs critères? Mais cela risque de se compliquer. Je vais essayer de voir au plus simple.
en attendant, un grand merci au maître des formules.
bonne nuit
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonjour

bonjour, Cisco,

L' idéal serait d'éviter de sélectionner des joueurs d'un même club dans une même poule en partant des scores les plus élevés. La validation de données me permet-elle une sélection en fonction de plusieurs critères?
C'est faisable en mettant des critères dans la définition de la liste déroulante de la colonne D, en prenant en compte les clubs déja sélectionnés dans les lignes précédentes. A voir.

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonjour

Comme dans ton exemple, il ni a que 6 clubs, comment fait on pour choisir 7 joueurs sans en prendre 2 dans le même club :) ? Est-ce que tu veux utiliser un critère particulier pour choisir ce second joueur ?

@ plus
 

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

bonjour Cisco,

Tout ce que tu as formulé m'enlève une grosse épine du pied! Donc toute cette partie, de calcul,répartition et classement est clos. En amont, il y a la répartition des joueurs dans un nombre de poules à déterminer.
Dans "Liste", tous les joueurs sont inscrits le jour des rencontres, le nombre de clubs peut varier, mais de tout façon, toute cette liste est effective, donc tous les joueurs sont comptés.
Il s'agit de répartir tous ces joueurs dans des poules, créer un tirage, qui dépend de deux critères:
1) éviter le plus possible que des joueurs du même club se trouvent ds la même poule (méthode dite du serpent).
2) dans chaque poule dont le nbre devra être déterminé au préalable, mettre le 1er de poule, celui qui a le plus grand nbre de points.
Ça parait compliqué au premier abord, beaucoup moins lorsque les étapes sont traités séparément.
Je regarde depuis un moment les différents sujets sur les tirages, j'aurai préféré éviter le vba.

Je peux détailler plus si tu veux
bonne journée
 

CISCO

XLDnaute Barbatruc

Fichiers joints

Dernière édition:

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

bonjour Cisco,

Je tiens une nouvelle fois à te remercier pour ton suivi et ton sens de l'entraide. C'est inespéré pour moi, je ne pensai pas allez aussi loin dans l'automatisation de ce fichier.
J 'explique ds le fichier joint comment je procède sur papier.
J'espère être clair.
A bientôt
 

Fichiers joints

Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre!

Bonsoir

Le début du travail en pièce jointe.

J'ai sur une nouvelle feuille, mis des tableaux donnant le nombre de concurrents nécessaires pour :
* x poules de 2 avec 1, 2 ou 3 poules de 3,
* ou x poules de 3 avec 1, 2 ou 3 poules de 2, ou 1, 2 ou 3 poules de 4
et ainsi de suite.
Si tu veux agrandir ces tableaux vers le haut ou vers le bas (pour avoir x poules de 2 avec 4 poules de 3 par exemple), c'est assez facile car il ni a qu'une formule dans chacun de ces tableaux, que l'on peut copier-coller vers le haut ou vers le bas, et vers la droite. J'ai mis une MFC mettant en évidence les cellules correspondant au nombre de concurrents. Si il y en a plusieurs sur la même ligne, seule la première sera prise en compte dans ce fichier.

Dans la feuille liste, en A17:E34, j'ai reporté les résultats obtenus grace aux tableaux précédents. Il faut choisir une combinaison possible en mettant un X dans la colonne choix.

En B36:U44, j'ai fait un tableau utilisant la méthode du serpent.
Dans un premier temps, j'ai essayé de faire comme toi, en plaçant dans le 1er tableau les concurrents au fur et à mesure, par ordre décroisssant de classement, sans tenir compte du club. Dans un second tableau, j'ai essayé de permuté certains concurrents pour ne pas avoir plusieurs membres d'un même club dans la même poule, mais je n'y suis pas arrivé avec une formule polyvalente, valable pour tout le tableau.

J'ai alors procédé comme suit : Toujours en procédant avec la méthode du serpent, j'affiche dans la cellule en cours le premier concurrent de la liste (des concurrents classés par ordre décroissant), pas encore choisi, et n'appartenant pas non plus aux clubs déja dans la poule (un second tableau, placé en dessous, nécessaire au premier, indique les clubs correspondants). Cela ne donne pas exactement le même résultat que toi, mais les règles sont respectées. Bien sûr, à un moment, il y a un problème car il ni a plus de membres répondant aux critères, pas encore sélectionnés et appartenant à un club non déja sélectionné dans la poule (la colonne).

Avant de continuer, j'aimerai bien que tu vérifies si c'est bien ce dont tu as besoin. Ensuite, il faudra modifier ces formules, avec quelques plages nommées et quelques DECALER, pour que ce fichier soit un peu plus polyvalent. En effet, pour le moment, il ne fonctionne que pour 9 clubs et 34 concurrents. J'espère aussi trouver quelques simplifications...

@ plus
 

Fichiers joints

Dernière édition:

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre!

bonjour Cisco,

Je me doutai que ce serait du boulot à mettre en oeuvre! Mais tu as respecté la demande, juste qu'en B40, dans "Liste", n'apparait pas le joueur N°34, peut-être parce qu'il ne respecte pas un des critères, alors comment forcer l'affichage ds ce cas.

En effet, pour le moment, il ne fonctionne que pour 9 clubs et 34 concurrents
Il peut y avoir par exemple 5 clubs et 64 joueurs ou 20 clubs et 48 joueurs. Sinon, on peut partir sur 15 clubs et 48 joueurs max pour mon usage.
Si j'avais la possibilité de sélectionner le nbre de clubs et de joueurs en début, ne serait-ce pas plus facile pour la suite?
merci pour cette nouvelle étape choc!
bon wkend
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre (dans fichier tennis)

Bonjour

La suite en pièce jointe, à vérifier bien sûr.
J'ai intercalé, entre autre, un tableau reprenant les valeurs du tableau en dessous, et acceptant plusieurs membres d'un même club dans une poule. Ces cellules sont mise en évidence avec des petits points rouges.

Dans le premier fichier "Organisationdespoules", j'ai laissé un exemple montrant que la méthode utilisée ne donne pas toujours le meilleur résultat : Ici, on ferait mieux de permuter le 36 et le 38, ainsi il ni aurait pas plusieurs membres d'un même cub dans la poule M.

Dans le second fichier "Organisationdespoules20clubs", j'ai modifié certaines formules et la taille des tableaux pour que cela fonctionne avec 20 clubs, 13 membres au maximum par club et 100 concurrents au maximum au total. J'espère ne rien avoir oublié.


Bien sûr, on peut encore affiner... A toi de tester et de me dire les modfications à faire.

@ plus

P.S : Je n'ai pas fini de mettre les MFC colorant les cellules en couleur en fonction du club du concurrent. Pour faire cela, il suffit de copier, dans la fenêtre des MFC, la formule, et de modifier la fin de celle-ci en fonction de la colonne juste en dessous du nom du club concerné. Ensuite, choisir une nouvelle couleur. Copier ensuite l'ensemble des plages concernées sur une autre ligne, et coller cela dans la ligne de la nouvelle MFC. Attention, comme il y a pas mal de plages séparées les unes des autres, Excel bugue un peu, et propose parfois d'autres plages. Il faut alors recommencer la dernière étape.
 

Fichiers joints

Dernière édition:

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre (dans fichier tennis)

bonjour Cisco,

J'ai bien analysé tout ce que tu as fait et t'en remercie. J'ai juste deux remarques.
1) Le tableau de B38:X45 me satisfait, mise à part que le joueur N°39 devrait se rapprocher de sa dizaine et non le mettre en fin, car il y a une différence de points non négligeable entre le 39 et le 59.
Je l'aurai permuté dans l'exemple joint, avec le N° 50.
Si ça complique trop les formules, on laisse en l'état.

2) Dans le tableau B17:F34, j'ai repris un autre exemple. La sélection est 4p de 7 (8 joueurs sont affichés!), il manque 3 joueurs donc cette poule est annulée . Par contre, 4 poule de 8 est bien dans combinaison mais elle n'est pas sélectionnée.
Qu'en penses-tu ?

merci encore
 

Fichiers joints

CISCO

XLDnaute Barbatruc
Re : Fonction Nb.si difficile à mettre en oeuvre (dans fichier tennis)

Bonjour

bonjour Cisco,

2) ...La sélection est 4p de 7 (8 joueurs sont affichés!), il manque 3 joueurs donc cette poule est annulée . Par contre, 4 poule de 8 est bien dans combinaison mais elle n'est pas sélectionnée.
Qu'en penses-tu ?

merci encore
En B62, il faut écrire
=SI(A62="";"";G$65)
(J'avai oublié de remplacer le $55 par $65, d'où le 7 affiché au lieu du 8), et tirer cette formule vers le bas.

Je regarde pour l'autre "problème".

@ plus
 
Dernière édition:

aredo

XLDnaute Occasionnel
Re : Fonction Nb.si difficile à mettre en oeuvre (dans fichier tennis)

bonjour Cisco

Bien pour la gestion des poules, après plusieurs exemples, ça se passe plutôt bien.
Quand à la répartition des joueurs dans les poules, on est proche de la réalité puisque par exemple, en prenant 38 joueurs répartis à peu près équitablement ds les clubs, la répartition est bonne. Le problème apparaît donc lorsque les poules sont déséquilibrées.

merci
 

Haut Bas