Сумма значений с тем же именем

45

У меня есть Google Sheets с длинным списком имен и сумм. Многие из имен являются дубликатами. Например:

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

Есть ли какой-либо автоматизированный способ объединить все значения, чтобы я получил список без повторяющихся имен и единой суммы всех записей каждого человека?

Например:

John  | 15
Bill  | 2
Susan | 5
Sally | 10
Питер
источник

Ответы:

51

Предполагая, что имена в A1: A8, суммы в B1: B8, сначала нам нужен уникальный список имен в D1:

=UNIQUE(A1:A8)

Затем используйте условную сумму в E1:

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

Пожалуйста, обратите внимание на $префикс перед номером ячейки. Это позволит сохранить те же диапазоны, когда мы копируем содержимое ячейки вниз (выделите ячейки E1: E8 и нажмите Ctrl+ D).

Zmogas
источник
2
Большой! Просто хочу добавить, что в некоторых локалях вам нужно заменить запятую на точку с запятой, т.е. = SUMIF (A $ 1: A $ 8; D1; B $ 1: B $ 8).
JLund
Спасибо за ответ. Upvoted. Как вы сортируете его в порядке убывания по сумме? В этом примере сначала будут Джон, затем Салли, Сьюзен и, наконец, Билл.
Ваддади Картик
Простой :) = SORT (A2: B92; FALSE)
Zmogas
2
не работает для меня
Гилбу
23

Если вы используете функцию запроса, вам не нужно беспокоиться о том, что список будет расти и не скопировать формулу суммы достаточно далеко.

Если имена указаны в A: A, а суммы в B: B, то в D1 введите:

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

Существует гораздо более тщательный ответ здесь , скриншоты даже.

SlimPickens
источник
1
Что если у вас есть строка заголовка? Нужно ли вам знать конкретные индексы начального и конечного рядов? Ага, похоже, я могу указать количество строк заголовка ... support.google.com/docs/answer/3093343?hl=ru
qix
Это самый чистый метод, я думаю. Обратите внимание, что если вы не хотите запрашивать всю электронную таблицу (например, если у вас есть несвязанные данные ниже), вы можете указать диапазон, такой как A2: B28). Также мне нравится использовать функцию CONCATENATE для объединения нескольких столбцов из моего электронные таблицы в одну строку для группировки - как Фамилия, Имя.
Эван Донован
7

Я также расскажу об этом: я предпочитаю использовать функцию фильтра. Использование выбора столбцов позволяет автоматически увеличивать таблицу при добавлении «новых» данных:

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

Если у вас есть заголовок, вы можете изменить его соответствующим образом:

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

Сделать последующее суммирование легко:

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

Смотрите пример: файл, который я подготовил с примером

Джейкоб Ян Туинстра
источник
6

Используйте отчет сводной таблицы ... под Dataменю.

Вам нужно убедиться, что в первой строке есть имена полей.

mhoran_psprep
источник
Это на самом деле проще, чем формула ответов.
Даннид
Да, это правильный ответ. Забудьте формулы для такой задачи группировки.
giorgio79
1

Используйте следующую формулу!

Заголовок: =UNIQUE(A:A)

Стоимость: =SUMIF(A:A,UNIQUE(A:A),B:B)

Kowser
источник