与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
)