XL 2016 Regrouper plusieurs lignes sur une seule en fonction d'un code

tpl

XLDnaute Nouveau
Bonjour tout le monde
Je sollicite votre aide pour le traitement suivant (j'ai déjà perdu des heures à travailler manuellement !!)
* j'ai une liste d'articles avec un code et un montant
* parfois ces articles se répètent mais avec d'autres montants
* comment les sommer et regrouper que sur seule ligne ?
J'ai détaillé dans le fichier joint
Merci d'avance pour votre aide
PS : ne connaissant rien à la macro (si, si..) j'aurais souhaité une solution par fonction
 

Pièces jointes

  • Regroupement.xlsx
    29.3 KB · Affichages: 20

tpl

XLDnaute Nouveau
Génial ! Merci beaucoup pour votre aide
Pour la suite, j'ai un autre problème
J'ai donc mis la formule et çà fonctionne impeccable (onglet "avec formule")
Après j'utilise ces résultats pour les amener dans un autre fichier. Or ici l'article ne figure qu'une fois alors que de l'autre côté il est sur plusieurs lignes
Du coup la recherche = vide (cf onglet "nouv prob") ==> lignes en rose
Merci encore pour votre aide
 

Pièces jointes

  • Regroupement.xlsx
    85.8 KB · Affichages: 8

R@chid

XLDnaute Barbatruc
Bonsoir,
en B2 :
VB:
=SIERREUR(INDEX('avec formule'!E$5:E$516;EQUIV(A2;'avec formule'!A$5:A$516;0)+NB.SI('avec formule'!E$5:E$516;A2)-1);"")
@ tirer vers le bas

La fonction RECHERCHEV() ne renvoie que la première valeur trouvée, alors que s'il des doublons, le montant apparait avec la dernière occurrence.

Cordialement
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je pense qu'il y a une petite modification à faire sur la formule de @rachid ;)
"NB.SI('avec formule'!E$5:E$516;A3)" mettre "A$5:A$516"

Autrement il y a aussi

VB:
=SOMMEPROD(('avec formule'!$E$5:$E$516<>"")*('avec formule'!$A$5:$A$516='nouv prob'!$M2);('avec formule'!$E$5:$E$516))
Attention, les doubles dans la colonne "A" affectent le résultat en "B1"

JHA
 

Pièces jointes

  • Regroupement (1).xlsx
    100.8 KB · Affichages: 4

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
Salut JHA,
Je pense qu'il y a une petite modification à faire sur la formule de @rachid ;)
"NB.SI('avec formule'!E$5:E$516;A3)" mettre "A$5:A$516"

Merci de me l'avoir signalé, j'ai pas fait attention à cette grave erreur.

Merci

VB:
=SIERREUR(INDEX('avec formule'!E$5:E$516;EQUIV(A2;'avec formule'!A$5:A$516;0)+NB.SI('avec formule'!A$5:A$516;A2)-1);"")

Sinon, SOMMEPROD() comme la tienne ou bien SOMME.SI() feront l'affaire si jamais les données ne sont pas triées.


Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG