Fonction Tri

Bonjour à tous, j'espere que je poste au bon endroit.

J'ai besoin de votre aide pour un petit probleme que je rencontre sur un fichier Excel, je vais essayer de vous expliquer. Je travaille dans la logistique et je dois réaliser un tableau l'on entre des données du type : tel produit en telle quantité vaut tel montant (multiplié par le nombre de produits existants bien sur), et avec la subtilité que le meme produit peut se retrouver plusiers fois dans la liste. -j'espere que c'est a peu pres clair-. Et bien j'aimerais trouver comment trier ces données pour que sur un autre onglet, on retrouve un type de produit par ligne, avec le total quantité et prix pour chaque categorie de produit.

Le probleme est que tout cela doit se faire autmatiquement, donc pas possible de passer par Données/Tri comme je fais d'habitude.

Bon j'espere avoir été assez clair et que quelqu'un ici connaitra la solution à mon probleme, si solution il ya.

Bonjour,

Peux-tu joindre ton fichier ?

Je pense qu'un SOMME.SI correspond à ta demande.

A voir.

Amicalement

Nad

Bonjour, salut Dan,

Soit le bienvenu sur le forum.

Il faut faire deux choses :

Lister sur l'autre feuille les produits sans doublons, mais il est plus facile de créer d'abord cette liste complète sur la deuxième feuille et de saisir le nom des produits sur la première feuille au moyen d'une liste déroulante.

Ensuite la fonction SOMMEPROD ou SOMME.SI permettra de récupérer les totaux par produit.

Si tu mets un petit exemple de ce que tu as et de ce que tu souhaiterais obtenir en pièce jointe (voir au haut de cette page Joindre un fichier) ce sera plus facile pour te l'expliquer en détail.

N'oublie pas de préciser le nombre de produits différents qui tu pourrais avoir.

bon voila mon fichier, j'espere que ca vous eclaircira un peu

https://www.excel-pratique.com/~files/doc/ESSAI.xls.zip

pour ce qui concerne le nombre de produits, oin va dire une vingtaine de produits differents maxi, mais qui peuvent representer en tout 5 fois plus de lignes.

Et pour ce qui est des listes deroulantes, j'y est bien pensé mais le fait est que ce n'est pas tres simple pour une quantité importante de données, et que le but de l'opération soit que tout soit automatisé car ce document doit servir à plusieurs personnes dont certaines aux connaissances excel limitées, donc le moins de manip serait le mieux.

En tout cas, merci deja de vos conseils.

Re,

Un essai en pièce jointe.

https://www.excel-pratique.com/~files/doc/ESSAIV2.xls

Vois si cela te convient.

Dans l'affirmative, je t'explique ce que tu ne comprends pas

oui, a premiere vue ca me convient, pour le regroupement des produits par categorie, par contre au niveau des sommes j'ai une erreur 511 chez moi (impr ecran : https://www.excel-pratique.com/~files/doc/Capture.png.zip)

En tout cas je ne comprends absolument pas tes formules (alors que je croyais avoir atteint un bon niveau en Excel... sic), ni certaines syntaxes du genre C$1 (???)

Si tu avais un peu de temps pour m'expliquer ton raisonnement et les fonctions utilisées, je t'en serais tres reconnaissant, car copier comme ca n'a pas grand interet sur le moyen terme.

Merci déja pour ton aide, je sens qu'on s'approche !

Avec une capture d'écran, je ne peux pas t'aider.

Chez moi cela fonctionne.

Ce n'est pas un problème de séparateur décimal ni de macros complémentaires, puisque absentes sous le fichier.

Ne serais-tu pas sur Mac ou XL2007 ?

Attendons qu'un autre forumeur vérifie ce que cela donne chez lui en ouvrant mon fichier.

D'abord résoudre ce problème, puis on passera aux explications.

Edition :

J'ai déjà trouvé.

En F2 la formule est :

=SOMMEPROD((libellé=$B2)*(type=$C2)*(compo=$D2)*(bt=$E2)*quant)

Il me semble que bt a été remplacé par b:

ha ok, effectivement je suis sous linux donc ca doit venir du passage entre excel et open office

Donc ça marche chez toi ?

Comme il se fait tard (la soupe est chaude), je te donne l'explication demain.

arf, j'ai parlé trop tot, en fait ca marche pas chez moi, c'est bien mis bt et non b.

Par contre je ne vois pas du tout a quoi fait reference ?

Bonjour,

La première chose à régler est de faire fonctionner ce fichier chez toi, puisque chez moi il ne pose pas problème.

Quelqu'un d'autre pourrait-il confirmer que cela fonctionne chez lui ?

Remets ton fichier en pièce jointe, peut-être trouvera-t-on plus facilement le problème.

Ce n'est pas ton fichier original que je te demande, celui-là je l'ai, mais bien celui qui te pose problème, c'est à dire le mien que tu as enregistré chez toi.

... effectivement, ca parait plus logique, dsl j'ai buggé

https://www.excel-pratique.com/~files/doc/ESSAIV2.xls.zip

Aucun problème, ce fichier fonctionne correctement chez moi.

Donc ce n'est pas un problème de transfert.

Je suis sous Vista et XL2003 FR.

J'ai essayé sous Windows XP, pas de problème.

Je n'ai pas Linux.

Pourrais-tu vérifier si sous le menu Insertion / Nom / Définir tu as bien les noms repris sous la formule qui pose problème (libellé, type, bt, ...) ?

En dehors de cela je ne vois vraiment pas.

J'ai verifié, les noms sont corrects et correspondent à ceux utilisés dans les cellules.

De toutes facons j'ai aussi windows donc je l'essayerais sous XL2K7 et on verra ce que ca donne.. si ca marche chez toi y'a pas de raison, non ?

Et puis ma version d'open office est pas super à jour, vu que ma version de linux de l'est pas non plus... ca doit venir d'un pb de compatibilté.

Bon merci pour la soluce, je te dirais si ca fonctionne sous windows, et si tu as le temps, tu m'expliqueras comment tu as fait car c'est un truc que je ne connaissais pas du tout, et j'avoue que ca m'interesse : je vois deja divers projets dans lesquels ce genre de manip me serait utile !

Merci pr ton temps, je te tiens au courant.

Ok, ca marche sur Excel 2003 et 2007, c'est donc juste un pb de portabilité sur la version linux.

pourrais tu m'en dire plus sur la facon dont tu as procédé ?

Bonjour,

Feuille Départ.

Une colonne supplémentaire A a été créée, avec la formule :

En A2 : =SI(SOMMEPROD((D$2:D2=D2)*(E$2:E2=E2)*(F$2:F2=F2)*(G$2:G2=G2))=1;LIGNE();"")

La fonction SOMMEPROD compte le nombre de lignes qui sont égales ou supérieures et dont les libellés sont identiques à la ligne testée.

D$2 ne s'incrémente pas en le copiant vers le bas (reste donc toujours D$2), tandis que D2 s'incrémente bien et devient D3, D4, ...

Si le nombre de lignes avec libellés identiques est égal à 1 (donc pas de doublons), la formule renvoie le numéro de la ligne, sinon rien.

Ainsi dans la colonne A on obtient les numéros de lignes des premières occurences de libellés identiques, en d'autre mots on ne renvoie pas les numéros de ligne des doublons.

Dans la formule LIGNE() peut être remplacé par =MAX(A$1:A1)+1, avec un autre type de numérotation, mais cela ne modofie en rien la suite de la procédure.

Feuille Résultat souhaité

En B2 : =SI(NBVAL(B$1:B1)>NB(Depart!$A:$A);"";RECHERCHEV(PETITE.VALEUR(Depart!$A:$A;NBVAL(B$1:B1));Depart!$A:D;COLONNE()+2;0))

NBVAL(B$1:B1)>NB(Depart!$A:$A) compare le nombre de valeurs texte de la colonne B (situés au-dessus de la cellule contenant le formule) et le nombre de valeurs numériques de la colonne A de la feuille Départ.

Si le nombre est supérieur, la formule ne renvoie rien, sinon elle aurait renvoyé un message d'erreur.

RECHERCHEV(PETITE.VALEUR(Depart!$A:$A;NBVAL(B$1:B1));Depart!$A:D;COLONNE()+2;0))

La formule recherche la xème petite valeur dans le la colonne A feuille Départ.

Elle droit retrouver succésivement la 1ère plus petite, puis la seconde, ...

En comptant le nombre de valeurs texte situés au-desus de la formume en colonne B on obtient succésivement 1, 2, 3, ...

La formule demande de renvoyer la valeur qui se trouve dans la plage A:D et dans la 4ème colonne.

Pour que ce 4 s'incrémente en copiant la formule vers le droite, on se réfère au numéro de la colonne.

La colonne B vaut 2, donc la 4 vaut colonne()+2

Cette formule peut ainsi être copiée vers le bas et vers la droite.

En E2 : =SOMMEPROD((libellé=$B2)*(type=$C2)*(compo=$D2)*(bt=$E2)*quant)

Les colonnes B, C, D et E de la feuille Départ on été nommées (voir menu Insertion / Nom / Définir).

La fonction SOMMEPROD additionne les quantités des lignes qui répondent aux conditions de la formule.

Cette formule peut également être copiée vers le bas et vers la droite.

Je ne sais pas si j'ai été clair, mais si il y a encore un problème, n'hésite pas.

Suppresion du message : en double !

OK, t'inquiete c'est plutot clair, avec un peu de pratique ca devrait rentrer !

Merci de ton aide sur ce sujet et à la prochaine sur ce forum.

Rechercher des sujets similaires à "fonction tri"