> Tous les forums > Forum Bureautique
 Formule complexe à trouver
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
poustiquet1
  Posté le 14/02/2019 @ 00:37 
Aller en bas de la page 
Petit astucien

Bonjour les matheux,

Sans utiliser de macros je cherche la solution pour reporter dans la colonne équipe à droite le numéro de l'équipe gagnante de la première colonne (celle qui a 13 points) de façon à confronter les équipes gagnantes entre elles et les perdantes entre elles aussi. Sur exemple la 34 rencontrera la 67, la 56 contre la 48. Le problème est le décalage des cellules donc la recopie de cellules donne des résultats erronnés. Sachant qu'il y a 4 reports vers la droite et 150 lignes. Manuellement c'est possible mais fastidieux et les erreurs sont fatales.

Merci de vous pencher sur ce problème. J'ai essayé avec une macro mais il semblerait que Libreoffice soit capricieux avec les filtres !!!

Publicité
Debrief
 Posté le 14/02/2019 à 10:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Ce serait plus facile avec un fichier quoique je n'ai pas Libreoffice donc je ne peux donner la formule que pour Excel en espérant pour toi qu'elle soit applicable sous ton tableur.

A = colonne Équipes (à faire évoluer au fur et à mesure des tours)
E = colonne Gagnant (à faire évoluer au fur et à mesure des tours)
C = colonne Score du gagnant (à faire évoluer au fur et à mesure des tours)

Suppose qu'il n'y ait pas d'égalité !

=SI(INDIRECT("A" & (LIGNE() - 1) * 2) <>"";SI(INDIRECT("E" & (LIGNE() - 1) * 2) <>"";INDIRECT("A" & (LIGNE() - 1) * 2);INDIRECT("A" & (LIGNE() - 1) * 2 + 1));"")

ou encore (si on se débarrasse des colonnes Gagnant & Perdant)
=SI(INDIRECT("A" & (LIGNE() - 1) * 2) <>"";SI(INDIRECT("C" & (LIGNE() - 1) * 2) <>"";INDIRECT("A" & (LIGNE() - 1) * 2);INDIRECT("A" & (LIGNE() - 1) * 2 + 1));"")

Les colonnes Gagnant, Perdant sont inutiles, de même que le placement du score dans des colonnes différentes. Une MFC suffirait à visualiser le gagnant si nécessaire.

=SI(INDIRECT("A" & (LIGNE() - 1) * 2) <>"";SI(INDIRECT("C" & (LIGNE() - 1) * 2) >INDIRECT("C" & (LIGNE() - 1) * 2 + 1);INDIRECT("A" & (LIGNE() - 1) * 2);INDIRECT("A" & (LIGNE() - 1) * 2 + 1));"")

Cordialement,
D.

Edit: si la fonction INDIRECT n'existe pas en Libre Office et si la fonction DECALER existe il suffit dans les formules de transformer INDIRECT("A" & x) -> DECALER($A:$A;x;0;1;1).
Même si plus difficile à lire c'est plus souple car les éléments entre quottes de l'INDIRECT ne sont pas sujets à ajustement automatique par Excel en cas d'ajout / suppression de ligne / colonne.



Modifié par Debrief le 14/02/2019 11:00
DjiDji59430
 Posté le 14/02/2019 à 11:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

essaye en H2

{=SIERREUR(INDEX($F$21:$F$21;PETITE.VALEUR( SI($F$21:$F$21>0;LIGNE($F$21:$F$21)-1);LIGNES($1:1)));"")}

C'est une formule matricielle, donc a valider par
Maj+Ctrl+Entrée (les 3 doigts en même temps) pour faire apparaitre les accolades


Crdlmt

Braxton
 Posté le 15/02/2019 à 08:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour



Modifié par Braxton le 15/02/2019 08:29
poustiquet1
 Posté le 15/02/2019 à 09:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour Debrief,

Merci de donner la solution à mon problème. Actuellement en déplacement je ne pourrai tester que la semaine prochaine.

Les colonnes score et colonnes perdant, gagnant me sont utiles pour calculer le goal average si nécessaire en cas d'ex aequo.

Merci également à DjiDji et Braxton pour les réactivité.

A suivre.... et bon week-end

Debrief
 Posté le 15/02/2019 à 13:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Puisque j'avais oublié la colonne verte E, si on suppose que tous les tours ont le même nombre de colonnes (7), je te donne une 1ère formule à placer en H2 et à recopier partout pour tous les tours dans les colonnes Equipes,
1ère formule donnée principalement pour illustrer la construction de la 2ème formule plus "dense" dans sa formulation:

=SI(DECALER(H2;LIGNE()-2;-7;1;1)<>"";SI(DECALER(H2;LIGNE()-2;-2;1;1) <>"";DECALER(H2;LIGNE()-2;-7;1;1);DECALER(H2;LIGNE()-2+1;-7;1;1));"")

Le plus simple est d'utiliser cette 2ème formule invariable qui passe partout sans avoir à être d'abord copiée en H2 puis recopiée; il suffit de remplacer H2 par INDIRECT(ADRESSE(LIGNE();COLONNE())) dans la 1ère formule:

=SI(DECALER(INDIRECT(ADRESSE(LIGNE();COLONNE()));LIGNE()-2;-7;1;1)<>"";SI(DECALER(INDIRECT(ADRESSE(LIGNE();COLONNE()));LIGNE()-2;-2;1;1) <>"";DECALER(INDIRECT(ADRESSE(LIGNE();COLONNE()));LIGNE()-2;-7;1;1);DECALER(INDIRECT(ADRESSE(LIGNE();COLONNE()));LIGNE()-2+1;-7;1;1));"")

Cordialement,
D.

Edit: A noter que le "2" de "LIGNE()-2" dans la formule représente la 1ère ligne qui contient une valeur des Equipes. Si tu devais ajouter une ligne titre il faudrait remplacer "LIGNE()-2" par "LIGNE()-3".



Modifié par Debrief le 15/02/2019 13:52
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Formule pour trouver des dates selon le jour ?
[Présenter une formule complexe]
Formule complexe.
formule pour trouver le nbre de jrs du mois
Excel 2003 - Problème avec une formule complexe
formule pour trouver la valeur de X.
Excel : trouver une [bonne] formule !
formule très complexe
Formule complexe excel
formule pour trouver une valeur proche ??
Plus de sujets relatifs à Formule complexe à trouver
 > Tous les forums > Forum Bureautique