Incrémenter une série avec retour à zéro

Bonjour,

Je suis en train d'essayer de programmer un fichier excel capable de calculer des scores pour un concours de belote.

La formule qui me manque sert à incrémenter une liste de chiffre pour définir l'ordre des parties à jouer.

En fait on part d'un nombre pair d'équipes, par exemple 8. Ces équipes sont réparties en deux groupes, les lettres et les chiffres.

Ensuite on fait quatre parties. Au premier tour l'équipe A rencontre l'équipe 1, l'équipe B rencontre la 2 et ainsi de suite. Puis au tour deux on décale d'un chiffre, la A rencontre la 2, la B la 3...

Ce que je cherche c'est une formule qui me permet de générer cette liste de chiffres pour chaque tour :

Tour 1 Tour 2 Tour 3 Tour 4

A>1 A>2 A>3 A>4

B>2 B>3 B>4 B>1

C>3 C>4 C>1 C>2

D>4 D>1 D>2 D>3

Et surtout il me faudrait une formule qui ne soit pas sensible au nombre d'équipe engagées, car dans le tournoi que j'organise je peux avoir entre 8 et 40 équipes...

Donc en résumé il me faut une formule qui me génère la liste de chiffres pour le tour 2, 3 et 4 à partir du tour 1 et en fonction du nombre d'équipes inscrites (qui est toujours pair).

Est-ce que quelqu'un a une idée ? Est-ce que je suis clair ? C'est pas évident à expliquer...

Merci d'avance de votre aide

Bonjour,

Une tentative dans le fichier ci-joint.

58oberon03.zip (2.39 Ko)

Merci Raja, c'est un début.

Mais malheureusement la formule que tu me proposes ne pourra pas marcher avec un nombre d'équipes différent.

En fait il me faut une formule qui marche tout le temps, car je ne connais le nombre d'équipes engagées qu'au dernier moment...

Mais en tout cas c'est gentil d'essayer ;o)

Bonjour et bienvenue,

une solution avec des formules excel

bonjour Raja !

67tableau-belote.xlsx (11.28 Ko)

Merci h2so4, ça a l'air de marcher au moins jusqu'à 40 équipes (qui est le maximum que j'aurai).

Par contre peux-tu m'expliquer les formules que tu as utilisées, j'y comprends rien...

Histoire que je puisse les intégrer dans le tableau que j'ai attaqué.

le tableau se contruit dynamiquement sur base du nombre d'équipes introduit en C1

en ligne 2, il y a une formule pour numéroter les équipes du groupe "numérique" tant que le numéro de la colonne est <= à la moitié du nombre d'équipes. cette formule est copiée sur 20 colonnes

la fonction COLONNE() renvoie le numéro de la colonne de la cellule donnée en paramètre, si rien n'est précisé, c'est la cellule dans laquelle se trouve la formule qui est prise en compte.

=SI(COLONNE()<=$C$1/2;COLONNE();"")

en ligne 3, il y une formule pour nommer les équipes du groupe "alphabétique" tant que le numéro de la colonne est <= à la moitié du nombre d'équipes. cette formule est copiée sur 20 colonnes

=SI(COLONNE()<=$C$1/2;CAR(COLONNE()+64);"")

en ligne 5, il y a une formule pour mettre l'entête des différents tours, tant qu'il y a une équipe dans colonne correspondante sur la ligne 2. cette formule est copiée sur 20 colonnes.

=SI(A2<>"";" Tour " & COLONNE();"")

en ligne 6, il y a une formule pour générer la rencontre en fonction du tour et de l'équipe. cette formule est copiée sur 20 colonnes et tirée vers le bas sur 20 lignes.

=SI(A$5<>"";SI(INDIRECT(CAR(LIGNE()-5+64) & "3")<>""; INDIRECT(CAR(LIGNE()-5+64) & "3") & ">" & MOD(COLONNE()-7+LIGNE(),$C$1/2)+1;"");"")

la formule ce décompose en

si l'entête de colonne n'est pas vide, on vérifie si on doit afficher la ligne

=SI(A$5<>"";on vérifie la ligne, si ok on 'affiche le match;"");"")

formule on vérifie si on doit afficher la ligne

;SI(INDIRECT(CAR(LIGNE()-5+64) & "3")<>""; on affiche le match;"")

pour vérifier si on doit afficher la ligne, on vérifie qu'il y a bien un nom d'équipe pour la ligne sur la quelle on se trouve

si je suis en ligne 6 prendre A3, e, ligne 7 prendre B3, en ligne 8, C3, etc....

ligne()-5 : donne 1 si la formule est sur la ligne 6, 2 sur la ligne 7 etc ...

ligne()-5+64: donne 65 si la formule est sur la ligne 6, 66 sur la ligne 7 etc ...

car(ligne()-5+64) donne A si la formule est sur la ligne 6, B sur la ligne 7, etc ...

car(ligne()-5+64) & 3 donne A3 si etc ... B3 si etc ...

indirect(car(ligne()-5+64) & 3) donne le contenu de A3 si etc .. de B3 si etc ...

si(indirect(car(ligne()-5+64) & 3))<>""; si le contenu de A3 <>"", b3 ....

formule on affiche le match

INDIRECT(CAR(LIGNE()-5+64) & "3") & ">" & MOD(COLONNE()-7+LIGNE(),$C$1/2)+1

on concatène 3 éléments

nom de l'équipe alphabétique & ">" & nom de l'équipe numérique en fonction de la ligne et de la colonne dans laquelle se trouve la formule

INDIRECT(CAR(LIGNE()-5+64) & "3") pour explication voir ci-dessus

MOD(COLONNE()-7+LIGNE(),$C$1/2)+1

colonne()-7 donne -6 si le numéro de colonne est 1, -5 si 2 etc ...

colonne()-7+ligne() donne 0 si le numéro de ligne est 6, 1 si 7 etc ...

$c$1/2 donne le nombre d'équipes par groupe

MOD(COLONNE()-7+LIGNE(),$C$1/2) donne le reste de la division de COLONNE()-7+LIGNE() par $C$1, si colonne est 1 si ligne est 6 et $c$1 vaut 8 MOD(0,4) donne 0, si colonne est 2 et ligne est 6 MOD(1,4) donne 1, etc ...

MOD(COLONNE()-7+LIGNE(),$C$1/2)+1, enfin on rajoute 1 pour avoir une valeur de 1 à $c$1/2 au lieu de 0 à ($c$1/2)-1

les formules ont été conçues pour pouvoir être copiées vers le bas et vers la droite sans changement. Il y a moyen de faire beaucoup plus simple (mais plus long à taper) en introduisant manuellement une formule par cellule.

j'espère avoir un peu éclairci ces formules

Merci pour la leçon d'excel, c'est super bien expliqué ;o))

Je vais pouvoir utiliser ça dans mon propre tableau qui est un peu plus complexe car je dois intégrer des cases pour rentrer le score de chaque équipe à chaque tour, le nom des joueurs...

Mais au moins je sais comment faire.

Encore merci

Pour info, quelle formule pourrait faire plus simplement ça ? Même s'il faut la réécrire manuellement dans chaque case ?

Et j'abuse, mais si je voulais obtenir le même résultat mais en séparant les matchs en deux cases, par exemple ça afficherait les équipes lettres en colonne A et les équipes chiffres en colonne B pour le tour 1, puis les lettres en colonne C et les chiffres en colonne D pour le tour 2 et ainsi de suite... au lieu de tout dans la même case ?

Bonjour,

une version simplifiiée

63tableau-belote.xlsx (15.95 Ko)

Trop fort merci h2so4.

Comment tu fais pour connaître toutes ces fonctionnalités ?

En tout cas ça marche super ! Merci

Rechercher des sujets similaires à "incrementer serie retour zero"