Fusion de valeurs associées à des doublons avant suppression
Bonsoir,
Je vais tout d'abord expliquer ce que je cherche à faire très succinctement :
Admettons que j'aie une colonne avec des noms (colonne A), et une autre avec des valeurs (colonne B) du genre :
Thönnings 8
Herrmann 5
Kiel 4
(3 lignes ici, mais ce sera plutôt aux alentours de 250 dans mon tableau)
J'aimerais qu'en ajoutant une liste de noms (en colonne A) avec une valeur "1" (en colonne B) associée :
Thönnings 1
Fiedler 1
Thönnings 1
Hermann 1
Pouvoir regrouper dans le même tableau les "Thönnings" (suppression de doublon, pas un problème avec une macro), mais ce que j'aimerais vraiment savoir c'est si il y a une formule qui pourrait additionner automatiquement les valeurs sans que j'aie à le faire.
Pour le contexte, c'est un projet de championnat quasi-automatique sur excel, et inscrire les buteurs me prend la majeur partie de mon temps et reste la seule difficulté avant qu'il ne suffise que d'un bouton pour simuler une journée de match.
Merci d'avance !
Adeon.
BONJOUR
je n ai pas compris
Bref, on trouve la question un peu partout, mais j'aimerais aller au plus simple :
¤ Dans mon tableau y a une liste de joueurs dans une colonne A et dans la colonne B leur est associé leur nombre de but.
¤ Je compte grâce à une macro (en copiant collant dans mon tableau tout simplement) insérer dans mon tableau les buteurs d'un match par exemple (qui par conséquent ont déjà un total de but).
¤ Et ma question, c'est : quelle est la formule ou la manip' qui peut me permettre d'additionner le nombre de but en regroupant les lignes contenant un même joueur avant de supprimer les doublons.
Suis-je plus clair ? :p
Salut
peut etre vous etiez plus clair pour d autre mais moi je n ai encore pas compris
mais envoi un fihcier joint comme exemple de que vouler vous faire
Colonne A / Colonne B
Joueurs / Nb de buts
Initialement :
Thönnings / 0
Hermann / 0
Kiel / 0
On copie colle les buteurs :
On a donc par exemple :
Thönnings / 0
Hermann / 0
Kiel / 0
Thönnings / 1
Hermann / 1
Thönnings / 1
Thönnings / 1
(par exemple là, Thönnings inscrit 3 buts et Hermann 1, et je copie colle cela dans mon tableau.
Et moi c'est ça que je veux obtenir :
Thönnings / 3
Hermann / 1
Kiel / 0
Tadaa ! ..
¤ Regrouper les lignes
¤ Supprimer les doublons
¤ Si possible avec une simple macro
Je peux pas vraiment faire plus clair !
Je veux juste ne pas être obligé d'additionner moi-même par risque de me tromper de ligne ou dans les calculs et surtout que ça ne soit plus aussi fastidieux qu'auparavant.
Oui, ça pourrait marcher, mais ça ne me permettrait pas de supprimer au fur et à mesure.
Mais tu viens de me donner une idée qui pourrait le faire (même si franchement ça sera le bordel (je m'arrangerai pour y consacrer une feuille)).
Sachant que je vais faire des macros qui me permettront de simuler la journée de match que je souhaite simuler. (Genre un bouton 1, un bouton 2, un bouton 3, ... , un bouton n).
Je pourrais bien consacrer une colonne aux buteurs de chaque match de chaque journée, genre en colonne A & B, le match 1, en colonne C & D, le match 2, etc. Et après, oui, en utilisant NB.SI sur toute la plage de cellule susceptible de recueillir des valeurs et ainsi pouvoir trier après.
Merci Amir, je repasserai ici pour vous dire ce qu'il en est advenu !!
Bonsoir AMIR, Adeon, le forum
A tester :
Option Explicit
Sub test()
Dim a, i As Long, w()
a = Sheets("Feuil1").Range("a1").CurrentRegion.Value
ReDim w(1 To UBound(a, 2))
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For i = 2 To UBound(a, 1)
If Not .exists(a(i, 1)) Then
w(1) = a(i, 1): w(2) = a(i, 2)
.Item(a(i, 1)) = w
Else
w = .Item(a(i, 1))
w(2) = w(2) + a(i, 2)
.Item(a(i, 1)) = w
End If
Next
With Sheets("Feuil1").Range("h3").CurrentRegion
With .Offset(1, 1).Resize(.Rows.Count - 1, .Columns.Count - 1)
.ClearContents
End With
a = .Value
End With
For i = 2 To UBound(a, 1)
If .exists(a(i, 1)) Then
w = .Item(a(i, 1))
a(i, 2) = w(2)
End If
Next
End With
'restitution
Sheets("Feuil1").Range("h3").Resize(UBound(a, 1), UBound(a, 2)).Value = a
End Subklin89
Merci Clin89, je m’empresse de tester (si j'arrive à comprendre et à adapter) !
Bonjour le forum !!
Je vais noter vite fait la solution que j'ai fini à adopter pour ce problème :
Je rappelle ce que je voulais faire, j'avais une colonne avec 100 lignes et il y avait des valeurs qui apparaissaient "au hasard" et je voulais les transposer dans l'ordre sans les espaces vides entre chaque de cette façon :
Colonne A / Colonne B / Colonne C (... = espace vide)
0 / ... / Heikkinen
0 / ... / Sujic
0 / ... / Lehtonen
X / Heikkinen / Angel
0 / ... / ...
X / Sujic / ...
X / Lehtonen / ...
0 / ... / ...
0 / ... / ...
X / Angel / ...
Donc j'ai "simplement mis dans ma colonne C cette formule matricielle (à activer avec ctrl + Maj + Entrée) :
{=SI(LIGNES($43:43<=NB.SI(I$44:I$223;"X");INDEX(H$44:H$223;PETITE.VALEUR(SI(I$44:I$223="X";LIGNE(INDIRECT
("1:"&LIGNES(H$44:H$223))));LIGNES($43:43)));"")}
Bref, c'est plutôt compliqué (je ne serai d'ailleurs pas capable de le refaire à 0, je suis juste parti d'un exemple trouvé sur le Web et j'ai adapté les sélections à mon exemple) mais j'ai, au bout de 10 jours de travail, réussi à terminer mon projet, c'est-à-dire : Dans un championnat de foot virtuel, générer chaque journée grâce à 5 boutons en moins de 20 sec. contre 15 min auparavant.
Comment ça marche ?
Il suffit de rentrer dans le même ordre dans <Classement> et <Calendrier> les mêmes équipes, étant présentes dans l'onglet <Base de données>. Puis dans l'onglet <Calendrier> cliquer d'abord sur le bouton <GEN> puis sur le bouton <B&P>, puis <FOR> et <RES>, terminez par <TRI> et refaite cela dans le même ordre pour chaque journée :
Je vous invite à tester je trouve ça assez magique ! :p
* Enfin non, fichier trop volumineux (~ 1450 Ko)...