sommeprod

  • Initiateur de la discussion andré
  • Date de début
A

andré

Guest
Salut à vous tous,

Je m'avoue vaincu ... je dois faire appel à l'équipe !

J'ai dans un fichier une fonction SOMMEPROD qui me renvoie un message d'erreur dès que j'ajoute une ligne vide à la table, alors qu'en faisant un test sur une feuille séparée tout fonctionne très bien.

Ci-joint un extrait de ma feuille, avec toutes les colonnes intermédiaires.
Je ne trouve pas l'erreur.

Merci d'avance à celui qui prendra 5 minutes de son temps pour m'aider.

Ândré.
 

Pièces jointes

  • sommeprod_cambre.zip
    4.4 KB · Affichages: 17
  • sommeprod_cambre.zip
    4.4 KB · Affichages: 16
  • sommeprod_cambre.zip
    4.4 KB · Affichages: 18
A

andré

Guest
Salut JC,

Ben oui, pourquoi ?
Je l'ouvre sans problème, mais quel est le tien ?

J'ai vu que j'avais commis une petite erreur dans la copie "texte" de la formule : la formule originale ne comporte (plus) le "/365", mais cela ne change rien au message d'erreur.

Pour être certain, je replace la pièce jointe zippée.
Merci quand même de l'essai d'aide.

Ândré.
 

Pièces jointes

  • sommeprod_cambre.zip
    4.4 KB · Affichages: 20
  • sommeprod_cambre.zip
    4.4 KB · Affichages: 17
  • sommeprod_cambre.zip
    4.4 KB · Affichages: 21
A

andré

Guest
Salut sousou,

Effectivement le formule : =ESTTEXTE(X16) me renvoie VRAI.
Dans la version originale elle contient une formule qui me renvoie "" si la ligne est vide.

Lorsque j'applique la même formule sur une autre cellule ezn dehors de mon tableau, elle me renvoie FAUX, ce qui est vrai (lol).
Mais lorsque je copie cette dernière cellule en X16, la formule me renvoie toujours VRAI !

Lorsque je crée une ligne supplémentaire entre les lignes 13 et 14, la formule en C20 (C21 après avoir créé la ligne) fonctionne toujours.

Il s'agit donc bien d'un problème de format en X16 (ce qui était ma première impression), mais je ne trouve pas la façon de corriger cette erreur.
En vérifiant le format de X16 (par le menu Format / Cellule) c'est bien le format "nombre" qui a été retenu.

Je ne comprends vraiment pas !

Ândré.
 
M

Monique

Guest
Bonjour,

Il faut rendre numérique la 1ère partie de la formule.
et mettre un point-virgule à la place du dernier *
Pourquoi, je ne sais pas.
=SOMMEPROD(($C$12:$C$16="01.17.12")*1;$X$12:$X$16)
=SOMMEPROD(N($C$12:$C$16="01.17.12");$X$12:$X$16)
=SOMMEPROD(($C$12:$C$17="01.17.12")*(ESTNUM(X12:X17));($X$12:$X$17))
Avec ça, tu peux avoir des cellules vides ou du texte ou des valeurs numériques dans la plage de droite

Il y a eu un post semblable hier :
http://www.excel-downloads.com/html/French/forum/messages/1_84647_84647.htm
Même problème, cellule en apparence vide mais qui ne l'était pas.
ESTVIDE()=FAUX, ESTTEXTE()=VRAI, ESTNUM()=FAUX et NBCAR()=0
 
A

andré

Guest
Merci Monique, problème résolu !

J'ai retenu le "*1".
Je comprends tout très vite, ... lorsqu'on me l'explique longtemps !
Et dire que je le savais !

Entre-temps j'avais trouvé la solution suivante : dans ma formule remplacer le "" (quand la ligne est vide) par 0.
Puis activer la formule SOMMEPROD et valider par le "v" à gauche de la barre de formules.
Ta solution est bien plus simple.

Si tu as encore 5 minutes à me consacrer, pourrais-tu me donner un petit mot d'explication quant à ta deuxième formule, plus particulièrement en ce qui concerne le coëfficient "N".

Je t'en remercie d'avance.

Ândré.
 
M

Monique

Guest
Re,

N rend numérique ce qui peut l'être, si j'ai bien compris.
C'est l'équivalent de *1 ou /1 ou +0 ou -0
Ces 4 formules disent la même chose :
=SOMMEPROD(N(A1:A5=D1);B1:B5)
=SOMMEPROD(0+(A1:A5=D1);B1:B5)
=SOMMEPROD((A1:A5=D1)-0;B1:B5)
=SOMMEPROD((A1:A5=D1)/1;B1:B5)

=SOMMEPROD(N(A1:A5=D1)) compte le nb de fois où une cellule de la plage A1:A5 est égale D1
=SOMMEPROD((A1:A5=D1)+0) fait la même chose

L'aide d'Excel donne une explication de la fonction N()
 

Discussions similaires

Réponses
4
Affichages
379
Réponses
20
Affichages
2 K

Statistiques des forums

Discussions
312 520
Messages
2 089 290
Membres
104 088
dernier inscrit
said4u