【发布时间】:2017-12-08 16:44:31
【问题描述】:
我目前正在使用此公式计算过去 3 个月或 6 个月内 12 列的滚动平均分数。
=SUM(SUMIFS($E$54:P54,$E$54:P54,LARGE(IF($E$54:P54>0,$E$54:P54),{1,2,3})))
这是一个数组公式,通过CTRL + SHIFT + ENTER输入。
现在的问题是我需要将我的工作簿部署在较旧的机器和那些老式办公计算机上(我们正在谈论 windows XP 和 Office 2003...),我发现阵列正在杀死整个工作簿。现在,我已经采取措施通过 VBA 加速工作簿(禁用事件、手动公式计算等),但我需要一种方法将上述数组公式转换为不计算零或空的非数组公式单元格作为平均值的一部分。
我在下面尝试了这个,但无法让它与零/空单元格一起使用。
=SUM(OFFSET($E68,0,COUNT($E68:$P68)-IF(COUNT($E68:$P68)>3,3,COUNT($E68:$P68)),1,IF(COUNT($E68:$P68)>3,3,COUNT($E68:$P68))))
【问题讨论】:
标签: arrays excel excel-formula vba