Cumuler résultat de lignes en doublons
Bonjour à tous ,
Je suis assez novices sur Excel et je rencontre des difficultés sur mon tableur, j'espère trouver de l'aide ici.
voila j'ai un tableau de valeurs et j'aimerais obtenir le même tableau en supprimant les lignes en doubles et en cumulant leur résultats, le nouveau tableau doit cumuler la colonne D pour les valeurs de B identique MAIS AUSSI les valeurs de E identiques (les valeurs, A , C, F sont forcément identiques mais doivent apparaître dans le tableau de résultats)
J'ai essayé SOMME.SI.ENS mais cela m'oblige a entrer manuellement une par une les critères B et E donc ce n'est plus automatique. Je ne connais ni les Macro ni VBA.
Je suis désespérée car j'ai des milliers de lignes a regrouper et je vais passer un temps fou si je dois les faire une par une.
Merci pour votre aide.
Résultat souhaité en automatique :
| Colonne A | Colonne B | Colonne C | Colonne D | Colonne E | Colonne F |
| FTTC | 00E19/ Daphné | Daphné | 1 | 20,00 | 59,00 |
| FTTC | 00E19/ Daphné | Daphné | 1 | 10,00 | 59,00 |
| FTTC | 00E19/ Daphné | Daphné | 1 | 20,00 | 59,00 |
| FTTC | 00E19/ Martine | Martine | 1 | 30,00 | 49,00 |
| FTTC | 00E19/ Martine | Martine | 1 | 10,00 | 49,00 |
| FTTC | 00E19/ Martine | Martine | 1 | 30,00 | 49,00 |
| FTTC | 00E19/ Elodie | Elodie | 1 | 15,00 | 60,00 |
| FTTC | 00E19/ Elodie | Elodie | 1 | 15,00 | 60,00 |
| FTTC | 00E19/ Elodie | Elodie | 1 | 15,00 | 60,00 |
| FTTC | 00E19/ Daphné | Daphné | 2 | 20,00 | 59,00 |
| FTTC | 00E19/ Daphné | Daphné | 1 | 10,00 | 59,00 |
| FTTC | 00E19/ Martine | Martine | 2 | 30,00 | 49,00 |
| FTTC | 00E19/ Martine | Martine | 1 | 10,00 | 49,00 |
| FTTC | 00E19/ Elodie | Elodie | 3 | 15,00 | 60,00 |
Bonjour flo28 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum et notamment :
- Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
Merci pour votre participation
Cordialement
Bonjour,
La version Excel manque sur ton profil. Je te propose néanmoins une rapide idée de ce que peut retourner l'éditeur Power Query (si version Excel = ou > à 2016).
Tu trouveras la requête dans l'onglet données, puis dans "requêtes et connexions". Etant novice sur Excel j'imagine que cela va te poser problème mais je t'invite à aller visiter quelques tutos qui pourrons t'aider sur la chose.
La requête n'est vraiment pas compliquée, elle ne se fait rien qu'avec le ruban de l'éditeur, pas besoin de connaitre le langage M.
Merci pour ta réponse.
J'utilise excel 2007 !!!!! donc pas sûre de pouvoir utiliser power querry même si j'ai l'impression que c'est exactement ce qu'il me fallait !
Est-ce qu'il existerai d'autres alternatives ? ou dois-je télécharger une version excel plus récente ?
bonjour
de façon rustique , avec un serieux doute pour des" milliers" de lignes
Bonjour le forum,
Avec un dictionnaire :
Sub test()
Dim a, w, e, s, i As Long, n As Long, dico As Object
Application.ScreenUpdating = False
Set dico = CreateObject("Scripting.Dictionary")
With Sheets("Feuil1")
a = .Cells(1).CurrentRegion
For i = 2 To UBound(a, 1)
If Not dico.exists(a(i, 2)) Then
Set dico(a(i, 2)) = CreateObject("Scripting.Dictionary")
End If
If Not dico(a(i, 2)).exists(a(i, 5)) Then
ReDim w(1 To 6)
w(1) = a(i, 1): w(2) = a(i, 2): w(3) = a(i, 3)
w(5) = a(i, 5): w(6) = a(i, 6)
Else
w = dico(a(i, 2))(a(i, 5))
End If
w(4) = w(4) + a(i, 4)
dico(a(i, 2))(a(i, 5)) = w
Next
End With
With Sheets.Add
n = 2
.Cells(1).Resize(, UBound(a, 2)) = Application.Index(a, 1, 0)
For Each e In dico
For Each s In dico(e)
.Cells(n, 1).Resize(, UBound(dico(e)(s))) = dico(e)(s)
n = n + 1
Next
Next
With .Cells(1).CurrentRegion
.Font.Name = "Calibri"
.Font.Size = 10
.Rows(1).BorderAround Weight:=2
.Rows(1).Interior.ColorIndex = 43
.VerticalAlignment = xlCenter
.BorderAround Weight:=2
.Borders(xlInsideVertical).Weight = 2
.Columns.AutoFit
End With
End With
Set dico = Nothing
Application.ScreenUpdating = True
End Subklin89