2

我在 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,....

我确定有更好的方法可以做到这一点,任何帮助将不胜感激。

4

1 回答 1

1

正如评论中指出的那样——如果没有更多的知识,很难给出明确的答案——例如,很难说出数字数据从哪里开始(E4 或 E5)?

首先,您可以简化您的原始公式,该公式显示为平均最后 30 行数据(不确定 30 行如何等同于 2 周的数据) - 您可以这样做:

=AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-29,0,30))

现在我假设错误发生在 COUNTA('1'!D:D) < 29 时,因此您可以简单地添加一个 If 函数,如果该函数返回的数字 < 29,则平均所有数据,即

=IF(COUNTA('1'!D:D)<29,AVERAGE('1'!E4:E33),AVERAGE(OFFSET('1'!E4,COUNTA('1'!D:D)-29,0,30)))

该公式可能需要一些小的调整来满足您的布局的具体情况,但一般方法是有效的

于 2013-01-15T00:51:12.580 回答