|
|
|
|
Posté par
claudio, le vendredi 12 octobre 2007 à 21:02:57Configuration: Windows XP Internet Explorer 7.0
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:A65535<=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
|
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 |
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 |
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 |
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 |
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 |
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");(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 |
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 |
bonjour
=SOMME((MOIS(B1:B65535)=D1)*(A1:A65535)="sortie")*(C1:C65535)) ou =SOMMEPROD((MOIS(B1:B65535)=D1);(A1:A65535)="sortie");(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 |
"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
|
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 |
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 |
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 |
Bonsoir,
Encore moi.... J'ai compris l'erreur. Quand je rentre la formule : =SOMME((MOIS(A6:A65535)=1)*(C6:C65535="sortie")*(B6: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 |
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 |
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 |
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)="oui") la colonne H est rempli par mes dates et la colonne G si mon article est soldé ou non. Merci de votre aide |
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)="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) |
Merci beaucoup de ta réponse. En effet ma synthaxe n'était pas bonne. Ta formule marche très bien
Problème résolu |
| 19/12 17h42 | FORMULES DE BASE | Excel |
| 16/08 21h40 | Choisir une distribution Linux | Distributions |
| 04/06 21h03 | Récupération de données perdues | Sécurité |
| 09/02 13h56 | The Cleaner tuto | Sécurité |
| 06/04 21h49 | Connecter un périphérique sous Vista | Windows Vista |
| 10/04 14h35 | Excel somme.si condition multiple | 12 |
| 02/02 10h36 | EXCEL SOMME.SI avec condition sur des dates | 22 |
| 07/05 21h42 | Excel, somme si avec 2 conditions en mots | 24 |
| 14/07 17h18 | Excel - fonction somme si avec date | 7 |
![]() | Online 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 |
![]() | SIW - 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 |
![]() | Excel 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 |
![]() | SiSoft Sandra - SiSoftware Sandra (System ANalyser, Diagnostic and Reporting Assistant) est un utilitaire de diagnostic permettant de... | Catégorie: Diagnostic Licence: Freeware/gratuit |
![]() | Thermaltake VD3000SNA Matrix VX | Catégorie: Boîtier PC |