Où est l'erreur de syntaxe?

chikai77

XLDnaute Nouveau
j'additionne une série cellules, il est possible que le résultat d'une de ces cellules soit #div0!.
j'ai donc rédigé la formule suivante afin que l'addition puisse être réalisée malgré les "erreurs".

y a t-il un problème de syntaxe?

{=SOMME(SI(ESTERREUR(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3;P3;R3;S3;T3;U3);"";(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3;P3;R3;S3;T3;U3)))}

Merci de votre collaboration.
 

criscris11

XLDnaute Accro
Re : Où est l'erreur de syntaxe?

Bonsoir,
Essaies comme cà :
{=SI(ESTERREUR(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3 ;P3;R3;S3;T3;U3);"";SOMME(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3 ;P3;R3;S3;T3;U3)}.
Je ne sais pas si les crochets sont bien utiles (formule matricielle).
Bonne soirée et tiens-nous au courant.
 

Gael

XLDnaute Barbatruc
Re : Où est l'erreur de syntaxe?

Bonsoir Chikai, bonsoir Criscris,

A mon avis, cela ne fonctionnera pas bien avec des erreurs comme #DIV0 car les critères de somme.si sont limités; on ne peut pas faire:

Somme.si(plage;non(esterreur(plage)).

La seule solution que j'ai trouvée est la suivante:

Code:
=SOMME.SI(C4:C26;">0")+SOMME.SI(C4:C26;"<0")

Pour moi, il vaut mieux si c'est possible traiter la plage de cellules pour gérer le #DIV0 comme par exemple:

Code:
=SI(B11=0;0;C10/B11)

Ce qui permettra d'utiliser une fonction somme classique.

@+

Gael
 

criscris11

XLDnaute Accro
Re : Où est l'erreur de syntaxe?

Re,
Non Chikai, je ne pense pas que cela vienne qu'il n'y a pas d'erreurs sur la ligne. Pourrais-tu poster un bout de fichier ?

Bonsoir Gaël et merci pour les précisions. Par contre je sais que cela fonctionne bien avec MOYENNE qui je me suis servi cet après-midi encore.
Crois-tu qu'un SOMMEPROD pourrait faire l'affaire ?

Bonne soirée à tous les deux et à ceux qui ne sont toujours pas couché.
PS : je suis en vacances.
 

chikai77

XLDnaute Nouveau
Re : Où est l'erreur de syntaxe?

Bonsoir Gaël et merci pour ta réponse

Je me permets de corriger et de te faire savoir que cela fonctionne avec #div0 car j'ai déjà réalisé plusieurs formules similaires.

ex:=(SOMME(SI(ESTERREUR(M3:p3);"";M3:p3))/SOMME($M$2:$P$2))*$Q$2 et elle fonctionne admirablement.

étant débutant, je ne comprend pas bien les formules que tu proposes.
 

Gael

XLDnaute Barbatruc
Re : Où est l'erreur de syntaxe?

Re,

Le Sommeprod est encore plus sensible à ce genre d'erreurs.

Par contre la formule suivante fonctionne bien:

Code:
=SOMME(SI(ESTERREUR(C4:C26);0;C4:C26))

Formule matricielle (Ctrl-Maj-Entrée).

@+

Gael
 

Gael

XLDnaute Barbatruc
Re : Où est l'erreur de syntaxe?

Re,

Pour les formules proposées:

le double Somme.si permet de totaliser les nombres positifs seulement puis les négatifs seulement, ce qui élimine les 0 et les erreurs.

L'autre formule permet simplement de remplacer par "" ou 0 le résultat de formules si le diviseur est nul au lieu d'obtenir un #DIV0 pas très élégant dans un tableau.

@+

Gael
 

gbinforme

XLDnaute Impliqué
Re : Où est l'erreur de syntaxe?

bonsoir chikai77, le forum

ce n'est toujours pas la bonne.

est-il possible que cela ne fonctionne pas car je réalise la formule sur une ligne sans erreurs?

En fait, cela ne peut pas fonctionner car ce n'est pas la bonne syntaxe.

En effet "somme" accepte une série de valeurs mais pas "esterreur" et donc pour contrôler tu dois mettre :

Code:
=SI(ESTERREUR(SOMME(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3;P3;R3;S3;T3;U3));0;SOMME(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3;P3;R3;S3;T3;U3))

Le contrôle des erreurs est judicieux, mais il est tout de même très lourd à écrire !

J'ai remplacé ton résultat erroné vide ("") par zéro car cela me parait plus logique pour un résultat de somme : à toi de voir !
 

gbinforme

XLDnaute Impliqué
Re : Où est l'erreur de syntaxe?

Toujours aucun résultat et cette boîte de dialogue qui me signale une erreur. Puis-je envoyer le fichier par e-mail à l'un de vous?

Si tu copies le code ci-dessous, qui est exactement le tien avec la bonne syntaxe, à valider par entrée seulement, tu ne dois pas avoir d'erreur, ni "cette boîte de dialogue".

Code:
=SI(ESTERREUR(SOMME(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3;P3;R3;S3;T3;U3));0;SOMME(D3;E3;F3;H3;I3;J3;K3;M3;N3;O3;P3;R3;S3;T3;U3))
@+

PS: résolu avec cette syntaxe ?
 

Monique

Nous a quitté
Repose en paix
Re : Où est l'erreur de syntaxe?

Bonjour,

En fait, il aurait fallu savoir pourquoi 3 cellules ne sont pas prises en compte dans la somme.

Dans l'exemple que tu donnes, tu ne prends pas en compte les cellules G3, L3, Q3
Le hasard (?) fait que ce sont des cellules dont le n° de colonne, divisé par 5, a pour reste 2
MOD(COLONNE(G3);5) = 2
MOD(COLONNE();5) renvoie 2 si on est en colonne G, L ou Q ou etc

Tu peux essayer :
=SOMME(SI(ESTNUM(D3:U3)*(MOD(COLONNE(D3:U3);5)<>2);D3:U3))

Si tu ne prends pas en compte les cellules G3, L3, Q3 simplement parce qu'elles contiennent du texte :
=SOMME(SI(ESTNUM(D7:U7);D7:U7))

Formules matricielles, à valider par ctrl, maj et entrée
 

Pièces jointes

  • SommeChikai.zip
    2.2 KB · Affichages: 27

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 697
dernier inscrit
BOUZOUALEGH