Excel, somme automatiques conditionnelles
Résolu
kaz
-
sopat34 -
sopat34 -
Bonjour,
j'ai un petit soucis dans excel, je souhaite faire un comparatif de sommes cumulées sur plusieurs lignes mais avec des valeurs non encore renseignées.
ex : j'ai des valeurs mensuelles pour 2004 et je rentre celles de 2005 et j'aimerai qu'une cellule me calcule uniquement le cumul 2004 sur les memes mois remplis en 2005. En clair, j'ai saisi des valeurs de janvier à mars 2005 et je cherche la formule pour qu'automatiquement le cumul de janvier à mars 2004 s'affiche.
Merci de votre aide
Cordialement,
Kaz
j'ai un petit soucis dans excel, je souhaite faire un comparatif de sommes cumulées sur plusieurs lignes mais avec des valeurs non encore renseignées.
ex : j'ai des valeurs mensuelles pour 2004 et je rentre celles de 2005 et j'aimerai qu'une cellule me calcule uniquement le cumul 2004 sur les memes mois remplis en 2005. En clair, j'ai saisi des valeurs de janvier à mars 2005 et je cherche la formule pour qu'automatiquement le cumul de janvier à mars 2004 s'affiche.
Merci de votre aide
Cordialement,
Kaz
A voir également:
- Excel somme cumulée avec condition
- Excel cellule couleur si condition texte - Guide
- Formule somme excel colonne - Guide
- Liste déroulante excel - Guide
- Somme si couleur excel - Guide
- Word et excel gratuit - Guide
14 réponses
bonjour
peux-tu préciser un peu la question.
tu as de nombreuses lignes 2004 et 2005
et en haut ou en bas de ton tableau tu as une ligne cumul
avec par exemple : =somme.si(plage;cellule=2004)
et idem pour 2005 sur une autre ligne ?
peux-tu préciser un peu la question.
tu as de nombreuses lignes 2004 et 2005
et en haut ou en bas de ton tableau tu as une ligne cumul
avec par exemple : =somme.si(plage;cellule=2004)
et idem pour 2005 sur une autre ligne ?
bonjour
tu peux tout aussi bien ne fonctionner qu'avec excel.
la cellule qui te donne rappel période 2004 prend la formule :
=SOMME(SI(plage_2005="";0;plage_2004))
en validant avec CTRL + MAJ + ENTREE pour travailler en matriciel
avec 'plage_2005' : tes données complétes 2005
et ''plage_2004' : tes données complétes 2004.
On oublies souvent la puissance des formules matricielles !
bon courage.
tu peux tout aussi bien ne fonctionner qu'avec excel.
la cellule qui te donne rappel période 2004 prend la formule :
=SOMME(SI(plage_2005="";0;plage_2004))
en validant avec CTRL + MAJ + ENTREE pour travailler en matriciel
avec 'plage_2005' : tes données complétes 2005
et ''plage_2004' : tes données complétes 2004.
On oublies souvent la puissance des formules matricielles !
bon courage.
gbinforme,
j'ai un cumul pour 2005 dans une seule cellule et j'aimerai que dans une seule cellule à côté apparaisse le cumul pour 2004 concernant les mois saisis. Cette cellule se mettant à jour chaque mois sans conserver d'historique et dans un soucis d'avoir un tableau épuré.
Ex Février 2005
Janv Fév Mars ...Déc Tot
2004 50 124 130 380 1980 rappel période 2004
2005 120 190 vide... vide 310 174
Ex Mars 2005
Janv Fév Mars ...Déc Tot
2004 50 124 130 380 1980 rappel période 2004
2005 120 190 224... vide 534 304
J'espère que ces précisions t'auront éclairer.
Merci
Kaz
j'ai un cumul pour 2005 dans une seule cellule et j'aimerai que dans une seule cellule à côté apparaisse le cumul pour 2004 concernant les mois saisis. Cette cellule se mettant à jour chaque mois sans conserver d'historique et dans un soucis d'avoir un tableau épuré.
Ex Février 2005
Janv Fév Mars ...Déc Tot
2004 50 124 130 380 1980 rappel période 2004
2005 120 190 vide... vide 310 174
Ex Mars 2005
Janv Fév Mars ...Déc Tot
2004 50 124 130 380 1980 rappel période 2004
2005 120 190 224... vide 534 304
J'espère que ces précisions t'auront éclairer.
Merci
Kaz
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Kaz,
La petite macro ci-dessous, à mettre dans le code de ta feuille, devrait faire ce que tu veux.
J'ai appelé "EnCours" la plage des 12 cellules des valeurs mensuelles de 2005, et "Partiel" la cellule qui reçoit le cumul partiel de l'année précédente.
La petite macro ci-dessous, à mettre dans le code de ta feuille, devrait faire ce que tu veux.
J'ai appelé "EnCours" la plage des 12 cellules des valeurs mensuelles de 2005, et "Partiel" la cellule qui reçoit le cumul partiel de l'année précédente.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Lig As Integer Dim Col As Integer Dim Tot As Double Lig = Range("EnCours").Row Col = Range("EnCours").Column Tot = 0 Do While Cells(Lig, Col).Value <> "" Tot = Tot + Cells(Lig - 1, Col).Value Col = Col + 1 Loop Range("Partiel").Value = Tot End SubArmojax.
Merci Armojax, ton code marche nickel.
Par contre est-ce qu'il est possible de modifier le code afin de faire le calcul des cumuls sur plusieurs tableaux de meme forme.
De ce fait, il y aurait plusieurs cellules "partiel" qui se référent a à une plage propre "en cours" mais située au même endroit (L-1; C-13:L-1; C-2) par rapport à chaque cellule.
A+
Kaz
Par contre est-ce qu'il est possible de modifier le code afin de faire le calcul des cumuls sur plusieurs tableaux de meme forme.
De ce fait, il y aurait plusieurs cellules "partiel" qui se référent a à une plage propre "en cours" mais située au même endroit (L-1; C-13:L-1; C-2) par rapport à chaque cellule.
A+
Kaz
Re kaz,
J'ai supposé que tu as un nombre indéterminé de structures identiques, dans une même feuille.
La nouvelle macro n'utilise plus les noms de plages de cellules.
Pour la paramétrer, il faut que tu indiques, dans les tableaux Array de la macro, les coordonnées de chaque cellule "Janvier" de l'année en cours.
Par exemple, si tu as 3 structures dans ta feuille, donc 3 lignes "Année 2005", dont les cellules "Janvier" se trouvent en : A2, C13, F21, tu dois écrire :
Lignes = Array(2, 13, 21)
Colonnes = Array(1, 3, 6)
J'ai supposé que tu as un nombre indéterminé de structures identiques, dans une même feuille.
La nouvelle macro n'utilise plus les noms de plages de cellules.
Pour la paramétrer, il faut que tu indiques, dans les tableaux Array de la macro, les coordonnées de chaque cellule "Janvier" de l'année en cours.
Par exemple, si tu as 3 structures dans ta feuille, donc 3 lignes "Année 2005", dont les cellules "Janvier" se trouvent en : A2, C13, F21, tu dois écrire :
Lignes = Array(2, 13, 21)
Colonnes = Array(1, 3, 6)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim I As Integer Dim Lig As Integer Dim Col As Integer Dim Der As Integer Dim Tot As Double Dim Lignes As Variant Dim Colonnes As Variant Lignes = Array(3, 13) ' placer ici les n° des lignes année en cours Colonnes = Array(2, 7) ' n° de colonnes de "janvier" année en cours With Application.WorksheetFunction For I = 0 To UBound(Lignes) Lig = Lignes(I) Col = Colonnes(I) Der = .Min(Me.Cells(Lig, Col).Offset(0, -1).End(xlToRight).Column, Col + 11) Tot = .Sum(Range(Cells(Lig - 1, Col), (Cells(Lig - 1, Der)))) Me.Cells(Lig, Col).Offset(0, 13).Value = Tot Next I End With End Sub
J'ai bien compris ton code mais je n'arrive pas à l'adapter dans mon tableau. J'ai plusieurs lignes pour l'array mais qu'une seule colonne et en lançant la macro il m'indique une erreur de compilation.
En effet, pour ne rien compliquer je n'ai qu'une ligne avec les mois et tous mes tableaux sont accolés. Concrêtement, j'ai mon janvier que en C6, février en C7 etc, mes 1eres donnees 2004 sont de C9 à N9 et 2005 de C10 à N10, mes 2e données 2004 de C18 à N18 et 2005 de C19 à N19 et les dernières de C28 à N28 et 2005 de C29 à N29.
Les cellules partielles sont en Q10, Q19 et Q29.
Merci de ton aide et bon week, je ne pourrai pas me connecter avant
Kaz
En effet, pour ne rien compliquer je n'ai qu'une ligne avec les mois et tous mes tableaux sont accolés. Concrêtement, j'ai mon janvier que en C6, février en C7 etc, mes 1eres donnees 2004 sont de C9 à N9 et 2005 de C10 à N10, mes 2e données 2004 de C18 à N18 et 2005 de C19 à N19 et les dernières de C28 à N28 et 2005 de C29 à N29.
Les cellules partielles sont en Q10, Q19 et Q29.
Merci de ton aide et bon week, je ne pourrai pas me connecter avant
Kaz
Bjr,
je souhaite faire la somme de de cellule comme suite: a12;c12;e12;g12........
par une simple formule
merci d'avance
je souhaite faire la somme de de cellule comme suite: a12;c12;e12;g12........
par une simple formule
merci d'avance
bonjour
Pour cumuler toutes les cellules numériques de la ligne 12 tu peux mettre :
Pour cumuler toutes les cellules numériques de la ligne 12 tu peux mettre :
=SOMME(A12:IV12)
Bonjour et Vive la France!!!!!!!Je suis un grand utilisateur Merci Paris Hiérarchisation et Sommaire automatique dildo. Merci Bocoup!
Il est supposé exister une formule somme(si(1er critère)*(2eme critère);plage ou se fait la somme)
voici ma formule :
=SI(J5<>"";SOMME(SI((B$3:B$4000=B5)*(G$3:G$4000=G5);H$3:H$4000));"")
si j5 est vide, je passe, sinon je recherche les occurrences de b5 dans la plage b3:b4000. parmi ces occurrences, je recherches celles dont g5 existe et je fais la somme de la colonne H pour celles-ci.
9a a fonctionné, mais tout à coup, ça m'a mis la somme totale H3:H4000 je ne sais pas pourquoi, je n'ai rien changé à la formule.
mais cette formule est décrite dans l'aide d'Excel 2003.
voici ma formule :
=SI(J5<>"";SOMME(SI((B$3:B$4000=B5)*(G$3:G$4000=G5);H$3:H$4000));"")
si j5 est vide, je passe, sinon je recherche les occurrences de b5 dans la plage b3:b4000. parmi ces occurrences, je recherches celles dont g5 existe et je fais la somme de la colonne H pour celles-ci.
9a a fonctionné, mais tout à coup, ça m'a mis la somme totale H3:H4000 je ne sais pas pourquoi, je n'ai rien changé à la formule.
mais cette formule est décrite dans l'aide d'Excel 2003.
Il est supposé exister une formule somme(si(1er critère)*(2eme critère);plage ou se fait la somme)
voici ma formule :
=SI(J5<>"";SOMME(SI((B$3:B$4000=B5)*(G$3:G$4000=G5);H$3:H$4000));"")
si j5 est vide, je passe, sinon je recherche les occurrences de b5 dans la plage b3:b4000. parmi ces occurrences, je recherches celles dont g5 existe et je fais la somme de la colonne H pour celles-ci.
9a a fonctionné, mais tout à coup, ça m'a mis la somme totale H3:H4000 je ne sais pas pourquoi, je n'ai rien changé à la formule.
mais cette formule est décrite dans l'aide d'Excel 2003.
voici ma formule :
=SI(J5<>"";SOMME(SI((B$3:B$4000=B5)*(G$3:G$4000=G5);H$3:H$4000));"")
si j5 est vide, je passe, sinon je recherche les occurrences de b5 dans la plage b3:b4000. parmi ces occurrences, je recherches celles dont g5 existe et je fais la somme de la colonne H pour celles-ci.
9a a fonctionné, mais tout à coup, ça m'a mis la somme totale H3:H4000 je ne sais pas pourquoi, je n'ai rien changé à la formule.
mais cette formule est décrite dans l'aide d'Excel 2003.