Somme conditionnelle entre 2 dates

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marmotte18

XLDnaute Impliqué
Bonjour,

Je voudrais effectuer la somme des valeurs dont la date est comprise entre le 01/12/1996 et le 03/12/1996 (bornes incluses) dans la plage de cellules A2:B7.

A2:A7 représente les dates
B2:B7 représente les montants

La formule correcte sous notation matricielle est :
{=SOMME((B2:B7)*(A2:A7>=DATEVAL("01/12/96"))*(A2:A7<=DATEVAL("03/12/96")))}}

J'aimerais que quelqu'un puisse m'expliquer pourquoi la formule suivante n'apporte pas le résultat escompté

Code:
{=SOMME(B2:B7*ET(A2:A7>=DATEVAL("01/12/1996");A2:A7<=DATEVAL("03/12/1996")))}
 

Pièces jointes

Dernière édition:
Re : Somme conditionnelle entre 2 dates

bonjour,

Essaie ceci :
=SOMMEPROD((A2:A7>=DATEVAL("01/12/1996"))*(A2:A7<=DATEVAL("03/12/1996"))*B2:B7)

Edition :
Pour ta formule, écris la comme ceci :
=SOMME(SI((A2:A7>=DATEVAL("01/12/96"))*(A2:A7<=DATEVAL("03/12/96"));B2:B7))
à valider en matricielle

abcd
 
Dernière édition:
Re : Somme conditionnelle entre 2 dates

Merci abcd,

Tes 2 formules fonctionnent bien ! Je me suis aperçu que l'énoncé de mon problème était faux, suite à une erreur de manipulation de ma part.

J'ai modifié mes 2 formules (la bonne et la mauvaise) et j'ai rajouté dans le fichier ta première solution.

Bravo !

Néanmoins, j'aimerais savoir pourquoi la solution mauvaise ne fonctionne pas ! Où est l'erreur de raisonnement ?
 
Dernière édition:
Re : Somme conditionnelle entre 2 dates

Bonjour,

Il me semble que la fonction ET dans une formule matricielle ne fonctionne pas.

Une formule matricielle fonctionne suivant le principe de Boole, chaque condition renvoie VRAi ou FAUX et on fait la somme de leurs multiplications.
Donc ET(condition1;condition2) ne fonctionne pas, car ET(1;1) ne représente rien, mais bien (condition1)*(condition2), car 1*1=1

abcd
 
Re : Somme conditionnelle entre 2 dates

Merci abcd de voir le problème avec moi.

=ET(1;1) renvoit VRAI donc 1 !

Je tente bien d'appliquer le principe de Boole.

Est-ce que l'utilisation de "ET" dans une formule matricielle est interdite ou est-ce un bug ?
 
Re : Somme conditionnelle entre 2 dates

Bonjour,

En matricielle ET vaut +.

En écrivant la formule comme suit :
=SOMME(ET(A2:A7>=DATEVAL("01/12/1996");A2:A7<=DATEVAL("03/12/1996"));B2:B7)
elle renvoie 106, c'est à dire la somme de toute la plage, car toutes les cellules répondent à une des deux conditions.

abcd
 
Re : Somme conditionnelle entre 2 dates

Bonjour,

abcd, je ne comprends pas la logique. Je n'ai pas trouvé dans les aides cette affirmation.

De plus, la dernière formule que tu proposes ramène 106, c'est à dire la totalité des montants de la plage globale.

Comme ta formule est composé de 2 arguments :
  • B2:B7 qui correspond à la plage globale (soit 106)
  • ET(...) qui ramène par conséquent 0 (ce que je ne comprends pas)
Dans ces conditions, je ne vois pas pourquoi le "ET" se comporterait comme "+". D'ailleurs :

SOMME(0;106) a toujours fait 106
 
Re : Somme conditionnelle entre 2 dates

Bonjour Marmotte,

en utilisant le ET, tu prends en compte tous les montants pour lesquels la date est :

Supérieure ou égale au 01/12/1996

ET ceux pour lesquels la date est :

Inférieure ou égale au 03/12/1996


Mais les deux conditions sont prises isolément.

Par exemple, dans ton tableau, le 29/11/1996 répond VRAI à la 2ème condition (le 29/11/1996 est bien inférieur au 03/12/1996)

Ca revient à dire : je prends tout ce qui se trouve à droite d'un point 1 et tout de qui est à gauche d'un point 3. Ce faisant, tu prends tout.

Dans ce genre de problème, c'est vers la fonction SOMMEPROD qu'il est préférable se tourner.

En espérant avoir un peu éclairci le problème...


@+
 
Re : Somme conditionnelle entre 2 dates

Merci Tibo, pour ta réponse.

Je ne vois pas ce qu'il y a de contradictoire de prendre à la fois ce qui est supérieur ou égal au 01/12/1996 et inférieur ou égal au 03/12/1996.

Cela veut bien dire que l'on prend toutes les dates comprises entre le 01/12/1996 et le 03/12/1996.

ET(FAUX;VRAI) donne FAUX
ET(FAUX;FAUX) donne FAUX
ET(VRAI;FAUX) donne FAUX
ET(VRAI;VRAI) donne VRAI

SOMMEPROD ne fonctionne pas non plus avec ET

Code:
=SOMMEPROD(B2:B7*ET(A2:A7>=DATEVAL("01/12/1996");A2:A7<=DATEVAL("03/12/1996")))
 
Dernière édition:
Re : Somme conditionnelle entre 2 dates

re,

Prenons un autre exemple :

Tu es au milieu d'une rue. tu décides de visiter toutes les maisons après le n° 50 et toutes celles avant le n° 60.

Conclusion : tu vas visiter toutes les maisons, du début à la fin de la rue.

Je sais pas si c'est plus clair, mais c'est vrai que ce n'est pas forcément facile à expliquer.

@+
 
Re : Somme conditionnelle entre 2 dates

Tibo, ton exemple est intéressant.

Je n'ai pas dit :

Je suis au milieu d'une rue, je décide de visiter toutes les maisons après le n° 50 PUIS toutes celles avant le n° 60.

Dans cas, effectivement je vais visiter toutes les maisons, du début à la fin de la rue.

J'ai dit :

Je suis au milieu d'une rue, je décide de visiter toutes les maisons qui sont A LA FOIS après le n° 50 et toutes celles qui sont avant le n° 60.

Le "ET" ne traduit pas une succession de conditions mais une simultanéité de conditions.
 
Re : Somme conditionnelle entre 2 dates

Salut Tibo, Marmotte18

Tibo, pour te donner un coup de main,
car effectivement ce n'est pas facilement compréhensible 😀
Et surtout pas facilement démontrable ...

Il suffit de décortiquer ligne par ligne avec la formule
Pour la ligne 2 : =ET(A2>=DATEVAL("01/12/1996");A2<=DATEVAL("03/12/1996"))

Voilà une petite copie d'écran qui va démontrer à Marmotte le pourquoi du comment, enfin j'espère 😉

A partir du moment ou 2 égalité sont différentes, somme des égalités = FAUX

A+
 

Pièces jointes

  • Marmotte18_Exemple Ligne par ligne.JPG
    Marmotte18_Exemple Ligne par ligne.JPG
    11.6 KB · Affichages: 91
Dernière modification par un modérateur:
Re : Somme conditionnelle entre 2 dates

Re,

Tu as raison, je n'avais pas vérifier 😱

N'empêche que mon exemple reste bon, et qu'au lieu de =Somme(B2:B7)
tu mets =Et(B2:B7) tu as le résultat ... FAUX

Car tous les résultats des conditions ne sont pas équivalentes

C'est ce qui te posait problème dans ton calcul matricielle !
C'est ce que Tibo, essayait de t'expliquer

Oui, c'est comme ça "M'sieur veut avoir raison" 😀

A+
 
Re : Somme conditionnelle entre 2 dates

Cher BrunoM45,

Je t'enlève tout de suite l'idée que je veux avoir raison puisque je sais que la formule proposée ne fonctionne pas !

=> Je cherche seulement à comprendre !

J'avoue que je ne comprends d'ailleurs toujours pas, car enfin, le principe du calcul avec SOMMEPROD ou matriciel avec SOMME est bien d'appliquer une à plusieurs conditions simultanées à chaque élément de la plage analysée.
  • Si la condition est remplie, alors on retient l'enregistrement pour faire le calcul
  • Si la condition n'est pas remplie, on ignore l'enregistrement et on passe au suivant
En aucun cas, on impose que les conditions soient vérifiées par chacune des cellules de la plage analysée puisque c'est un calcul conditionnel.

Je crois que je vais en rester là et que je vais retenir dans ma "petite tête" qu'il ne faut absolument pas utiliser le "ET" dans un calcul matriciel ou dans une SOMMEPROD.

Merci à tous de vous êtes penchés sur mes interrogations. Le principal, c'est de connaître la parade et d'avoir une formule qui tourne.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
3 K
Retour