我会在2周内在Excel中保持平均成绩。我现在拥有代码的方式
AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-29,):OFFSET('1'!E4,COUNTA('1'!D:D),))
如果我没有2周的数据,会返回错误。我通过这样做找到了解决这个问题的方法
=IFERROR(AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-29,):OFFSET('1'!E4,COUNTA('1'!D:D),)),IFERROR(AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-28,):OFFSET('1'!E4,COUNTA('1'!D:D),)),IFERROR(AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-27,....
我确定有更好的方法可以帮助我们。
答案 0 :(得分:1)
正如评论中指出的那样 - 如果没有更多的知识,很难给出明确的答案 - 例如,数字数据的起始位置(E4或E5)并不容易说出来?
首先,您可以简化原始公式,看似平均最后30行数据(不确定30行等于2周的数据) - 您只需执行以下操作:
=AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-29,0,30))
现在我假设当COUNTA('1'!D:D)<因此,你可以简单地添加一个If函数,如果该函数返回一个数字,则AVERAGES所有数据< 29,即
=IF(COUNTA('1'!D:D)<29,AVERAGE('1'!E4:E33),AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-29,0,30)))
该公式可能需要一些小的调整以满足您的布局细节,但一般方法是有效的