Excel: Comment faire une somme selon critère?

Fermé
angy21 Messages postés 39 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 26 juin 2007 - 20 févr. 2006 à 21:48
 Vala - 17 avril 2011 à 19:22
Bonjour à tous,

Je me débrouille bien avec Excel mais là j'ai un peu de mal à trouver solution à mon problème. C''est tout dabord un peu plus complexe que le titre peut laisser paraitre...

Dans une feuille j'ai ceci :

COLONNE A - COLONNE B
2006/1 - 100
2006/2 - 200
2006/3 - 580
2006/4 - 660
et cela jusqu'a 2006/12

Dans une autre feuille dans la cellule A1 je rentre une période selon mes besoins (2006/3 par exemple)

Et le résultat que j'aimerai obtenir en B1 : c'est la somme de tout ce qui est inférieur ou égal à 2006/3 (mis en A1).

Si je met en A1, la référence 2006/10, il faut qu'il fasse de lui meme en B1 la somme de la colonne B de 2006/1 a 2006/10 inclus.

Est-ce que cela est possible ou bien dois-je me rabattre sur une macro ?

Merci par avance pour votre aide précieuse.

Bonne soirée
A voir également:

5 réponses

yoyoton Messages postés 6 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 6 août 2010 7
6 août 2010 à 11:49
Je pense qu'il faut bien comprendre le fonctionnement d'une formule matricielle. Donc, pour faire simple, une formule matricielle sert à générer un ensemble de valeur dans une formule. Par exemple :
=Somme(A1:A5)
peut aussi s'écrire
=Somme (A1;A2;A3;A4;A5)
et donc :
{=Somme(A1:A5)}

Par extension, on peut l'utiliser dans des formules qui utilises normalement des valeurs, comme :
=Somme(si(A1>0;B1;0);si(A2>0;B2;0);si(A3>0;B3;0))
peut aussi donc être écris ainsi :
{=Somme(si(A1:A3;B1:B3;0)}

Attention à valider avec MAJ+CTRL+Entrée... Excel ne comprends pas les accolades
5
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
20 févr. 2006 à 23:39
bonsoir,

en B1 de ta feuille 2, je mettrais une formule matricielle :
{=SOMME(SI(Feuil1!$A$1:$A$12<=Feuil2!A1;Feuil1!$B$1:$B$12;0))}
sans oublier que les accolades s'obtiennent en validant la saisie de la formule avec CTRL+MAJ+ENTER. il n'est pas utile de les saisir.

je ferais attention à la façon de noter les mois :
soit en mettant 2006/01 plutôt que 2006/1 si tu tiens à rester en alpha,
soit en utilisant le format date classique obtenu avec la saisie 1/2006.

A+
3
angy21 Messages postés 39 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 26 juin 2007 1
21 févr. 2006 à 06:52
Bonjour,

Tout dabord un grand merci pour avoir pris le temps de me répondre.

Ensuite j'ai déjà testé avec la fonction SOMMESI mais cela ne donne pas l'effet escompté car en fin de compte si la condition est remplie, il fait la somme de la plage...

Alors que mon problème actuel c'est que selon le contenu de la cellule A1 il doit faire une somme que d'une partie de la plage.

Voici ma feuille :

En cellule A1 j'ai selon mon exemple 2006/5 et en B1 je compte y mettre ma formule.

Vlici les colonne C et D
2006/1 100
2006/2 200
2006/3 300
2006/4 400
2006/5 500
2006/6 600
2006/7 700
2006/8 800
2006/9 900
2006/10 1000
2006/11 1100
2006/12 1200

Dans la cellule B1 la, j'aimerai qu'il me fasse la somme de 2006/1 a 2006/5 car 2006/5 est en A1. Mais si je change A1 par 2006/8, il doit faire toujours en B1 la somme de 2006/1 et 2006/8... Je pense que c'est ainsi plus clair ?

C'est pas facile de traduire en mot le problème ;-)

Merci en tout cas d'avoir essayé de m'aider.

Bonne journée
0
Merci yoyoton pour ton explication, ça m'a bien servit dans le cadre de mon utilisation personnelle et débutante !
+1 au passage
1
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
21 févr. 2006 à 09:12
bonjour,

je crois que tu n'as pas testé ce que je t'ai proposé.

d'abord parce qu'il ne s'agit pas de la fonction somme.si
ensuite parce que ça fait exactement ce que tu souhaites faire.

M'enfin!
0
angy21 Messages postés 39 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 26 juin 2007 1
21 févr. 2006 à 13:35
Re bonjour,

Si si je t'assure j'ai testé mais je dois mal faire alors car je n'obtiens pas le résultat escompté. Voici ma formule (MAJ selon mes données)

=SOMME(SI(stockinitial!$A$1:$A$12<=stockinitial!A1;stockinitial!$D$1:$D$13;0))


En A1 j'ai 2006/5
En B1 ma formule
et en colonne C et D mes données

2006/1 100
2006/2 100
2006/3 100
2006/4 100
2006/5 100
2006/6 100
2006/7 100
2006/8 100
2006/9 100
2006/10 100
2006/11 100
2006/12 100

Avec la formule j'obtiens 1200 alors qu'étant donné que j'ai mis en A1 "2006/5" je devrais avoir 500...

Est-ce que j'ai commis une erreur stp ?

Merci pour ton aide en tout cas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
21 févr. 2006 à 13:50
ah bin oui!

essaye plutôt ça :
=SOMME(SI(stockinitial!$C$1:$C$12<=stockinitial!A1;stockinitial!$D$1:$D$12;0))
et n'oublies pas de valider par MAJ+CTRL+ENTER pour transformer ta formule en formule matricielle.

je me répète également : écris 2006/01...09 au lieu de 2006/1...9 sinon tu auras des soucis quand tu saisiras une date limite du genre 2006/10 vu qu'il ne te prendras (ordre alpha oblige) pas les 2006/2...9

A+
0