Somme des valeurs avec le même nom

46

J'ai un Google Sheets avec une longue liste de noms et de montants. Beaucoup de noms sont des doublons. Par exemple:

John  | 10
Bill  | 2
Susan | 3
Frank | 4
Sally | 10
John  | 2
Susan | 2
John  | 3

Existe-t-il un moyen automatisé de combiner toutes les valeurs afin d’obtenir une liste sans noms dupliqués et une somme unique de toutes les entrées de chaque personne?

Par exemple:

John  | 15
Bill  | 2
Susan | 5
Sally | 10
peter
la source

Réponses:

51

En supposant que les noms figurent en A1: A8, les montants en B1: B8, nous avons d’abord besoin d’une liste de noms unique en D1:

=UNIQUE(A1:A8)

Ensuite, utilisez la somme conditionnelle dans E1:

=SUMIF(A$1:A$8,D1,B$1:B$8)

S'il vous plaît noter le $préfixe avant le numéro de cellule. Cela conservera les mêmes plages lorsque nous copierons le contenu des cellules (sélectionnez les cellules E1: E8 et appuyez sur Ctrl+ D).

Zmogas
la source
2
Génial! Je veux juste ajouter que dans certains endroits, vous devez remplacer la virgule par un point-virgule, par exemple = SUMIF (A $ 1: A $ 8; D1; B $ 1: B $ 8).
JLund le
Merci d'avoir répondu. Upvote. Comment la triez-vous par ordre décroissant? Dans cet exemple, John viendrait en premier, puis Sally, Susan et enfin Bill.
Vaddadi Kartick
Simple :) = TRIER (A2: B92; FAUX)
Zmogas
2
ne fonctionne pas pour moi
Gilbou
24

Si vous utilisez la fonction de requête, vous n'avez pas à vous soucier de la liste grandissante et de ne pas avoir copié la formule de somme assez loin.

Si les noms sont dans A: A et les montants dans B: B, dans D1, entrez:

=QUERY(A:B, "select A, sum(B) group by A")

Il y a une réponse beaucoup plus complète ici , avec même des captures d'écran.

SlimPickens
la source
1
Et si vous aviez une ligne d'en-tête? Auriez-vous alors besoin de connaître des index de début et de fin de ligne spécifiques? Aha, on dirait que je peux spécifier le nombre de lignes d'en-tête ... support.google.com/docs/answer/3093343?hl=fr
qix
C'est la méthode la plus propre, je pense. Notez que si vous ne souhaitez pas interroger l'intégralité de la feuille de calcul (par exemple, si vous avez des données non liées ci-dessous), vous pouvez spécifier une plage telle que A2: B28). J'aime également utiliser la fonction CONCATENATE pour combiner plusieurs colonnes de mon feuilles de calcul dans une ligne pour le regroupement - comme Nom, Prénom.
Evan Donovan
7

Je vais également tenter ma chance: je préfère utiliser la fonction de filtrage. L'utilisation de la sélection de colonne permet à la table de s'agrandir automatiquement lors de l'ajout de "nouvelles" données:

FILTER(B:B;A:A=D2)

Si vous rencontrez un en-tête, vous pouvez le modifier en conséquence:

FILTER($B$2:B;$A$2:A=D2)

Faire la somme suivante est facile:

SUM(FILTER($B$2:B;$A$2:A=D2))

Voir exemple: Fichier que j'ai préparé avec exemple

Jacob Jan Tuinstra
la source
6

Utilisez le rapport de tableau croisé dynamique ... sous le Datamenu.

Vous devrez vous assurer que la première ligne a des noms de champs.

mhoran_psprep
la source
C'est en fait plus facile que les réponses à la formule.
Dannid
Oui, c'est la bonne réponse. Oubliez les formules pour une telle tâche de regroupement.
giorgio79
1

Utilisez la formule suivante!

Entête: =UNIQUE(A:A)

Valeur: =SUMIF(A:A,UNIQUE(A:A),B:B)

Kowser
la source