Afficher le "top 1" des lignes reliquats

Fermé
momabchour Messages postés 40 Date d'inscription jeudi 18 août 2016 Statut Membre Dernière intervention 25 mai 2020 - Modifié par momabchour le 19/08/2016 à 17:35
eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 - 20 août 2016 à 11:15
Bonjour,

Donc voila j'ai un tableau de reliquats journalières que dont je souhaite afficher le top 1 des produits avec reliquats.

Exemple: supposons que je suis un vendeur d'articles scolaires et que chaque jour je note sur Excel les reliquats comme suit:

Date Commande Produit en Reliquat Qté
01/01/2016 657457 Stylo 40
01/01/2016 876853 Papiers 50
02/01/2016 198473 Stylo 30
02/01/2016 683652 Ciseaux 20

Le résultat que je souhaite avoir est le suivant après avoir saisi sur deux cellules les bornes des dates (ex. du 01/01 au 02/01):

Classement Produit Total
1 Stylo 70

Une idée comment faire ca?

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
Modifié par Vaucluse le 19/08/2016 à 17:57
Bonjour
à ajuster:

cellule X1 borne basse
cellule X2 borne haute
cellule X3 le produit
en X4
un tableau de A2 à D1000

=SOMMEPROD($A$2:$A$1000>=$X$1)*($A$2:$A$1000<=$X$2)*($C$2:$C$1000=$X$3)*($D$2:$D$1000)

ne pas inclure la ligne de titre dans les limites de champ

ou alors à partir de Excel 2007:

=SOMME.SI.ENS(D:D;A:A;">="&X1;A:A;"<="&X2;C:C;X3)

crdlmnt

La qualité de la réponse dépend surtout de la clarté de la question, merci!
1
momabchour Messages postés 40 Date d'inscription jeudi 18 août 2016 Statut Membre Dernière intervention 25 mai 2020
Modifié par momabchour le 19/08/2016 à 23:14
Bonsoir Vaucluse,

Je souhaite que la fonction (que je pense sera matricielle) de me donne à elle seule automatiquement le produit avec le plus de reliquats. donc je dois exclure le nom du produit de l'equation.

Une idée cmt faire ca?
0
luckydu43 Messages postés 3758 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 septembre 2024 922
Modifié par luckydu43 le 19/08/2016 à 18:02
Bonjour !

Ce qu'il vous faudrait en fait, ce serait une base de donnée, du genre MySQL... une requête SQL
SELECT article.libelle, commande.nb
FROM article, commande 
WHERE article.id = commande.idarticle
AND commande.date is between 01/01/2017 AND 02/01/2017

répondrait parfaitement à votre besoin ;-)

Autrement, en excel, mes compétences ne sont pas suffisantes. Je pense qu'il faudrait vous tourner vers les macros, ou alors utiliser la fonction RECHERCHEV...

Bonne journée !

Luc

EDITH : Totalement grilled by @Vaucluse :-)


Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
Modifié par via55 le 20/08/2016 à 03:40
Bonjour momabchour
Coucou Vaucluse ;-)

Pas besoin de chercher une formule, utilise le tableau croisé dynamique qu'Excel met à disposition, exemple :
http://www.cjoint.com/c/FHubMkJtUlE

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
0
momabchour Messages postés 40 Date d'inscription jeudi 18 août 2016 Statut Membre Dernière intervention 25 mai 2020
Modifié par momabchour le 20/08/2016 à 09:19
Bonjour via55

Je ne veux pas utiliser de TCD vu que c'est un tableau de bord customisé, je souhaite que le tableau ce met à jour tout seul, j'ai trouvé une solution mais elle rend mon classeur trop lent.

J'ai mis la liste des produits dans une autre feuille et j'ai utilisé les fonctions sommeprod() et somme.si.ens() pour calculer les nombres de lignes et qtés par produit, puis la fonction rang() pour avoir le rang de chaque produit (par rapport au nombre de lignes, pas qtés) puis sur le tableau de mon tableau de bord j'ai mis les classements (1, 2, 3 etc) et j'ai utilisé recherchev() pour chercher les rangs et avoir les noms des produits et les autres info. seul inconvénient c'est que mon classeur est devenu très lourd en termes de calcul.

Une idée comment faire cette procédure direct sur mon tableau de bord?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
20 août 2016 à 10:44
Re
je ne vois pas pour l(instant d'autres solutions par formule que d'utiliser la liste des produits avec SOMME.SI.ENS
mais on va chercher un peu...sans grand espoir, .à moins qu'un de nos spécialistes de VBA puisse résoudre le problème avec une macro.(ce n'est pas mon cas)

Evitez SOMME.PROD, ou alors limitez le bien aux hauteurs de plage utile, car le nombre de lignes avec ce code est directement à l'origine du poids du fichier
Pas de SOMMEPROD((AA=1) ... par exemple, mais SOMMEPROD((A1:A1000=1)
avec A:A sur excel à partir de 2007 la formule traite plus d'un million de lignes!

si vous devez aussi compter un nombre de lignes plutôt qu'un total de montants, utilisez de préférence NB.SI.ENS(champ 1;critère;champ 2;critère 2...)

crdlmnt
0
eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 7 235
20 août 2016 à 11:15
Bonjour,

Si tu préfères faire avec des sommeprod() il ne faut pas te plaindre que ce soit plus lent.
Le TCD conseillé par via est très optimisé, l'actualisation peut se faire lors de l'activation de la feuille. 1 ligne de code que tu auras en utilisant l'enregistreur de macro.
Aucun intérêt à faire autrement par macro.
eric
0