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 个零。
这是我所做的:
- 我使用 F9 查看了公式的组成部分,所有值和数组都正确报告。 (这就是为什么定义的名称范围当前设置为仅 500 行,因此我可以使用 F9 分解公式,并且在 8,192 个字符后不会出现错误。)
- 如果我将带有此公式的行从第 202 行移到更早的一行,它就可以正常工作。
- 如果我删除前面的行,公式就可以正常工作。
这似乎是某种内存问题,但我不明白为什么。我已经构建了更大、更复杂的电子表格,其中一些需要几分钟才能毫无问题地计算出来。
有什么想法吗?
提取 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)
公式仅测试月数,忽略年份,因此如果您的数据跨越多年,您可能需要添加一个参数来检查年份。
请注意,所有这些公式都是常规公式,不需要数组输入。
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 个零。
这是我所做的:
- 我使用 F9 查看了公式的组成部分,所有值和数组都正确报告。 (这就是为什么定义的名称范围当前设置为仅 500 行,因此我可以使用 F9 分解公式,并且在 8,192 个字符后不会出现错误。)
- 如果我将带有此公式的行从第 202 行移到更早的一行,它就可以正常工作。
- 如果我删除前面的行,公式就可以正常工作。
这似乎是某种内存问题,但我不明白为什么。我已经构建了更大、更复杂的电子表格,其中一些需要几分钟才能毫无问题地计算出来。 有什么想法吗?
提取 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)
公式仅测试月数,忽略年份,因此如果您的数据跨越多年,您可能需要添加一个参数来检查年份。
请注意,所有这些公式都是常规公式,不需要数组输入。