Excel 公式在 x 行后停止工作

Excel formula stop working after x number of rows

Excel 公式在 x 行后停止工作

4 年前发布了一个类似的问题。有两个答案。我已经审查了两者。第一反应很好,但这不是我的问题的原因。第二个答案是一个声明,回答的人有同样的问题,他或她做了什么来解决这个问题,这在我的情况下不起作用。没有解释为什么会出现问题。

这是我的问题。我正在使用以下公式:

IF(MONTH(MDB.xlsx!Date)=7,SUMIFS(MDB.xlsx!_910,MDB.xlsx!Activity,"MGRINC",MDB.xlsx!AcctNum,$Y202),0)

MDB 是一个主数据库。它目前有 214 行,但会大幅增长到大约 5000 行。 MDB 中的命名范围当前定义为第 1 行到第 500 行。上面的公式在电子表格中,大约有 300 行。该公式在第 201 行工作正常。从 202 开始,它只有 returns 个零。

这是我所做的:

这似乎是某种内存问题,但我不明白为什么。我已经构建了更大、更复杂的电子表格,其中一些需要几分钟才能毫无问题地计算出来。 有什么想法吗?

提取 Sumif 中的月份将不起作用。您可以添加两个条件,一个测试日期是 greater/equal 到 7 月 1 日,第二个测试日期是 smaller/equal 到 7 月 31 日。

=SUMIFS(MDB.xlsx!_904,MDB.xlsx!Date,">="&date(2020,7,1),MDB.xlsx!Date,"<="&date(2020,7,31),MDB.xlsx!Activity,"MGRINC",MDB.xlsx!AcctNum,$Y202)

或者,您可以在源数据中添加一个包含月份的列,然后测试该月份的编号

或者,您可以更改公式以使用 SumProduct 而不是 Sumif,将月份过滤器合并到 SumProduct 参数中,如下所示:

=Sumproduct((MONTH(MDB.xlsx!Date)=7),--(MDB.xlsx!Activity="MGRINC"),--(MDB.xlsx!AcctNum=$Y202),MDB.xlsx!_910)

公式仅测试月数,忽略年份,因此如果您的数据跨越多年,您可能需要添加一个参数来检查年份。

请注意,所有这些公式都是常规公式,不需要数组输入。