Rapport de message :*
 

Re: modification de formule

Titre du sujet : Re: modification de formule
par JeanMarie le 17/05/2009 20:32:54

Bonsoir le Forum

Jad, pour répondre à ta question la formule ci-dessous te permettra de supprimer les autres formules.
=SI(SOMMEPROD((S$2:S$57>4)*(S$2:S$57<9))>=LIGNE(A1);INDEX($A$2:$P$78;PETITE.VALEUR(SI((S$2:S$57>4)*(S$2:S$57<9);LIGNE(S$2:S$57);65536);LIGNE(A1));0);"")
Cette formule matricielle est validée par les touches Ctrl+Shift+Entrée.

Tu remarqueras que j'ai supprimé la fonction Colonne() de ta formule de départ.
Cette formule retourne toutes les données de la ligne (32, 41,50) en une seule fois.
Pour permettre l'affichage de toutes ces valeurs, il y a une mise en oeuvre particulière. Avant de saisir la formule dans la zone de la barre d'outils "formule", il faut sélectionner la plage de cellules AD2:AS2, saisir et valider par les touches Ctrl+Shift+Entrer.

Pour expliquer un petit peu la formule, la partie SOMMEPROD((S$2:S$57>4)*(S$2:S$57<9))>=LIGNE(A1)est une gestion d'erreur, elle permet d'éviter l'erreur #NOMBRE quand les lignes correspondantes aux critères (>4;<9) sont toutes affichées. La partie PETITE.VALEUR(SI((S$2:S$57>4)*(S$2:S$57<9);LIGNE(S$2:S$57);65536);LIGNE(A1) retourne la ligne à afficher.

Pour les autres formules :
- La formule de déclaration du nom "tableau" peut être remplacer par  : 
=DECALER(Feuil1!$A$2:$Q$2;;;NB(Feuil1!$A:$A))
je remplace =NBVAL(Feuil1!$A:$A)-1 par NB(Feuil1!$A:$A)

- la fonction NB.SI de la formule est à remplacer par la formule
=FREQUENCE(Tableau;U2:U66)
principe de mise en oeuvre de cette formule, avant de la saisir on sélectionne la plage de cellules V2:V66, on saisi la formule, et on valide par Ctrl+Shift+entrer.
elle a l'avantage d'être moins gourmande en ressource.

- dans ta formule en colonne S, tu testes "est différent" d'une chaîne concaténée de 8 valeurs et ta constante est de 5 caractères, il me semble que c'est une erreur.
$A2&"#"&$B2&"#"&$C2&"#"&$D2&"#"&$E2&"#"&F2&"#"&G2&"#"&H2<>"#####"

- pour la formule de la colonne Y, tu n'as pas besoin d'autant de critères. ColS>4 doit suffir
=SOMME(SI((Tableau=X2)*(ColS>4);ColS;0))

- pour t'éviter la concaténation de la formule de la colonne S, je regarde pour te proposer une alternative. 

Jad si cette réponse te donne satisfaction, indique le préfixe du sujet sur résolu.

@+Jean-Marie