你这边的函数里面有几个条件都返回0值,可以把他们通过AND和OR的逻辑判断写到一起。
P4=IF(OR(P$3=7,P$1-$N4<0,AND($A4<>$A3,$L4<=0)),0,IF($A4<>$A3,MIN($L4,$H4),IF($L4>0,MIN($H4-SUMIF($A$3:$A3,$A3,P$3:P3),$L4),0)))
Q4=IF(OR(Q$3=7,Q$1-$N4<0,AND($A4<>$A3,$L4-SUM($P4:P4)<=0)),0,IF($A4<>$A3,MIN($H4,$L4-SUM($P4:P4)),IF($L4-SUM($P4:P4)>0,MIN(MIN($H4-SUMIF($A$3:$A3,$A3,Q$3:Q3),$L4),$L4-SUM($P4:P4)),0)))
但从时间复杂度上看,这个公式即使简化也不会对性能有太大提升,毕竟计算量没有本质的变化。建议在Excel设置中将计算设置成“手动重算”,这样的话等到参数都输入完毕了计算一次即可。
希望对你有所帮助。