Aide pour une formule (Résolue)

Bonjour, j'ai la formule suivant en matriciel.

=SI(LIGNES($1:1)<=SOMMEPROD((DataOffence!$B$2:$B$250="J")*(DataOffence!$E$2:$E$250>50));INDEX(DataOffence!$C$2:$C$250;EQUIV(GRANDE.VALEUR(SI((DataOffence!$B$2:$B$250="J")*(DataOffence!$E$2:$E$250>50);DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10);LIGNE(INDIRECT(LIGNE()-8&":"&LIGNES(DataOffence!$C$2:$C$250))));DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10;0));"")

Elle fonctionne très bien. Mais je voudrais lui ajouter une condition.

La condition est, si l'info dans la colonne X de la feuille DataOffence = "JB"

Quelqu'un peu m'aider.

Bonjour,

Wild a écrit :

...Quelqu'un peu m'aider...

Sans aucun doute.

Mais une formule comme la tienne, livrée sans le fichier qui va avec, est difficilement compréhensible.

Donc un extrait (anonymisé) de ton fichier serait le bienvenu.

A te (re)lire avec ce fichier

@+

Voila j'ai joins le fichier, et je me suis trompé de colonne que je veux ma condition.

Donc, je veux, dans la cellule C9 de l'onglet, formation avoir cette formule

=SI(LIGNES($1:1)<=SOMMEPROD((DataOffence!$B$2:$B$250="J")*(DataOffence!$E$2:$E$250>50));INDEX(DataOffence!$C$2:$C$250;EQUIV(GRANDE.VALEUR(SI((DataOffence!$B$2:$B$250="J")*(DataOffence!$E$2:$E$250>50);DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10);LIGNE(INDIRECT(LIGNE()-8&":"&LIGNES(DataOffence!$C$2:$C$250))));DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10;0));"")

elle marche très bien.

Mais je veux ajouter comme condition principal

Si l'information de la ligne dans la colonne Z sous l'ongle DataOffence = JB

re,

Le fichier n'est pas passé.

Pas besoin de joindre le fichier complet, un extrait devrait suffire.

Le cas échéant, n'hésite pas à le zipper

A te (re)lire

@+

Ok, je réessaie pour le fichier.

Par extrait, je sais pas trop ce que tu veux dire.

25stats-saison-2011.zip (175.46 Ko)

re,

On peut ajouter ceci dans ta formule :

*(DataOffence!$Z$2:$Z$250="JB")

qui permet d'ajouter la condition souhaitée.

Ca donne ceci dans la formule en C9 :

=SI(LIGNES($1:1)<=SOMMEPROD((DataOffence!$B$2:$B$250="J")*(DataOffence!$E$2:$E$250>50)*(DataOffence!$Z$2:$Z$250="JB"));INDEX(DataOffence!$C$2:$C$250;EQUIV(GRANDE.VALEUR(SI((DataOffence!$B$2:$B$250="J")*(DataOffence!$Z$2:$Z$250="JB")*(DataOffence!$E$2:$E$250>50);DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10);LIGNE(INDIRECT(LIGNE()-8&":"&LIGNES(DataOffence!$C$2:$C$250))));DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10;0));"")

Je te laisse tester

Si pas ça, reviens en nous indiquant manuellement le résultat attendu.

@+

Sa fonctionne, je recois la bonne valeur

Dans ma formule j'ai deux fois cette demande

(DataOffence!$E$2:$E$250>50)

Si je mets un 0, se qui devrait pouvoir sa faire, sa m'indique #Valeur!

re,

Wild a écrit :

Si je mets un 0, se qui devrait pouvoir sa faire, sa m'indique #Valeur!

Pas compris où tu mettais 0 et où tu obtenais #VALEUR!

Peux-tu être plus précis ?

En nous indiquant notamment ce que tu souhaites obtenir (avec une petite explication sur le pourquoi du comment)

@+

Ok, ma formule vas chercher dans l'onglet DataOffence le joueur ayant le meilleur résultat dans la colonne AB du même onglet. Mais faut que dans la cellule E , la statisque inscrite la soit plus grande que 50, et que l'info dans la colonne Z soit = à JB. Mais je dois pouvoir la mettre à 0. La formule vérifie également dans la colonne B si il se trouve la lettre J pour joueur. La formule que tu m'as donner fonctionne tres bien.

=SI(LIGNES($1:1)<=SOMMEPROD((DataOffence!$B$2:$B$250="J")*(DataOffence!$E$2:$E$250>50)*(DataOffence!$Z$2:$Z$250="JB"));INDEX(DataOffence!$C$2:$C$250;EQUIV(GRANDE.VALEUR(SI((DataOffence!$B$2:$B$250="J")*(DataOffence!$Z$2:$Z$250="JB")*(DataOffence!$E$2:$E$250>50);DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10);LIGNE(INDIRECT(LIGNE()-8&":"&LIGNES(DataOffence!$C$2:$C$250))));DataOffence!$AA$2:$AA$250-LIGNE(DataOffence!$AA$2:$AA$250)/10^10;0));"")

À l'endroit que c'est inscrit en bleu, je veux pouvoir mettre un 0 à place du 50.

re,

Petit détail : les données de la colonne E sont toutes numériques et toutes supérieures ou égales à 0. Le test

*(DataOffence!$E$2:$E$104>=0)

pourrait donc être supprimé.

Pour ce qui est de ton message d'erreur, après quelques recherches, j'ai compris d'où venait ton #VALEUR!

Ta formule fait un calcul avec les données de la colonne AA :

DataOffence!$AA$2:$AA$104-LIGNE(DataOffence!$AA$2:$AA$104)

Cette colonne contient une moyenne ou une chaîne vide. Or c'est cette chaîne vide qui empêche le calcul.

Ta première formule (avec test > 50) permettait d'éviter la prise en compte de la ligne 28 (0 en colonne E, JB en colonne Z et "" en colonne AA)

La (une) solution pourrait être celle-ci :

en AA2, remplacer la chaîne vide "" par un 0 :

=SI(OU(C2="";G2=0);0;G2/F2)

à recopier vers le bas

Le 0 peut ensuite être masqué avec un format personnalisé par exemple.

Je te laisse regarder

@+

Merci, j'y suis parvenue.

Rechercher des sujets similaires à "aide formule resolue"