SOMME.SI ou SOMMEPROD récalcitrant

Kitcreanet

XLDnaute Nouveau
Bonjour à tous !
Je rencontre une difficulté que je n'arrive pas à contourner et, plus énervant, je ne comprends pas pourquoi.
J'ai arpenté le forum et j'ai trouvé des solutions qui semblent fonctionner pour ceux qui les ont trouvées, testées, mais dans mon cas je fais choux blanc...

Le classeur contient 3 feuilles :
DICO qui contient la liste de tous les postes
2010 qui contient le journal du compte
JUILLET qui contient la synthèse mensuelle pour Juillet

L'onglet '2010', contient les colonnes suivantes :
en A : n° de mois (extrait via MOIS(B2))
en B : date au format DATE
en C : Montant, monétaire, deux décimales
en D : Classification, données validées sur la liste "Postes" de la feuille 'DICO'

Si je veux additionner dans ma synthèse tous les montants correspondant au poste "Restaurant", SOMME.SI convient très bien et fonctionne parfaitement :
Code:
=SOMME.SI('2010'!D2:D7="Restaurant";'2010'!C2:C7)

Mais comme je ne veux que les "Restaurant" pour le mois de Juillet, j'ajoute une condition. J'ai lu que SOMME.SI ne peut réaliser cette opération et que je dois utiliser SOMMEPROD...
J'utilise donc la formule suivante :
Code:
=SOMMEPROD('2010'!D2:D7="Restaurant")*('2010'!A2:A7="7")*('2010'!C2:C7)
mais le résultat affiche 0... quoi que je fasse...

Je me suis arraché les cheveux durant des heures avant de me résigner à poser la question sur le forum...

Pour les plus curieux, une autre anomalie, une autre question...

Dans ma première cellule de l'onglet 2010, le mois est extrait de la colonne B via la commande MOIS(B2). Mais ce n'est pas le bon mois qui s'affiche si je choisis le format personnalisé mmmm... ? Une idée ?

J'extrais le mois pour l'utiliser dans ma formule de calcul mais je suis sur qu'il y a moyen d'utiliser la date sans en extraire le mois au préalable, ce qui éviterai une colonne...

MERCI d'avance à tous !!!!
 

Pièces jointes

  • exemple.xls
    19.5 KB · Affichages: 54
  • exemple.xls
    19.5 KB · Affichages: 59
  • exemple.xls
    19.5 KB · Affichages: 63

Tibo

XLDnaute Barbatruc
Re : SOMME.SI ou SOMMEPROD récalcitrant

Bonjour,

Sur la base de ta formule, il manquait une petite parenthèse et des guillemets étaient à supprimer :

Code:
=SOMMEPROD(('2010'!D2:D7="Restaurant")*('2010'!A2:A7=7)*('2010'!C2:C7))
Sinon, compte tenu de la structure de ton fichier, on pourrait adapter la formule ainsi :

Code:
=SOMMEPROD(('2010'!$D$2:$D$7=B4)*(MOIS('2010'!$B$2:$B$7)=MOIS((1&STXT($A$1;
TROUVE(" ";$A$1)+1;99))*1))*('2010'!$C$2:$C$7))
Ainsi, en recopiant l'onglet pour les autres mois, la formule s'adaptera automatiquement (à condition que le mois inscrit en A1 soit orthographié sans faute pour les mois avec accent)

Je te laisse tester

@+
 

Kitcreanet

XLDnaute Nouveau
Re : SOMME.SI ou SOMMEPROD récalcitrant

Bonjour et MERCI à vous deux !!!

Tibo, Le coup des parenthèses, j'ai envie de me mettre des baffes ;-)

Bon, ça fonctionne ! et c'est vraiment COOL !
J'ai incorporé également le MOIS dans la formules selon les indications de Chris401

Tibo, la "grosse" formule, ne fonctionne pas mais je suis sur à 200% que j'ai du me prendre les pieds dans le tapis...
Mais ... peux tu m'expliquer cette formule ... ?

Code:
=SOMMEPROD(('2010'!$D$2:$D$7=B4)*(MOIS('2010'!$B$2:$B$7)=MOIS((1&STXT($A$1;
TROUVE(" ";$A$1)+1;99))*1))*('2010'!$C$2:$C$7))

... car je t'avoue ne pas la comprendre dans sa totalité (et c'est un euphémisme...)

Une petite explication de texte ? heu .. de formule ? Ce serait sympa !

Merci encore !!!!!
 

Tibo

XLDnaute Barbatruc
Re : SOMME.SI ou SOMMEPROD récalcitrant

Bonjour,

Je te joins le fichier avec la formule proposée.

Je te prépare une explication pour tout à l'heure.

@+

re :

je reviens pour une tentative d'explication :

Code:
=SOMMEPROD(('2010'!$D$2:$D$7=B4)*(MOIS('2010'!$B$2:$B$7)=MOIS((1&STXT($A$1;
TROUVE(" ";$A$1)+1;99))*1))*('2010'!$C$2:$C$7))
1ère partie :

Code:
('2010'!$D$2:$D$7=B4)
on recherche sur l'onglet 2010 les valeurs D2: D7 correspondant à B4


2ème partie :

Code:
(MOIS('2010'!$B$2:$B$7)=MOIS((1&STXT($A$1;TROUVE(" ";$A$1)+1;99))*1))
on recherche sur l'onglet 2010 les valeurs D2: D7 dont le mois correspond au mois figurant en A1

pour cela, on reconstitue une date avec le contenu de A1 :

Code:
MOIS((1&STXT($A$1;TROUVE(" ";$A$1)+1;99))*1)
3ème partie :

La multiplication de ces deux matrices (qui retournent chacune une série de VRAI ou de FAUX) avec la matrice des montants va nous donner le total correspondant aux critères.

Voilou

@+
 

Pièces jointes

  • Kitcreanet.zip
    3.5 KB · Affichages: 25
Dernière édition:

Discussions similaires

Réponses
11
Affichages
605
Réponses
5
Affichages
269

Statistiques des forums

Discussions
312 836
Messages
2 092 655
Membres
105 479
dernier inscrit
chaussadas.renaud