Prise en compte condition de cellules dans formule moyenne

Résolu/Fermé
Signaler
-
 Bastien M. -
Bonjour à tous,


je souhaiterais savoir comment ne pas prendre en compte des cellules dans une formule si celles-ci sont vide sous EXCEL 2013.


Je m'explique :


Le calcul de moyenne avec des notes coefficientées se fait comme cela :
A1 = (B1*C1 + B2*C2 + B3*C3 + B4*C4) / SOMME(C1:C4)


Or, si on laisse vide des cellules parce que toutes les notes ne sont pas encore rentré, la moyenne chute considérablement


Voici la solution que j'ai trouvé pour une moyenne de deux notes coefficientées :


A10 = SI(ET(B10<>"";B11<>"");B10*C10+B11*C11)/(C10+C11);SI(ET(B10<>"";B11="");B10;SI(ET(B10="";B11<>"");B11;"")))

PS : les B11="" peuvent être remplacé par ESTVIDE(B11), mais là n'est pas la question.


En français ça donne :
### Premier cas, les deux notes sont renseignées (les deux cases sont différentes de vide), alors on calcul la moyenne normalement (B10*C10+B11*C11)/(C10+C11).
### Deuxième cas, la deuxième note B11 n'est pas renseigné ET la première B10 l'est, alors la moyenne est B10 (B10*C10 / C10 = B10, j'ai raccourcis le calcul)
### Troisième cas, et c'est l'inverse du deuxième, la première note n'est pas renseigné ET la deuxième l'est, alors la moyenne est B11.


Cette fonction marche super bien, elle fait exactement ce que je désire faire.
Le problème est que je dois faire une moyenne avec 4 notes coefficientées, et donc j'ai une dizaines de cas possible... J'ai pas trop envie de me taper la fonction des 10 cas...


Je souhaiterai donc savoir si quelqu'un avait une solution à m'apporter.


Je vous remercie tous par avance.


Bastien M.


PS2 : Désolé pour les sauts de lignes imposants, c'est le seul moyen que j'ai trouvé de vous aérer mon texte puisque CCM ne garde pas la mise en forme originale.

1 réponse

Messages postés
58
Date d'inscription
jeudi 6 juin 2013
Statut
Membre
Dernière intervention
19 juin 2013
3
Bonjour,

Le plus simple serait de créer des colonnes de calcul préalable:

D1: =B1*C1
D2: =B2*C2
D3: =B3*C3
D4: =B4*C4

E1: =somme.si(B1:B4;"<>0";C1:C4)

A1: =somme(D1:D4)/E1



En gros, en E1, il va uniquement prendre les coef ou les notes sont renseignées, enlevant tous problèmes de coef en trop

Il n'y a plus qu'a masquer les colonnes D et E. Normalement ça devrait fonctionner.
Nouveau problème :
si aucune des notes n'est renseigné, alors la cellule affiche l'erreur de DIV/0.

MA solution :
Faire un test conditionnel, si le somme.si = 0, alors on affiche rien, sinon, on affiche le résultat de la formule originale...
Messages postés
58
Date d'inscription
jeudi 6 juin 2013
Statut
Membre
Dernière intervention
19 juin 2013
3
Dans ce cas repartons sur ma première idée :

D1: =si(ESTVIDE(B1);"";C1)
D2: =si(ESTVIDE(B2);"";C2)
D3: =si(ESTVIDE(B3);"";C3)
D4: =si(ESTVIDE(B4);"";C4)

A1: =(B1*C1+B2*C2+B3*C3+B4*C4)/SOMME(D1:D4)


Autre solution, c'est ma seconde formule, en mettant 0 comme note quand pas encore saisie
SI(SOMME.SI(E6:E7;"<>";F6:F7)=0;"";(E6*F6+E7*F7)/SOMME.SI(E6:E7;"<>";F6:F7))
Messages postés
58
Date d'inscription
jeudi 6 juin 2013
Statut
Membre
Dernière intervention
19 juin 2013
3
Je viens de comprendre (j'ai mis du temps ^^) le problème, je ne l'avais pas pris en compte a l'origine (le cas ou il y a 0 notes)

tu a plus simple avec:

A1: =SI(ESTVIDE(B1:B4);"";(B1*C1+B2*C2+B3*C3+B4*C4)/somme.si(B1:B4;"<>";C1:C4))

niveau du code c'est moins lourd, et plus facile a relire, mais au final ça fera la même chose ^^
Ha oui, j'oublie tout le temps cette fonction ESTVIDE(), merci :)