有没有办法让这个代码更小一些?

有没有办法让这个代码更小一些?

我创建了一个公式,它可以从不同的工作表中进行索引匹配,然后将它们加在一起。

有没有什么办法可以使编码更小或者更好? 我尝试过但失败了,但没有得到任何结果 :(

我有以下代码;

=IFERROR(INDEX('Report 1'!BC:BC,MATCH(B13,'Report 1'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 2'!BC:BC,MATCH(B13,'Report 2'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 3'!BC:BC,MATCH(B13,'Report 3'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 4'!BC:BC,MATCH(B13,'Report 4'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 5'!BC:BC,MATCH(B13,'Report 5'!$A:$A,0)),"0")

答案1

要从公式中获取结果,请删除"周围的,0这样公式就不会尝试添加文本字符串。

但我们可以用以下公式来简化3D 求和

在列表中包含所需工作表的名称,并在 SUMIF 中使用 INDIRECT 引用它们:

=SUMPRODUCT(SUMIF(INDIRECT("'" & D1:D5 & "'!A:A"),B13,INDIRECT("'" & D1:D5 & "'!BC:BC")))

在此处输入图片描述

答案2

有没有什么办法可以使编码更小或者更好?

并不真地:(

尽管您可以使用一些解决方法:

  • 命名范围:您可以为范围定义名称并引用它们
  • 支持单元格:使用另一个单元格来存储函数的结果MATCH,因此不需要多次运行
  • UDF:使用宏创建用户定义函数,您可以编写比当前公式更好的代码

相关内容