SUM所有在单独列中定义的类型的单元格?

时间:2013-11-12 23:22:38

标签: excel google-sheets excel-formula

我有一个电子表格,其数据集类似于:

Actual Monthly Expenditure  £0.00
Budgeted Expenditure        £200.00
Monthly Variance            -£200.00
Budget Transfers        
Actual Monthly Expenditure  £300.00
Budgeted Expenditure        £300.00
Monthly Variance            £0.00
Budget Transfers    
Actual Monthly Expenditure  £112.90
Budgeted Expenditure        £180.00
Monthly Variance            -£67.10
Budget Transfers    
Actual Monthly Expenditure  £1,174.80
Budgeted Expenditure        £1,174.80
Monthly Variance            £0.00
Budget Transfers    
Actual Monthly Expenditure  £0.00
Budgeted Expenditure        £30.00
Monthly Variance            -£30.00
Budget Transfers    

我需要一个功能来累计所有实际支出,并从预算支出中减去它。

有关如何执行此操作的任何指示?

我尝试查看DSUM函数,但无法找到完全符合我需要的示例(或者通过测试获得一个)。

3 个答案:

答案 0 :(得分:2)

使用SUMIF()。请参阅http://office.microsoft.com/en-us/excel-help/sumif-HP005209292.aspx

假设您的第一列是transferType,第二列是amount,那么您可以写

SUMIF(transferType,"Budgeted Expenditure",amount)
- SUMIF(transferType,"Actual Monthly Expenditure",amount)

答案 1 :(得分:1)

替代方案可能是使用SUMPRODUCT()函数,它也允许使用过滤器。

假设在您的工作表上

  • 命名范围TransferType指的是范围A1:A20和
  • 命名范围TransferAmounts指的是范围B1:B20。

然后,以下功能将取实际月支出和预算支出的差额:

=SUMPRODUCT(
             (
               (TransferTypes = "Actual Monthly Expenditure") - 
               (TransferTypes = "Budgeted Expenditure")
             ) * 
             (TransferAmounts)
           )

如果您不习惯使用命名范围,则以下内容将完全相同:

=SUMPRODUCT(
             (
               ($A$1:$A$20 = "Actual Monthly Expenditure") - 
               ($A$1:$A$20 = "Budgeted Expenditure")
             ) * 
             ($B$1:$B$20)
           )

如果发现使用SUMPRODUCT()比使用SUMIF()或SUMIFS()函数更直观,因为从函数中可以清楚地看到过滤器的工作原理。如果你没有达到SUMPRODUCT()的运作速度,那么请在Daniel Ferry的excellent article中阅读。

答案 2 :(得分:0)

对于你的问题,我会选择@pearpies解决方案,但考虑到你的数据的性质,我希望发现它在数据透视表格式中非常有用,除了你的问题之外,答案同样容易获得。

下面的PT不仅显示了请求的结果( - £297.10),还显示了其他汇总信息 - 并且很容易针对数据源的替代视图进行调整:

SO19942047 example