Excel公式在x行之后停止工作



Excel公式在 x行数后停止工作

4年前也有类似的问题。有两个答案。我都复习过了。第一个反应很好,但这不是我问题的原因。第二个答案是,回答的人有同样的问题,以及他或她为解决这个问题所做的努力,这在我的情况下是行不通的。没有人解释为什么会出现这个问题。

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

如果(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开始,它只返回零。

这就是我所做的:

  • 我已经使用F9查看了公式的组成部分,所有值和数组都报告正确。(这就是为什么定义的名称范围目前仅设置为500行,因此我可以使用F9分解公式,而不会在8192个字符后出现错误。(
  • 如果我把这个公式的行从第202行移到前面的一行,效果很好
  • 如果我删除前面的行,公式就可以正常工作

这似乎是某种内存问题,但我不明白为什么。我制作了更大、更复杂的电子表格,其中一些需要几分钟的时间来计算,没有任何问题。有什么想法吗?

在Sumif中提取月份将不起作用。您可以添加两个条件,一个测试日期大于/等于7月1日,第二个测试日期小于或等于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)

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

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

最新更新