Sauf

Mariesurexcel

XLDnaute Nouveau
Bonjour à tous!

Voici ma formule actuelle qui fonctionne. Mais j'ai besoin d'y imbriquer un sauf si, sauf que je n'y arrive pas...

Formule actuelle:
SI(ESTERREUR(MOYENNE(SI(OU((GAUCHE(Data2011!$A$2:$A$65536;3)='LOS by Rate Code by Month'!$A32);(GAUCHE(Data2011!$A$2:$A$65536;2)='LOS by Rate Code by Month'!$A33))*(MOIS(Data2011!$C$2:$C$65536)=3);Data2011!$F$2:$F$65536)));"0";(MOYENNE(SI(OU((GAUCHE(Data2011!$A$2:$A$65536;3)='LOS by Rate Code by Month'!$A32);(GAUCHE(Data2011!$A$2:$A$65536;2)='LOS by Rate Code by Month'!$A33))*(MOIS(Data2011!$C$2:$C$65536)=3);Data2011!$F$2:$F$65536))))

Besoin de rajouter après les formules GAUCHE un sauf si "TOTN", donc en gros:
OU((GAUCHE(Data2011!$A$2:$A$65536;3)='LOS by Rate Code by Month'!$A32);(GAUCHE(Data2011!$A$2:$A$65536;2)='LOS by Rate Code by Month'!$A33)); SAUF SI Data2011!$A$2:$A$65536 = "TOTN"

Et donc je ne sais pas comment modifier ma formule pour que ça fonctionne...


Merci beaucoup d'avance pour votre aide!
Marie
 

Misange

XLDnaute Barbatruc
Re : Sauf

Bonjour

Sans analyser en détail ta formule (surtout sans fichier exemple), le principe pour sauf c'est
si(trucmuche<>machin.valeur si différent;valeur si égal)
si tu dois ajouter ce test à un autre tu les mets dans un même si(et(truc<>machin; bidule);valeur si vrai;valeur si faux)
 

job75

XLDnaute Barbatruc
Re : Sauf

Bonjour Mariesurexcel, salut Misange :)

Il faut une formule matricielle, validée par Ctrl+Maj+Entrée :

Code:
=SI(ESTERREUR(MOYENNE(SI((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)=LOSbyRateCodebyMonth!$A32)+(GAUCHE(Data2011!$A$2:$A$1000;2)=LOSbyRateCodebyMonth!$A33))*(MOIS(Data2011!$C$2:$C$1000)=3);Data2011!$F$2:$F$1000)));0;MOYENNE(SI((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)=LOSbyRateCodebyMonth!$A32)+(GAUCHE(Data2011!$A$2:$A$1000;2)=LOSbyRateCodebyMonth!$A33))*(MOIS(Data2011!$C$2:$C$1000)=3);Data2011!$F$2:$F$1000)))
J'ai limité les plages à la ligne 1000, car 65536 c'est trop lourd :cool:

Bien entendu la formule ne doit pas se trouver en colonnes A, C ou F de la feuille Data2011.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Sauf

Re,

Pardon, en nettoyant votre formule j'avais enlevé les espaces sur LOS by Rate Code by Month :

Code:
=SI(ESTERREUR(MOYENNE(SI((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)='LOS by Rate Code by Month'!$A32)+(GAUCHE(Data2011!$A$2:$A$1000;2)='LOS by Rate Code by Month'!$A33))*(MOIS(Data2011!$C$2:$C$1000)=3);Data2011!$F$2:$F$1000)));0;MOYENNE(SI((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)='LOS by Rate Code by Month'!$A32)+(GAUCHE(Data2011!$A$2:$A$1000;2)='LOS by Rate Code by Month'!$A33))*(MOIS(Data2011!$C$2:$C$1000)=3);Data2011!$F$2:$F$1000)))
A+
 

job75

XLDnaute Barbatruc
Re : Sauf

Bonjour R@chid :) le fil,

On peut en effet alléger la formule.

1) S'il n'y a pas de valeurs d'erreurs dans les données, avec SOMMEPROD :

Code:
=SI(SOMMEPROD((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)='LOS by Rate Code by Month'!$A32)+(GAUCHE(Data2011!$A$2:$A$1000;2)='LOS by Rate Code by Month'!$A33))*(MOIS(Data2011!$C$2:$C$1000)=3));MOYENNE(SI((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)='LOS by Rate Code by Month'!$A32)+(GAUCHE(Data2011!$A$2:$A$1000;2)='LOS by Rate Code by Month'!$A33))*(MOIS(Data2011!$C$2:$C$1000)=3);Data2011!$F$2:$F$1000));0)
2) En créant le nom défini Formule avec :

Code:
=MOYENNE(SI((Data2011!$A$2:$A$1000<>"TOTN" )*((GAUCHE(Data2011!$A$2:$A$1000;3)='LOS by Rate Code by Month'!$A$32)+(GAUCHE(Data2011!$A$2:$A$1000;2)='LOS by Rate Code by Month'!$A$33))*(MOIS(Data2011!$C$2:$C$1000)=3);Data2011!$F$2:$F$1000))
la formule s'écrit alors :

Code:
=SI(ESTERREUR(Formule);0;Formule)
et la validation matricielle n'est plus nécessaire.

A+
 

Discussions similaires

Réponses
22
Affichages
1 K

Statistiques des forums

Discussions
314 450
Messages
2 109 721
Membres
110 551
dernier inscrit
Khyolyanna