【问题标题】:Summing a variable range对变量范围求和
【发布时间】:2019-02-05 15:34:42
【问题描述】:

我需要弄清楚如何根据其他列的标准计算长度变化的计数。我正在合并来自多个电子表格的结果。我需要将 A 列和 B 列中的重复项进行分组,然后将 C 列中的计数加在一起以获得两者的总数,并且总数需要反映在分组的最后一行。来源示例:

Building#     Room#   Count    
1350          210      4    
1350          210      6    
1350          210      2    
1350          100      3    
1352          105      7    
1352          105      3    
1352          201      10

我需要得到的结果如下所示:

Building#     Room#   Count    Total    
1350          210      4    
1350          210      6    
1350          210      2        12    
1350          100      3         3    
1352          105      7    
1352          105      3        10    
1352          201      10       10

【问题讨论】:

  • 如果您手动排序,那么一个简单的公式将为您提供值。

标签: excel vba excel-formula sum sumifs


【解决方案1】:

IN D2 并下拉:

=IF(OR(A2<>A3,B2<>B3),SUM($C$2:C2)-SUM($D$1:D1),"")

【讨论】:

    【解决方案2】:

    在D2中使用这个公式并将其拉下:

    =IF(COUNTIFS(A3:$A$1048576,A2,B3:$B$1048576,B2)=0,SUMIFS(C:C,A:A,A:A,B:B,B:B),"")
    

    【讨论】:

    • 你我的组合可能是最短的:=IF(OR(A2&lt;&gt;A3,B2&lt;&gt;B3),SUMIFS(C:C,A:A,A2,B:B,B2),"")
    • @ScottCraner 是的,当然,如果我们假设数据已排序。我假设未排序的数据。
    • 我正在尝试使用 VBA 代码将其放入宏中,这仍然适用于具有 80,000 行且某些排序组合可能多达 200 个实例的工作簿吗?我不知道分组将在哪里开始和停止。
    • @BonnieZ 我想你误解了这个网站的运作方式。这不是代码编写服务。如果您在 VBA 中需要它,您将需要自己编写该代码。但我建议使用公式(它适用于许多行,可能需要一些时间来计算,但它会起作用),然后复制总列并将其作为值粘贴到同一位置(将公式转换为值)。然后按总列过滤以仅获取值为 &gt;0 的行(在总列中)并将过滤后的数据复制/粘贴到新工作表中。完成。
    • 抱歉,我不打算将其视为代码编写服务,我只是不确定如何将代码转换为 VBA 需要的 RC 格式,但没有意识到如果我使用记录宏选项,它会将字母/数字单元格引用更改为公式中的 RC 引用。感谢您的帮助,公式运行良好。
    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2017-12-08
    相关资源
    最近更新 更多