0

我正在使用 Excel 2003 并试图找到单个标准的总数。我目前正在使用这个公式,它运行成功。

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

=DSUM(数据!$A$1:$G$17996,数据!$C$1,$F$4:F5)

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

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

4

1 回答 1

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 这将禁用活动工作簿中所有工作表的计算。

上述方法不受更改工具中的自动/手动计算的影响 --> 选项

于 2012-07-30T12:07:06.260 回答