Formule avec erreur #DIV/0! [Résolu/Fermé]

Signaler
-
 hélios -
Bonjour,

J'ai une formule qui fait la somme d'une plage de donnée et la divise par le nombre de cellule pour avoir une moyenne. Sauf que il s'avère que pour certaine cellule j'aurai le #DIV/0! mais j'aimerai quand même faire la moyenne des données restantes sans prendre en compte la cellule avec le #DIV/0!.

voila ma formule : =(H27+H28+H29+H30)/4

J'ai mis le esterreur mais ca ne me donne pas la bonne moyenne :

=((ESTERREUR(G27+G28+G29+G30))/4)

Si quelqu'un à une idée ?

Merci beaucoup.

6 réponses

Messages postés
9529
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
12 août 2020
1 878
bonjour
je mettrais plutôt le ESTERREUR dans la cellule qui contient la formule où apparait l'erreur
ex si H28 peut produire une erreur
H28=SI(ESTERREUR(C1/C2);"";C1/C2)
le calcul (=MOYENNE(H28:H30)) ne pose alors plus de pb
bonne suite
Messages postés
16175
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 août 2020
3 002
bonjour

ccm81 propose la solution la + sage si pas possible
=MOYENNE(SI(ESTNUM(C1:C4);(C1:C4)))

Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}

avec 2007, voir si on ne peut pas utiliser "moyenne.si"
Re,

Je vais suivre ton raisonnement mais si je dois faire la modification sur la cellule qui provoque l'erreur. Mais la formule est :

((T58/V58)*20) qui n'ayant pas renseigné ces cellules m'affiche 0.

Comment l'adapter avec esterreur ?

Merci de ton aide
Je l'ai fait pour toute les formules qui font référence à une cellule vide et n'indique maintenant rien quand y'a 0.

Mais je fait référence à ces cellules dans la formule : ((T58/V58)*20) et il m'affiche toujours l'erreur.

j'ai tenté avec ça : =SI((NB(T58/V58)*20);"") et il m'indique faux quand y'a des vides mais dès lors qu'il y a des chiffre il n'affiche plus rien.

Sais tu pour quoi ?
Messages postés
25213
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 août 2020
5 399
Bonsoir
s'il s'agit de #DIV0 voyez avec ça:

=SI(V58=0;"";T58/V58*20)

les parenthèses encadrant T58/V58 ne semblent pas utiles?
crdlmnt
Messages postés
9529
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
12 août 2020
1 878
re

si le nombre de cellules renseignées de la liste T58;V58 est égal à 2 alors on calcule sinon rien
ce qui donne
=SI(NB(T58;V58)=2;T58/V58*20;"")

bonne suite
Messages postés
9529
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
12 août 2020
1 878
il faut d'abord préciser ce que tu veux
option1. si tu veux que le résultat apparaisse lorsque TOUTES les cellules de la formule sont renseignées, c'est ce que je t'ai proposé
option2. si tu veux SEULEMENT eviter les #DIV0, il te suffit de tester les dénominateurs de tes formules comme Vaucluse propose
un inconvénient, si un non-numérateur n'est pas renseigné, il va le remplacer par 0 dans ton calcul, et le résultat obtenu avec ce 0 sera pris en compte dans ta moyenne
Messages postés
25213
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 août 2020
5 399
Salut CCM
je crois que si un numérateur n'est pas renseigné alors que le diviseur l'est, le 0 devrait logiquement être pris en compte:
crdlmnt
Messages postés
16175
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 août 2020
3 002
Tiens, j'ai pas tous ces soucis avec ma p'tite matricielle tranquille, mais je ne veux pas déranger

abandon du suivi
Messages postés
9529
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
12 août 2020
1 878
salut Vaucluse
c'est bien ce que fait excel, mais quand même, proposer un résultat pour une opération dont 'on n'a pas tous les opérandes ne me parait pas si logique que ça.
c'est un peu le pb des langages qui prennent des initiatives lorsque les variables d'un calcul ne sont pas initialisées, ce n'est plus un pb de logique mais de choix du concepteur du langage.

RQ. en passant puisque michel a abandonné le suivi, sa solution "matricielle tranquille" mérite le détour!

cordialement
Merci pour vos contributions elles m'ont aidées à résoudre ma problématique ^^.

Encore un grand merci à vous
Messages postés
9529
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
12 août 2020
1 878
re

si tu veux qu'en cas de cellules non renseignées, il n'y ait aucun résultat, quelque chose du genre (qui teste si le nombre d'opérande renseignés est égal au nombre d'opérandes de la formule)
=SI(NB(C1:C2)=2;C1/C2;"")
bonne suite