与Sumifs间接使用的替代?

我使用的公式为〜300个使用INDIRECT函数dynamic获取地址的单元格,但是正在减慢计算时间。

请给我一个替代方法来加快计算速度。

我已经完成了基础知识,因为它具有屏幕更新= false和计算= xlmanual的macros。

=SUMIFS(Sheet1!$L:$L,Sheet1!$I:$I,Bookings_QTD!$F51,Sheet1!$B:$B,Bookings_QTD!I$2,INDIRECT($I$8),$K$8,Sheet1!$C:$C,$M$8)/1000000

这里单元格$ I $ 8是dynamic的,其值将根据如下变化: – 表格5!$ A:$ A,表格5!$ B:$ B …

$I$8=Sheet5!$E:$E

我需要将它用于未来许多细胞〜400 +与其他标准。

善意地提出我更好的公式或方法,这将减less计算时间。
提前致谢

因为它是一个易失性函数,所以对于许多表单, INDIRECT()将会很慢。 即每当工作簿中的任何单元发生更改时,都会触发。

如果你的单元格的值是相对静态的。 即如果您间接引用单元格“B6”,并且期望B6的内容保持不变,并且只希望从“B6”改为“Z8”,则可以使用以下代码:

 Function MyIndirect(RangeStr as String) as Variant MyIndirect = ActiveSheet.Range("RangeStr").Value End Function 

这应该工作。 如果需要刷新这个值,只需运行一个Application.Calculation (即按Ctrl-Alt-F9