使用SUMIFS公式在Excel中的多个表中select相同的列

我试图缩短我的公式,并且很难找出正确的方法来做到这一点。 我试图select多个表中的某些单元格来产生一个单一的总数。 我的代码是这样的:

=SUMIFS(TransactionsChase[INFLOW],TransactionsChase[DATE],">="&Dec,TransactionsChase[DATE],"<"&DecPayChk2,TransactionsChase[CATEGORY],"<>"&"From*") +SUMIFS(TransactionsPatelcoChecking[INFLOW],TransactionsPatelcoChecking[DATE],">="&Dec,TransactionsPatelcoChecking[DATE],"<"&DecPayChk2,TransactionsPatelcoChecking[CATEGORY],"<>"&"From*") +SUMIFS(TransactionsPatelcoMM[INFLOW],TransactionsPatelcoMM[DATE],">="&Dec,TransactionsPatelcoMM[DATE],"<"&DecPayChk2,TransactionsPatelcoMM[CATEGORY],"<>"&"From*") +SUMIFS(TransactionsCash[INFLOW],TransactionsCash[DATE],">="&Dec,TransactionsCash[DATE],"<"&DecPayChk2,TransactionsCash[CATEGORY],"<>"&"From*") 

如果可能的话,我很乐意将其简化为一个sumifs语句。 有任何想法吗?

如果在SUMIFS函数中将这四个表名与一个易失性的INDIRECT¹函数一起使用,那么将所有的东西都包含在一个SUM函数中,并将其作为一个array2公式来完成,这个公式可以在视觉上被缩短,但不是在计算方面。

在下面的图片中,您的原始公式是在J2中。 修改后的公式是J3,

 =SUM(SUMIFS(INDIRECT(N$2:N$5&"[INFLOW]"), INDIRECT(N$2:N$5&"[DATE]"), ">="&Dec, INDIRECT(N$2:N$5&"[DATE]"), "<"&DecPayChk2, INDIRECT(N$2:N$5&"[CATEGORY]"), "<>From*")) 

结果应该类似于以下内容。 请注意对, "<>From*"标准进行的小改进。 表格名称也可以写出来。 而不是N$2:N$5

 {"TransactionsChase", "TransactionsPatelcoChecking", "TransactionsPatelcoMM", "TransactionsCash"} 

sumifs_multiple_tables

从上面的示例图像可以看出,该公式将保留不同行长度的表格。 唯一的问题就是“值得吗?


¹ 只要整个工作手册中的任何内容发生变化,挥发性函数就会重新计算,而不仅仅是当影响其结果的事情发生变化时。 易失性函数的例子是间接 , 偏移 , 今天 , 现在 , 兰德和兰德维恩 。 CELL和INFO工作表函数的一些子函数也会使它们变得不稳定。

² arrays公式需要用Ctrl + Shift + Enter 来确定。 一旦正确input第一个单元格,就可以像其他任何公式一样向下或向右填充或复制它们。 有关更多信息,请参阅数组公式的示例 。