经过多次重启后,我了解到我的Excel文件因此而挂起。我关闭了自动计算,因为每次在单元格中输入值时,我的excel都会挂起。但是当我按下保存按钮时,它将再次计算并挂起我的Excel。
=SUMPRODUCT(('Payroll - Extra'!$C$2:$C$1048576)*('Payroll - Extra'!$C$1=A3)*('Payroll - Extra'!$A$2:$A$1048576='Payroll Tables and Settings'!$V$3)*('Payroll - Extra'!$B$2:$B$1048576='Payroll Tables and Settings'!$W$3))
答案 0 :(得分:2)
将'Payroll - Extra'!$O$2:INDEX('Payroll - Extra'!$O:$O, match(1e99, 'Payroll - Extra'!$O:$O))
更改为
'Payroll - Extra'!$B$2:$B$1048576
...和'Payroll - Extra'!$B$2:INDEX('Payroll - Extra'!$B:$B, match(1e99, 'Payroll - Extra'!$O:$O))
to,
.navbar-expand
......同样也是类似的。假设' Payroll - Extra'!$ O:$ O是数字。
使用SUMPRODUCT或类似的循环计算函数时,请避免使用完整列引用。
答案 1 :(得分:2)
您的工作簿计算速度很慢,因为您要求它为工作簿包含的每个SUMPRODUCT公式进行300多万次乘法和比较(不知道您有多少个SUMPRODUCT公式)。
假设您确实没有1048576行数据,并且当您在工作表上按Ctrl-End时它只会到达实际数据的末尾,那么您应该使用带有完整列引用的SUMIFS($ A :$ A)而不是SUMPRODUCT,因为SUMIFS只计算使用的范围而不是所有的行。
将数据转换为Excel表并使用结构化引用也会更好。