【发布时间】:2013-02-26 01:48:43
【问题描述】:
我有一本工作簿可以对我的开支做“智能”图表。它已经运行了一年,现在有很多图表和费用。现在,每当我更改任何内容或打开工作簿时,Excel 都会引发资源不足错误。问题是,我有 很多 资源,而且几乎没有使用任何资源。
Win8 64bit w/ 8 core CPU and 32GB of ram
Office 2013 64bit
我有 2 张工作表,第一个名为 Expenses 的工作表有 3 列 [Date,Description,Amount] 和大约 1500 行数据。第二张表有很多(大约 500 个)公式,它们都是相同的,旨在“总结日期 X 和 Y 之间的所有费用,其中描述匹配-一些针-”。我的公式是这样的:
=
ABS(
SUMPRODUCT(
--(Expenses!A:A >= DATE(2011,12,1)),
--(Expenses!A:A < DATE(2012,1,1)),
--(ISNUMBER(FIND(C50,Expenses!B:B))),
Expenses!C:C
)
)
我可以给 Excel 更多资源吗? (我很高兴它使用了我所有的内存,并占用了我的 CPU 几分钟)。
有没有更有效的方法可以做这个公式?
我知道这个公式正在创建一个大网格并用它来掩盖我的费用清单,并且必须为每个公式创建这个网格。我应该创建一个宏来更有效地执行此操作吗?如果我有一个宏,我想以某种方式从单元格中调用它,例如
=sumExpenses(<startDate>, <endDate>, <needle>)
这可能吗?
谢谢。
【问题讨论】:
-
单个对象可能变得太大。语言(例如 .NET)对单个对象的大小有大小限制。
-
我想。我希望其他用户的工作簿比我大得多、复杂得多。我很惊讶我已经遇到了这么小的数据集的问题。
-
这是一个漂亮的漂亮的 excel 弹出错误还是一个愤怒的 Windows 错误?
-
--在sumproduct中的数组之前做了什么?从未真正使用过它,也无法弄清楚它的用途。 -
(1)
SUMIFS比SUMPRODUCT更有效 (2)如果工作簿损坏,我会尝试“重生”文件,方法是右键单击工作表选项卡,“移动或复制”,然后选择新书(3)尝试将公式的范围缩小到实际使用的行
标签: excel excel-2013 vba