[EXCEL] Somme à plusieurs conditions [Résolu/Fermé]

Signaler
-
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
-
Bonjour à tous,

Je cherche à calculer avec Excel une somme avec 2 conditions dont une qui n'est assez particulière je pense. Je m'explique, je voudrais connnaitre le nombre total de commandes (on va dire qui se trouve dans la colonne C) pour tous les produits (colonne B) qui font partiie de la catégorie 1 (colonne A) et qui contiennent le mot Paris. Donc j'ai besoin d'une formule qui me dit pour chaque produit si A=1 et si bien B contient Paris alors je cumule C.

Là où je bloque, c'est que dans les noms des produits, il y a aucune expression qui contient exclusivement le nom Paris ou d'une autre ville, il s'agit uniquement d'expressions style achat voiture paris, voiture bleu lyon, véhicule paris auxquels est associé un nombre de commande. Donc il me faut une formule qui arrive à prendre en compte une partie de la description du produit et non pas sa globalité.

Pour récapituler:
Colonne A = catégorie du véhicule (numérique)
Colonne B = descriptif de la demande (textuel)
Colonne C = nombre de commandes (numérique)

Si quelqu'un a une idée, un GROS merci parce que là je bloque !

Bye

Eric

12 réponses


Bonjour, je pratique peu les tableurs, mais je ferais plutôt une suggestion : pour gérer ce genre de cas, une base de données est plus appropriée. Dans une base de données, tu peux réellement créer des applications très complexes avec des totaux, des statistiques, des recherches puissantes. Tu as Access? C'est une bonne base de données et on peut imprimer des feuilles assez complexes visuellement sans trop se casser la tête.

Je sais, ça ne t'aide pas vraiment ce que je dis, mais j'essaie de diriger vers la bonne voie pour traiter ce genre de problèmes. Là je peux t'aider à concevoir les données facilement, par exemple.
Messages postés
250
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
17 février 2013
7
oui
access vaux le coup d'etre utiliser pour un travail organiser.
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
193
bonjour, avec le fractionnement et le filtre automatique , cela devrait aller en principe, et au finale, il ne te resterais que les lignes concernés à la fin de tes choix, tu peut aussi rajouter trois colonne , supplementaires, avec dispo , entrée et sorti, pour completer, et eventuellement mettre une colonne date... pour affiner
Le truc c'est qu'à partir du fichier initial (c'est pas moi non plus qui l'ai créé), j'ai besoin de faire un tableau récapitulatif des commandes pour chaque catégorie de véhicule selon les villes, et comme il y a des milliers d'entrées, j'ai pas trop envie de remanier complètement le document ni de la passer sous Access surtout que je me rappelle plus trop comment ca fonctionne ! Donc il faut que ce tableau soit automatisé de manière à ce qu'il se remette à jour à chaque fois qu'une modification y est apportée.
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
193
pourrai tu mettre un bout du fichier, environ 500 lignes , que l'on voit ce que l'on peut faire
de plus, ton classeur est il en relation ou sur plusieurs feuille, ou en plusieurs endroit different


https://www.cjoint.com/
Ok j'ai super simplifié le doc vu qu'il s'agit là d'info que je peux pas vraiment dévoiler, donc il reste juste les parties qui nous intéressent !

J'ai surligné en bleu les cas qui remplissent les 2 conditions à savoir la colonne A = 1 et la colonne B contient Paris, logiquement le résultat que je cherche à obtenir est 21, ce qui correspondrait au nombre des commandes concernant les cas remplissant les conditions.

Ah oui le lien peut-etre :D : https://www.cjoint.com/?houDMMnGgG

J'avais déjà commencé à chercher la solution avec une formule matricielle style =SOMME((A2:A28=1)*(B2:B28="voiture paris")*(C2:C28)) ... on valide en appuyant sur Ctrl+Maj+Enter. Le problème avec cette formule est que j'ai besoin de rentrer la description exate et non pas juste la ville donc au final ca m'aide pas vraiment.

Si vous avez des idées... :D
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
193
https://www.cjoint.com/?houYFKG6ir
voila a ce que je pensais , pour moi, utilisant ce principe dans de la gestion de stock, sur des profil, et avec des couleurs differentes sur une base de plus de 300 reference, dans 10 teintes minimum, et a divers endroit, je trouve que cela est rapide, en plus, tu peut personnalisé ta recherche dans chaque colonne, a bientôt

Le truc c'est que c pas trop ce que je cherche, sur le fichier initial il y a aussi plusieurs couleurs et les volets sont figés. Je veux juste faire un tableau récapitutif m'indiquant en un coup d'oeil les infos dont on a besoin et pas des astuces pour naviguer plus aisément dans la fichier.

Au final, mon tableau devrait ressembler à un quelque chose comme-ci :

total de commande de voiture de catégorie 1 sur Paris : (en l'occurence 21)
total de commande de voiture de catégorie 2 sur Paris :
total de commande de voiture de catégorie 3 sur Paris :
total de commande de voiture de catégorie 1 sur Nantes :
etc...
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
193
j'ai modifier le tableau evacl'ajout de 4 colonnes, et meme sur ce principte, tu a encore trop de conditionnel pour parvenir a ta demande final, sans meme pouvoir savoir la quantité totals par selection, ton fichier initiale est trop aleatoire, ci joint fichier modifier, mais une reprise totale de tes donnée serais necessaire
https://www.cjoint.com/?hovXkMkmRE
mais a cette seule condition tu pourras voir a envisager la comptabilisation de ce que tu veux..
bonne soirée
Merci de donner du mal pour moi en tout cas... donc tu penses que je dois obligatoirement rajouter une colonne avec les lieux pour obtenir mon résultat? Parce que c'est plus ou moins ce que je voudrais éviter mais bon ca doit etre un mal nécessaire comme on dit.

Je trouve ca quand meme bizarre qu'il n'y ait pas une sorte d'astuce pour dire voila si tu trouves ce mot là dans cette cellule alors tu prends en compte le chiffre de telle autre cellule. Je vais continuer de me renseigner encore un peu et si je trouve rien j'adopterai ta solution.

Merci encore une fois.
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
193 > Eric
bonsoir, comme tu dit, mais il faut essayer de saisir toujours de la meme facon les données, c'est un peu comme si tu prend 4 chiffres, que tu les mettes dans n'importe quel ordre a chaque fois, tu a un minimum de 16 solution, plus si tu n'en saisie que trois ou deux par exemple, c'etait pour cela que ton fichier est aléatoire, , , si ce n'est pas toi aqui a fait le fichier de base, demande a la personne qui l'a fait de le modifier, pour ton bien...
sur ce ,bon courage, je suivait simplement ce post , sans autre commentaire....
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 140
Bonjour,
Une petite solution avec une fonction...
https://www.cjoint.com/?hpdOdcSVqm
A+
Messages postés
485
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
15 février 2013
17
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=*paris*", Operator:=xlAnd
Selection.AutoFilter


ca va filterer les éléments contenant paris
maintenant je vais voir si je peux me servir de ca pour faire le calcul demandé
Messages postés
485
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
15 février 2013
17
Sheets(Feuil1").activate
for i = 1 to Cells(Rows.Count, 1).End(xlUp).Row
Set check_data = Sheets("Feuil1").Columns(2).Find(What:="paris", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False)
If Not check_data Is Nothing Then
check_data.Offset(0, 1).Value = 1
End If
Next i


Alors ce programme te permet de parcourir la colone 2 de ta feuille 1 et de chercher les cellule contenant paris dans une partie de leur contenu (je ne suis pas sur a 100% des guillemets autour d'ailleurs) et ca met la valeur 1 dans la colone à droite de la celule ou il a trouvé paris il ne reste plus ensuite qu'a faire la somme des éléments de cette colonne.
Tu peux aussi t'assurer une sécurité en faisant un petit test sur quelques valeurs.
Tu peux encore effacer la colonne permettant de faire la somme à chaque lancement du programme (cela permet d'effacer les 1 mal placés en cas de MAJ des données.
Tu peux encore revenir ici si ce programme ne marche pas.
voila!

bonne journée a toi en tout cas
Salut à tous et merci pour vos réponses,

C'est bon, on a trouvé la solution avec cette formule :

=SOMMEPROD((A2:A28=1)*ESTNUM(CHERCHE("paris";B2:B28))*C2:C28)

Comme ca je peux savoir le nombre de commandes sur Paris pour les voitures de catégorie 1. J'ai plus qu'à appliquer des variantes de cette formule en fonction des autres combinaisons que je cherche.

Merci à tous
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 140
Tu a essayé le classeur que je t'ai passé ?
Oui je l'ai essayé et ca donne les memes résultats que l'autre formule, le problème étant que le nom de la ville ou d'un autre terme que je pourrais rechercher ne sera pas toujours en dernière position (le tableau que j'ai fourni étant une version ultra simplifiée de celui sur lequel je travaille). De plus, je suis vraiment pas expert Excel donc si j'ai la possibilité d'éviter les macros, je préfère parce que je serai incapable de retoucher la formule si nécessaire, je suis meme pas sur d'etre capable de transférer ta solution sur mon tableur !

Merci bien en tout cas.
Messages postés
250
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
17 février 2013
7
bonjour,
pour connaitre un total de la collone C par exemple, tu as la formule =somme(C1; CXXXXXXX)
Oui le problème c pas de savoir le total de la colonne C pour toutes les descriptions en colonne B, mais le total de la colonne C pour les descriptions qui répondent aux 2 conditions. La première condition pose pas de problème (A2:A99=1) ca passe mais je peux pas faire (B2:B99="paris") parce qu'aucune descprition ne contient uniquement le mot paris d'où mon problème. Donc j'ai besoin d'un truc qui me dise (B2:B99 contient "paris"), c'est tout ! :D