我有一个包含大量名称和金额的Google表格。许多名称是重复的。例如:

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


是否有任何自动化的方法来组合所有值,所以我得到一个没有任何重复名称的列表,并且每个人的所有条目的总和为单个?

例如:

John  | 15
Bill  | 2
Susan | 5
Sally | 10


#1 楼

假设名称在A1:A8中,金额在B1:B8中,首先我们需要在D1中使用唯一的名称列表:

=UNIQUE(A1:A8)


然后在E1中使用条件和:

=SUMIF(A:A,D1,B:B)


请注意单元格编号前的$前缀。当我们向下复制单元格内容时,这将保持相同的范围(选择单元格E1:E8并按Ctrl + D)。

评论


大!只是想补充一点,在某些语言环境中,您需要用半冒号替换逗号,即= SUMIF(A $ 1:A $ 8; D1; B $ 1:B $ 8)。

– JLund
15年1月17日在12:26

感谢你的回答。已投票。如何按数量降序排序?在此示例中,John首先出现,然后是Sally,Susan,最后是Bill。

– Kartick Vaddadi
16年5月4日在16:29

简单:) = SORT(A2:B92; FALSE)

– Zmogas
16年5月6日9:00



不为我工作

–Gilbou
16年7月7日在15:17

#2 楼

如果使用查询功能,则不必担心列表会增加,也不必担心将求和公式复制得不够充分。

如果名称在A:A中,金额在B:B中,则在D1中输入:

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


还有更多内容完整的答案,甚至连屏幕截图。

评论


如果您有标题行怎么办?那么,您是否需要知道特定的开始和结束行索引?啊哈,看来我可以指定标题行的数量... support.google.com/docs/answer/3093343?hl=zh-CN

– qix
16-4-12在7:18



我认为这是最干净的方法。请注意,如果您不想查询整个电子表格(例如,如果下面有不相关的数据),则可以指定A2:B28之类的范围。此外,我喜欢使用CONCATENATE函数合并我电子表格分成一行进行分组-例如“姓氏”,“名字”。

–埃文·多诺万(Evan Donovan)
19年8月6日在2:45

#3 楼

我也将对此进行介绍:我更喜欢使用过滤器功能。使用列选择,允许表在添加“新”数据时自动增长:

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


如果有标题,则可以相应地对其进行更改:

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


进行子序列求和很容易: />

评论


如何使该公式自动扩展到工作表底部?

– Borisdiakur
20-05-21在12:41

#4 楼

使用“ Data”菜单下的“数据透视表报表...”。

您需要确保第一行具有字段名称。

评论


实际上,这比公式答案要容易。

–丹妮德
18年8月3日在18:20

是的,这是正确的答案。忘记用于此类分组任务的公式。

–giorgio79
19年7月1日在11:29

#5 楼

请使用以下公式!

标题:=UNIQUE(A:A)

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