rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

EXCEL SOMME.SI avec condition sur des dates

Posté par claudio, le vendredi 12 octobre 2007 à 21:02:57
Bonjour,

Voila mon PB

Col A : des dates
Col B : Des valeurs

Formule : Si les dates saisies dans la col A sont comprises entre début et fin de mois, additionner les cellules de la Col B qui correspondent à ces dates. En gros additionner uniquement les cellules qui correspondent à une période donnée.

Merci à Tous
Configuration: Windows XP
Internet Explorer 7.0
Répondre à claudio  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le vendredi 12 octobre 2007 à 21:49:30
bonjour

Si en D1, tu mets le mois à comptabiliser, tu peux le faire avec cette formule :
=SOMME((MOIS(A1:A65535)=D1)*(B1:B65535))
ou
=SOMME((A1:A65535>=DATEVAL("1/9/2007"))*(A1:A65­535<=DATEVAL("30/9/2007"))*(B1:B65535))

C'est une formule matricielle à valider par CTRL + MAJ + ENTREE (3 doigts au moins)
Il faut que les deux plages soit identiques en taille, même si elles ne sont pas sur la même feuille, ou ne commencent pas à la même ligne et elles ne peuvent pas être saisies comme une colonne entière.

Il est bien sûr possible de rajouter d'autres conditions, saisies entre parenthèses et séparées par "*"

=SOMME((MOIS(A1:A65535)=D1)*(C1:C65535)="valeur")*­(B1:B65535))


toujours zen
Répondre à gbinforme

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
claudio, le vendredi 12 octobre 2007 à 23:52:45
Bonjour GBINFORME,

Merci pour ta réponse rapide.
La première fonctionne à la perfection.
Pour la deuxième j'ai pas réussi, je cherche encore pourquoi....

Je vais encore te prendre la tête mais je tente le coup....

En vrai j'ai 3 colonnes.

Col A : 2 valeurs ( entrée ou sortie)
Col B : des dates
Col C : des montants

Dans une cellule je veux additionner tous les montants de la colonne C qui sont sorti entre 2 dates (1er et dernier jour du mois)
mais aussi qui sont comptabilisés comme sortie dans la colonne A. Donc 2 conditions pour additionner mes montants de ma colonne C.
Et j'ai pas compris la formule que tu as écrit. Peux tu me donner un exemple STP.

Je te remercie d'avance

Cordialement,

Claude
Répondre à claudio

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
claudio, le vendredi 12 octobre 2007 à 23:43:20
Gbinforme.

La première fonction fonctionne impécable.

Pour la deuxième j'ai pas réussi.

Je te remercie pour tes infos,

Cordialement,

Claude
Répondre à claudio

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le samedi 13 octobre 2007 à 00:21:03
bonjour

Dans une cellule je veux additionner tous les montants de la colonne C qui sont sorti entre 2 dates (1er et dernier jour du mois)
mais aussi qui sont comptabilisés comme sortie dans la colonne A. Donc 2 conditions pour additionner mes montants de ma colonne C.


=SOMME((MOIS(B1:B65535)=D1)*(A1:A65535)="sortie")*­(C1:C65535))

Modifier D1 par la cellule où tu mets le mois concerné.
Modifier "sortie" par la valeur mise dans la cellule A pour indiquer la sortie.

toujours zen
Répondre à gbinforme

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vaucluse, le samedi 13 octobre 2007 à 10:16:58
Bonjour Claudio

Une autre solution:
Colonne A (entrée ou sortie)
Colonne B les dates
Colonne C les montants
Tout cela a partir de la ligne A2
Utilisez par exemple les renvois:
en A1 "Sortie", en B1 =MOIS(D1)
Rentrez la date souhaité en D1_(Voir ma remarque en dessous en gras)
Colonne E, sur la hauteur du champ concerné à partir de la ligne A2:
=SI(MOIS(B2)=$B$1;C2;0)*SI(A2=$A$1;1;0)
En haut de la colonne E, vous pouvez faire le cumul des résultats
On peut aussi bien entendu utiliser pour ce renvoi, une colonne hors champ, masquée, en renvoyant le cumul au bon endroit
Pour info, dans ma configuration, et c'est peut être du à mes réglages, les formules conditionnelles ne marchent avec l'info" MOIS" que si la date est préalablement transformée en numérique, d'où ma proposition de passer par D1 pour aller en B1 renvoyer le code.Par contre cette option a un inconvénient majeur, elle ne peut pas couvrir plus de 12 mois

Je profite de cette intervention pour demander à gbinforme:
_Comment il fait fonctionner MOIS à partir d'un renvoi sur une date, et non sur une valeur numérique
_Comment il fait fonctionner sa dernière formule qu iinclut dans des opèrations une valeur texte ("Sortie")
Je suis vivement interessé par les réponses, donc,merci d'avance


Une autre option, à tout hasard, pour votre tableau, en lecture directe

Libérer la ligne A1 en décalant le tableau
EN C1; placer la formule:=SOUS.TOTAL(9;C1:C1000)
En colonne D, renvoyez comme précédemment=MOIS(B2) sur toute la hauteur du champ
Sélectionner le champ complet du tableau sur A à D
Barre d'outil / Données / Filtrer / Filtre automatique
Dans les déroulants, sélectionnez sur colonne A:"Sortie", puis sur colonne D le mois qui vous interesse.
Votre total s'affiche en C1, de plus vous avez à l'affichage la liste concernée.

BCRDLMNT



Science sans conscience n'est que ruine de l'Ame
Répondre à Vaucluse

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le samedi 13 octobre 2007 à 18:26:23
bonjour

Je profite de cette intervention pour demander à gbinforme:

Tu nous expliques beaucoup de choses mais je pense qu'il y a des concepts qui ne sont pas très très clairs pour toi. ainsi, quand tu nous dis :

_Comment il fait fonctionner MOIS à partir d'un renvoi sur une date, et non sur une valeur numérique
Pour faire fonctionner MOIS à partir d'une date, il n'y a rien de plus normal sous Excel car une date est toujours enregistrée sous la forme d'un nombre décimal :
- les valeurs entières représentent le nombre de jours depuis le 01/01/1900 ou le 01/01/1904 selon le calendrier choisi.
- les valeurs décimales représentent la division du jour, c'est-à-dire les heures.

L'affichage d'une date dans une cellule n'est donc que de la présentation qui ne change pas la valeur de la cellule.
Si tu veux le vérifier, prends une cellule définie en standard et tu saisies par exemple 1,5.
Tu définies le format en jj/mm/aaaa et tu obtiens : 01/01/1900
Tu définies le format en [h]:mm et tu obtiens : 36:00
Tu définies le format en jj/mm/aaaa hh:mm et tu obtiens : 01/01/1900 12:00

Pour info, dans ma configuration, et c'est peut être du à mes réglages, les formules conditionnelles ne marchent avec l'info" MOIS" que si la date est préalablement transformée en numérique,
Quels que soient tes réglages, je doute donc fortement de la véracité de cette affirmation...


_Comment il fait fonctionner sa dernière formule qu iinclut dans des opèrations une valeur texte ("Sortie")
=SOMME((MOIS(B1:B65535)=D1)*(A1:A65535)="sortie")*­(C1:C65535))

Cette formule fonctionne en fonction des données qui sont mentionnées dans la question :
Col A : 2 valeurs ( entrée ou sortie)
Col B : des dates
Col C : des montants

Donc je traite les valeurs Col A ( entrée ou sortie) comme du texte ( mais c'est un test et non une opération de calcul ), les dates Col B comme des dates ( mais c'est un test sur le mois ) et les montants Col C comme du numérique à totaliser ( là, c'est une vrai opération ) , cela me parait la base de tout calcul tableur.

Si tu penses que l'on peut traiter d'une autre façon, je suis entièrement preneur et il est tout à fait possible d'apprendre plein d'autres méthodes car avant de faire le tour des possibilités d'un tableur il y a des jours à passer : je ne demande qu'à découvrir d'autres possibilités.

Je suis vivement interessé par les réponses, donc,merci d'avance

Voilà ce que j'ai pu apporter comme réponses et si tu veux continuer le dialogue, ce sera avec le plus grand plaisir.

toujours zen
Répondre à gbinforme

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vaucluse, le samedi 13 octobre 2007 à 18:43:36
Gbinforme

je ne comprend pas bien le ton de votre message, surtout d'une part le début, ou je n'explique que ce que je constate et
ensuite vos explications sur les dates, ce que je connais parfaitement, même si cela vous étonne,mais voyez vous :

Si je met une formule conditionnelle incluant "MOIS", elle ne marche pas si je traite une liste de date (jour/mois /année) avec une cellule ou je rentre "Octobre" par exemple.
Si je rentre une date dans la cellule une date (1/10/07) par exemple, elle ne marche qu'avec cette date précise et ne prend pas les cellules du même mois et d'autres jours.

Si je renvois les cellules de la liste à traiter avec =MOIS(), effectivement, là, je récupère une valeur numérique correspondante au mois concerné pour toutes les dates, et là, je peux traiter en rentrant dans la cellule de référence le N° du mois recherché.
C'est comme ça, je n'y peux rien.Et ma question portait sur le pourquoi et non sur la configuration des dates dans excel.
Quant à la formule que vous donner incluant l'item="sortie" que vous préconnisez, je l'ai testée chez moi, elle ne renvoi que "valeur" quand les conditions sont remplies.Je ne savais pas sincéremnt que l'on pouvait associer un signe * avec une valeur texte et je me limitais au ;
pour la bonne forme et pour conclure, je précise que je n'ai en aucun cas l'intention de donner des leçons à quelqu'un mais de comprendre pourquoi des solutions que je trouve sur ces forums et qui peuvent me servir ne marchent pas, comportement qui à mon sens ne justifie pas votre entrée en matière!.
Je me permet de supposer que le fond de votre pensée ne se reflète pas dedans
CRDLMNT
PS: en revanche,et après un peu de réflexion, si quelque chose dans mes remarques a pu vous blesser, c'était bien involontaire et mes motivations ne sont que curiosité.

Science sans conscience n'est que ruine de l'Ame
Répondre à Vaucluse

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le samedi 13 octobre 2007 à 19:37:57
Bonsoir tout le monde,

Si la formule de gbinforme ne fonctionne pas pour vous, utilisez à ce moment là SOMMEPROD en remplaçant les * par un ;
Ce qui donne =SOMMEPROD((MOIS(B1:B65535)=D1);(A1:A65535)="sortie&quo­t;);(C1:C65535)) il y a peut-être un problème de version excel

Le principe est le suivant :
On a 2 matrices de test (A et B) et une matrice de valeur (C)
Si on a "sortie" en A1 et qu'en B1 on saisi =(A1="sortie") pour excel c'est un test et il repondra VRAI
Si on multiplie ce VRAI par une valeur numérique excel comprend qu'on fait un calcul et transforme ce VRAI en 1. Ex: saisir en C1: =B1*1 => 1*1 => 1
Bien sûr si on a autre chose que "sortie" en A1 excel répondra FAUX qui multiplié par 1 => 0*1 => 0

Ce qu'on vient de faire pour une ligne, excel le fait pour toutes les lignes des plages, il s'agit d'une multiplication de matrices où toutes les lignes sont traitées individuellement (toutes les matrices doivent avoir la même dimension)

ex avec des valeurs bidons:
Supposons A1= "sortie", B1=3, C1=1235
tests et multiplications avec les évaluations successives d'excel :
(A1="sortie") * (B1 = 3) * (1235)
VRAI * VRAI * 1235
1 * 1 * 1235 = 1235

ligne 2, supposons A2="nok" , B2=3, C2= 15
tests et multiplications :
(A2="sortie") * (B2=3) * (15)
FAUX * VRAI * 15
0 * 1 * 15 = 0

Et comme on lui a demandé de faire la somme de toutes les lignes il fera 1235 + 0 => 1235

J'ai essayé de décomposer le travail d'excel pour éclaircir les choses mais ce n'est pas une notion facile à apprehender ni à expliquer.

Mais c'est vraiment très puissant et pratique (adieu la limitation à 7 SI imbriqués et les formules si difficiles à lire), je vous encourage à essayer jusqu'à ce que vous y arriviez

eric
Répondre à eriiic

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vaucluse, le samedi 13 octobre 2007 à 20:58:12
Bonsoir Eric, je ferme pour ce soir, mais j'essaie ça dès que possible et je t'en reparle. Je ne crois pas que cela solutionne mon problème de "MOIS"!
Que faut il faire pour que Excel reconnaisse un mois dans une série de date?
Que doit on rentrer en D1 ? le nom du mois, la date du premier jour?
Ou doit on écrire aussi MOIS(D1) dans la formule au lieu de D1?
BCRDLMNT
Science sans conscience n'est que ruine de l'Ame
Répondre à Vaucluse

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le samedi 13 octobre 2007 à 23:15:05
bonjour

=SOMME((MOIS(B1:B65535)=D1)*(A1:A65535)="sortie")*­(C1:C65535))
ou
=SOMMEPROD((MOIS(B1:B65535)=D1);(A1:A65535)="sortie&quo­t;);(C1:C65535))

ne fonctionnent pas car il y a une erreur de saisie que j'avais vue mais j'ai eu une erreur forum au moment d'envoyer ma correction peut-être dûe à l'autre message ?

par contre ces deux formules
=SOMME((MOIS(B1:B65535)=D1)*(A1:A65535="sortie")*(­C1:C65535))
à valider par ctrl + maj + entrée
ou
=SOMMEPROD((MOIS(B1:B65535)=D1)*(A1:A65535="sortie"­;)*(C1:C65535))
à valider par entrée

fonctionnent tout à fait correctement et sont équivalentes.

J'avais laissé traîner une fermeture de parenthèse intempestive en complétant la formule sur le forum,
et eriiic a recopié mon erreur puis a remplacé à tord les "*" par des ";", ce qui ne correspond pas d'ailleurs à l'explication du fonctionnement qu'il donne et les ";" servent à rajouter d'autres matrices.

Mais c'est vraiment très puissant et pratique : tout à fait d'accord !
Je dirais même qu'il est indispensable de connaître et d'utiliser ses formules pour la gestion des tableaux.

toujours zen
Répondre à gbinforme

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le samedi 13 octobre 2007 à 23:21:09
"ce qui ne correspond pas d'ailleurs à l'explication du fonctionnement qu'il donne"
SOMMEPROD(matrice1;matrice2;matrice3,...) : Donne la somme des produits des éléments de matrice correspondants.
N'hésite pas à me corriger s'il y a des erreurs ou a expliquer différemment si besoin.
eric
Répondre à eriiic

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le samedi 13 octobre 2007 à 23:38:48
bonjour

Désolé, je n'ai pas compris ce que tu voulais me dire ?

SOMMEPROD(matrice1;matrice2;matrice3,...) : oui mais en l'occurrence, nous n'avions qu'une matrice à additionner même si elle s'agrémentait de deux conditions ?

N'hésite pas à me corriger... si besoin
Rien à corriger car tes explications effectivement me paraissent très judicieuses sur un sujet complexe comme tu le fais remarquer.

toujours zen
Répondre à gbinforme

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le dimanche 14 octobre 2007 à 00:02:33
Bonsoir gbinforme,

Je viens de voir ton exemple et du coup je comprend ta remarque, regarde le mien et tu comprendras le sens de ma phrase :-)
C'est bien vrai qu'une image vaut mille mots ;-)
En tout cas elle est bien interessante sa question à Claudio
bonne nuit
Répondre à eriiic

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le dimanche 14 octobre 2007 à 00:28:35
bonjour à toi !

En fait, sommeprod a été fait pour faire des multiplications de matrices et l'utilisation partielle avec des tests est une fonctionnalité qui fonctionne un peu par hasard et les tests que l'on effectuent sont d'ailleurs assez limités avec des résultats curieux si on pousse un peu les conditions.

Plutôt que d'utiliser ta formule "*1;" j'ai utilisé la valorisation des conditions avec la seule "*" qui abouti au même résultat, même si le raisonnement est complètement différent et tu ne l'avais pas mentionné dans tes explications.

C'est pour cela que je préfère utiliser les formules matricielles qui sont plus claires dans le raisonnement, enfin comme dit Philippe Vandel, "c'est mon idée et je la partage !" (heureusement ... tout de même).

En tout cas j'espère que Claudio va solutionner son problème, même si on l'a un peu noyé avec nos erreurs et solutions divergentes pour un résultat identique.

toujours zen
Répondre à gbinforme

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
claudio, le samedi 13 octobre 2007 à 23:34:35
Bonsoir à tous,

Je vais êttre franc avec vous, je suis à l'origine de ce post et je ne comprend toujours pas.
J'ai compris le, principe de la formule matricielle.
Mais je fais ça chez moi et ça ne fonctionne pas.
Quelqu'un peut-il m'envoyer un fichier avec un exemple

Je vous re donne les donnes :

Col A : des dates : exemple ( du 01/01/2007 au 30/02/2007)
Col B : 1 valeur par cellulle ( entrée ou sortie)
Col C : des montants ( qui correspondent à des ventes par jour)

Je veux pouvoir additionner uniquement les montants du mois de janvier et qui sont marqués "sortie"

Merci à tous de votre patience et de votre compréhension...

Claude
Répondre à claudio

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le samedi 13 octobre 2007 à 23:52:55
bonjour Claudio,

Effectivement, c'est bien toi qui est concerné et tu peux regarder ce fichier de test

Puis tu pourras certainement mieux nous expliquer ce qui te poses problème.

toujours zen
Répondre à gbinforme

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le samedi 13 octobre 2007 à 23:55:55
Bonsoir claudio,

Voici un exemple avec sommeprod()
C'est vrai qu'il faut faire très attention aux parenthèses
http://www.cijoint.fr/cij107942176728548.xls

eric
Répondre à eriiic

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
claudio, le samedi 13 octobre 2007 à 23:58:31
Bonsoir,

Encore moi....

J'ai compris l'erreur.
Quand je rentre la formule :

=SOMME((MOIS(A6:A65535)=1)*(C6:C65535="sortie")*(B­6:B65535))

ou 1 = le mois de janvier, cela fonctionne parfaitement.

Par contre si je rentre la formule

=SOMME((MOIS(A6:A65535)=D1)*(C6:C65535="sortie")*(­B6:B65535))

et que dans D1 je rentre 1, cela ne fonctionne pas................POURQUOI ????????????

Sous quel format faut-il rentrer mon mois dans D1

Vous voyez, ça vient petit à petit......

Claude
Répondre à claudio

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le dimanche 14 octobre 2007 à 00:06:20
bonsoir,

Sous quel format faut-il rentrer mon mois dans D1

au format standard tout normalement comme tu peux le voir sur l'exemple

Les erreurs surviennent toujours où on ne les attend pas et je suppose que tu as rentré ton mois avec un format "texte" sinon je ne vois pas.

toujours zen
Répondre à gbinforme

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
claudio, le dimanche 14 octobre 2007 à 01:02:41
Bonsoir,

MERCI A TOUS POURVOS MULTIPLES EXPLICATIONS ET VOTRE PATIENCE

UN GRAND MERCI A " ERIC" et " TOUJOURS ZEN" pour vos fichiers explicatifs

Ca marche .

Mieux vaut tard que jamais............

Cordialement,

Claude
Répondre à claudio

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aurel51, le lundi 4 février 2008 à 10:08:43
bonjour,

j'ai essayé d'intégrer vos formules sur mon fichier excel mais cela ne fonctionne pas.
j'aimerai avoir un coût total par mois. j'aimerai avoir le coût cumulé de tout mes articles pour janvier et à condition que la colonne (G) soit =oui pour chacun de mes articles.

=SOMMEPROD((MOIS(1)=Etalonnage!H7:H48);(Etalonnage!G7:G48)=&­quot;oui")

la colonne H est rempli par mes dates et la colonne G si mon article est soldé ou non.

Merci de votre aide
Répondre à aurel51

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le lundi 4 février 2008 à 12:18:28
bonjour

j'ai essayé d'intégrer vos formules sur mon fichier excel mais cela ne fonctionne pas.

Heureusement qu'elles ne fonctionnent pas car je me ferais du souci...
Lorsque l'on saisi une formule il y a une syntaxe de saisie et l'on ne peut pas faire n'importe quoi.

En traduisant ce que tu as essayé de faire, je te donnes la bonne syntaxe mais il faut que tu remplaces la dernière plage A7:A48 par la plage de coût de tes articles.
ta version
=SOMMEPROD((MOIS(1)=Etalonnage!H7:H48);(Etalonnage!G7:G48)=&­quot;oui") 
corrigée
=SOMMEPROD((MOIS(Etalonnage!H7:H48)=1)*1;(Etalonnage!G7:G48=­"oui")*1; (Etalonnage!A7:A48))
ou
=SOMME((MOIS(Etalonnage!H7:H48)=1)*(Etalonnage!G7:G48="­oui")*(Etalonnage!A7:A48))
en validant par ctrl+entrée+majuscule simultanées

Le savoir est la seule matière qui s'accroît quand on la partage. (Socrate)
Répondre à gbinforme

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aurel51, le lundi 4 février 2008 à 16:37:54
Merci beaucoup de ta réponse. En effet ma synthaxe n'était pas bonne. Ta formule marche très bien

Problème résolu
Répondre à aurel51
Logiciels pertinents trouvés dans les téléchargements
Télécharger Online Armor Personal Firewall 2.1.0.95Online Armor Personal Firewall - Online Armor est un Firewall + un IDS Uniquement en anglais - pour l'instant - mais complet et entièrement gratuit. ...Catégorie: Firewall
Licence: Freeware/gratuit
Télécharger SIW 2008-07-15SIW - SIW (System Information for Windows) est un programme permettant d'analyser la configuration de l'ordinateur et d'effectuer...Catégorie: Diagnostic
Licence: Freeware/gratuit
Télécharger Excel Viewer 2003Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même...Catégorie: Tableur
Licence: Freeware/gratuit
Télécharger SiSoft Sandra XII.2008.SP2c (14.24)SiSoft Sandra - SiSoftware Sandra (System ANalyser, Diagnostic and Reporting Assistant) est un utilitaire de diagnostic permettant de...Catégorie: Diagnostic
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « EXCEL SOMME.SI avec condition sur des dates »