【问题标题】:Excel script/functions to sum columns for rows with matching values?Excel脚本/函数对具有匹配值的行的列求和?
【发布时间】:2015-07-17 06:31:52
【问题描述】:

我有一张如下所示的表格:

**Item Name           Quantity     Total**
Item A                   1           1
Item B                   8           
Item B                   4           
Item B                   47          59
Item C                   8           8
Item D                   3           
Item D                   19          22  

我想以某种自动方式获取每件商品的总数量,但每件商品都在多行中,下一列中列出了单独的数量。

目前我正在按项目名称排序,选择项目旁边的一个单元格,然后写“=sum”,然后选择范围。但是,此文档中有数百个项目,通常需要几个小时才能完成。

回顾一下: 每个项目存在于 1 行或多行中。每行都有项目名称和数量。对于每个项目名称,我需要匹配名称的所有行中所有数量值的总和。

【问题讨论】:

  • 你可以使用SUMIF()
  • 也许是时候看看EXCEL VBA,你可以用简单的vba宏做你想做的事。
  • 最好的方法是创建一个数据透视表。设置时间不到一分钟,每次添加额外数据时,您只需刷新即可。

标签: excel


【解决方案1】:

这正是 Pivot tables 的用途。您可以使用简单的向导以折叠的方式获取所有项目的总计。它不会像您的示例那样显示在 C 列中,但它可以轻松组织您的数据。

基本上无论你把桌子放在哪里都会显示

Item A : 1 
Item B : 59 

等等。

【讨论】:

    【解决方案2】:

    这应该可以解决问题!将此添加到工作表的其他位置并相应地更改范围。

           +--------+------------------------+ 
           | Totals |  Formula               |
           +--------+------------------------+ 
    A10 -->| Item A | =SUMIF(A2:A8,A10,B2:B8)|
    A11 -->| Item B | =SUMIF(A2:A8,A11,B2:B8)|
    A12 -->| Item C | =SUMIF(A2:A8,A12,B2:B8)|
    A13 -->| Item D | =SUMIF(A2:A8,A13,B2:B8)|
           +--------+------------------------+ 
    

    【讨论】:

    • 我认为这对于这种情况是不切实际的,因为文档中有数百个项目,就像问题中提到的那样。
    • 您不需要在公式中硬编码“项目 A”等 - 而是链接到第一列。 =SUMIF(A2:A8, A2, B2:B8)
    • 嗨蒂姆,我查看了 Sumif 来解决这个问题,并认为这是不切实际的,因为我找不到根据项目单元格中的名称自动更新引用的方法。你是说我可以把那个公式放到一个单元格中,把它拖到工作表上,每个框都会有与项目列匹配的所有项目的总和?
    • @Catma,我已经根据蒂姆的建议更新了答案。你是对的,你应该能够在之后拖动公式单元格
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    相关资源
    最近更新 更多