SOMMEPROD Conditionelle
Résolu
aucoro1
Messages postés
3
Statut
Membre
-
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
C'est mon premier post sur un forum, je vais essayer d'etre le plus clair possible.
J'ai un tableau avec trois colonnes, l'une des noms de clients, la seconde avec des numero de semaine, la derniere avec des quantités.
J'ai besoin de faire la somme des quantités d'un meme client une meme semaine. Et repeter ca a tout les clients de toutes les semaines.
Exemple : semaine 1, j'ai 5 fois client1 avec 5 quantités differentes, puis 3 fois clients 2 avec 3 quantités differentes puis semaine 2 j'ai 2 fois client1 avec 2 quantités differentes et 3 fois client2 avec 3 quantités differentes.
J'ai donc besoin de retrecir mon tableau pour que chaque semaine, chaque client de la semaine ne s'affiche qu'une fois avec la somme des quantités.
En esperant avoir été clair,
Robin
C'est mon premier post sur un forum, je vais essayer d'etre le plus clair possible.
J'ai un tableau avec trois colonnes, l'une des noms de clients, la seconde avec des numero de semaine, la derniere avec des quantités.
J'ai besoin de faire la somme des quantités d'un meme client une meme semaine. Et repeter ca a tout les clients de toutes les semaines.
Exemple : semaine 1, j'ai 5 fois client1 avec 5 quantités differentes, puis 3 fois clients 2 avec 3 quantités differentes puis semaine 2 j'ai 2 fois client1 avec 2 quantités differentes et 3 fois client2 avec 3 quantités differentes.
J'ai donc besoin de retrecir mon tableau pour que chaque semaine, chaque client de la semaine ne s'affiche qu'une fois avec la somme des quantités.
En esperant avoir été clair,
Robin
1 réponse
-
Bonjour
deux options:
=SOMMEPROD((champ client=nom client)*(champ N° semaine=N°semaine)*(champ à sommer))
ou (à partir de Excel 2007)
=SOMME.SI.ENS( champ à sommer;champ client;nom client;champ N° sem;N° sem)
vous pouvez bien sur remplacer les valeurs cherchées par des adresses de cellules qui les contiennent
-
Du coup j'ai pris la seconde solution que tu me propose, qui marche bien. Mais j'ai 40 000 ligne sur mon tableau.. 52 semaine, avec des centaines de client chaque semaine et des dizaine de quantité pour chaque client chaque semaine.
Il faudrait que je puisse developer la formule sur tt le tableau. Je ne vois pas comment faire.. Peut etre est ce impossible avec simplement les fonction excel. Je suis dans le neant.
Toute idée peut me faire advancer :)
En tt cas merci a toi pour ta reponse rapide. -
Tout dépend de la façon dont tu veux afficher les résultats, si le tableau est classé, etc
idée de base, à adapter si par exemple tu as une feuille BDD avecc:- en A nom du client
- en B N° de semaine
- en C montants
dans une feuille RECAP
de A2 à Axxx établir la liste exhaustive (sans doublon donc) des clients, elle peut être créée:- par formule et évolutive selon la base de données si on rajoute des clients
- via l'option convertir / supprimer les doublons si la liste en BDD est complète
- soit cette liste existe déjà
de B1 à xxxx1 entrer les N° de semaine- la formule en B2 à tirer sur tout le tableau:
=SOMME.SI.ENS(BDD!$C:$C:BDD!$A:$A;$A2;BDD!$B:$B:B$1)
en respectant bien la position des signes $ pour "tirer" la formule sur tout le tableau
Il est aussi possible d'afficher un résultat unique variant selon sélection par exemple avec:
menu déroulant pour le nom client en A2
menu déroulant pour le N° de semaine en B2
en C2:
=SOMME.SI.ENS(BDD!$C:$C:BDD!$A:$A;$A2;BDD!$B:$B:B$2)
et bien d'autre cas encore (feuille ^par semaine, par client, etc...)
en aparté: pour alléger un peu le système mieux vaut utiliser des adresses de champ avec les limites de lignes utiles plutôt que les colonnes complètes:
exemple: BDD!$A$2:$A$50000 au lieu de BDD!A:A etc...
et pour terminer, vous pouvez utiliser aussi l'outil "tableau croisé dynamique" qui vous affichera les résultat selon la disposition que vous souhaitez et tout ça sans formule
crdlmnt -
-
-