Excel 2003 for DSUM中的替代公式

时间:2012-07-26 16:09:54

标签: excel-2003 formulas

我正在使用Excel 2003并尝试查找各个条件的总和。我目前正在使用这个公式,它正在成功运作。

数据A1:G1776是数据库--- 数据C1 - 是我想要的总和的列---和 F4:F5是我设置要匹配的行的条件的列。

= DSUM(DATA $ A $ 1:!$ G $一七九九六,DATA $ C $ 1,$ F $ 4:F5)

我遇到的问题是文件大小超过5MB,这在您尝试通过电子邮件发送给其他人时非常重要。

有什么建议我可以如何复制该公式,同时减小文件大小并提高文档的速度?我不想使用数据透视表

克里斯

1 个答案:

答案 0 :(得分:0)

替换DSUM,您可以使用sumproduct公式:

=SUMPRODUCT((DATA!$C$2:$C$17996)*(DATA!$A$2:$A$17996="Boys")*(DATA!$B$2:$B17996>18))

上面的示例创建了一个C列的总数,其中包括以下行:列A是“男孩,B列大于18”。 该示例假定第1行是标题行。

为了加快计算速度,您可以使用VBA来计算单个表格。

用于启用计算的VBA:

Public Sub enableCalc(ParamArray sheetsInUse())
  Dim i As Integer
  For i = 0 To UBound(sheetsInUse) Step 1
      sheetsInUse(i).EnableCalculation = True
  Next i
End Sub

使用:enableCalc activeworkbook.Worksheets(“Sheet1”)调用 这将启用活动工作簿中的计算Sheet1

用于禁用工作簿中所有工作表的计算的VBA:

Public Sub finishedUse(wrkbook As Workbook)
Dim i As Integer
Dim wrkSheet As Worksheet
For Each wrkSheet In wrkbook.Worksheets
wrkSheet.EnableCalculation = False
Next wrkSheet
End Sub

使用:finishedUse activeworkbook调用 这将禁用活动工作簿中所有工作表的计算。

上述方法不是通过改变工具中的自动/手动计算来实现的 - >选项