在Excel中求重复项之和

4
我有一个长长的产品名称和编号列表,我想把所有重复的条目合并,并将它们的数量相加。所以如果我有两个关于小部件X的条目,每个条目都有3个产品,那么我希望将它们合并为一个小部件X的条目,并显示6个产品。
我已经对列表进行了排序,并为每个产品求和,但我只是使用了一个sum函数,我觉得必须有一个公式,使用IF语句来检测相等的条目,然后汇总它们各自的数量行,但我想不出来。
我的目标是:如果(A列中的任何字段=3792,则汇总C列中与其相关的所有数量字段)
有人有什么想法吗?
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    2
3792    Widget A    1
3805    Widget B    1
3805    Widget B    1
3806    Widget C    8
3823    Widget D    895
3823    Widget D    1
3823    Widget D    20
3892    Widget E    2
3892    Widget E    1
3892    Widget E    1

@Stewbob:我认为它在正确的位置。这与公式有关,而公式是某种编码。 - Atmocreations
6个回答

4
使用sumif函数。参见这篇博客进行解释。
假设值从A1开始,将这个函数粘贴到D1,并复制到D1-D16,以获取每个字段的总和(当然可能有重复)。
=SUMIF(A$1:A$16,A1,C$1:C$16)

谢谢Rich,我刚刚看了第一个回答,如果可以的话,我也会接受你的答案。 - Niall
其实我的回答比第二名快了整整13秒,不过没关系。 - Rich Seller
哦,对了,第二个答案肯定被投票赞成了,因为那只是我看到的第一个答案。 - Niall

4

既然你已经将列表排序,我建议使用内置的小计功能而不是公式。选择所有数据,然后转到“数据”>“小计”,然后以产品变化为基础进行设置。

另一个选项是创建透视表来汇总项目。我非常支持将摘要和数据分开。


3

Excel的SUMIF()函数可能会帮助您完成此操作。

如描述的那样,其语法为

SUMIF(range, criteria, sum_range)

搜索range中与criteria匹配的字段,并在相应的索引处对sum_range中的值求和。

您可能希望为每个数字/搜索条件创建一个矩阵以进行总结和比较...

另一种方法:

对于某个列(我们以C列为例),创建一个临时列并将1作为值添加到每行。

例如,在“Sum A:”列中输入以下公式:

=IF($A2=D$1,1,0)

在这里,D1是包含数字3792的单元格(在顶部),而C2中的2是公式所在的当前行。

您只需将其向右拖动并向下即可。

这将是结果:

A       B           C         D         E         F         G
                    3792      3805      3806      3823      3892
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3792    Widget A    1
3805    Widget B              1
3805    Widget B              1
3806    Widget C                       1
3823    Widget D                                  1
3823    Widget D                                  1
3823    Widget D                                  1
3892    Widget E                                            1
3892    Widget E                                            1
3892    Widget E                                            1

SUM:                7         2        1          3         3

您只需在末尾进行简单的加总,即可得到结果。如果应添加另一个数字,则只需添加包含相应值的另一列,然后在IF公式中进行替换即可。
您可能希望更进一步自动化,可以使用HLOOKUP()函数来查找顶部的小部件号码。
此致敬礼。

我有这个公式 =SUMIF(A:A,3792,C:C),它会为在条件字段中输入的每个产品代码进行求和。我将研究矩阵,看看是否可以制作一个完全自动化的列表。非常感谢你的出色回答。 - Niall
不是指Excel矩阵。我已经编辑了我的回复以澄清。 - Atmocreations

0

原帖是7年前的,但这里还是提供我的方法,稍微有点粗暴。

我将“列A”中的所有内容复制到一个新工作表(或者右侧或其他地方)。然后,我突出显示了复制的数据集并删除了重复项,留下了一个仅包含“列A”值单个实例的新列表。我们称这个新数据集为“列D”。然后让我们称总计列为“列E”。

接着,在“列E”中使用SUMPRODUCT与SUMIF结合使用,得到以下公式:

列E的值=SUMPRODUCT(SUMIF(原始列A范围从列D中查询的查找值原始列C范围))

这将对所有实例求和并输出总计。

显然,这种方法的问题在于结果不会自动更新以包括“列A”的新实例,但如果您有一个现有的数据集需要提取,这可能是一个快速解决方案。

JD


0

Excel可以使用数据选项卡中的合并工具自动处理此问题。

只需创建一个新工作表,然后引用包含计数的单元格范围,勾选左侧列复选框,它就会给您提供一个独特的合并计数。


0
我处理重复项的方法是:
假设你有这样一个东西:
    A      B        D
    France Apples   15
    Spain  Potatoes 15
    France Apples   5
    Spain  Potatoes 1

我会在D列中执行:

    =A2&"-"&B2

然后将列D复制到列E并删除重复项。

在列F中:

    =SUMPRODUCT((D$2:D$5=E2)*C$2:C$5)

这样你应该在E列中拥有:

    D               E 
    France-Apples   20
    Spain-Potatoes  16

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接