如何在Excel中的if语句中指定包含数据的第一个单元格

时间:2013-01-14 01:25:11

标签: excel excel-2010 worksheet-function

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

我确定有更好的方法可以帮助我们。

1 个答案:

答案 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)))

该公式可能需要一些小的调整以满足您的布局细节,但一般方法是有效的