为什么在缩小其他工作平均值函数的范围时会出现#n / a错误?

时间:2012-08-28 16:27:53

标签: excel excel-formula

我的电子表格中的平均功能运行良好:=AVERAGE( IF('Sheet2'!$2:$2="Tuesday", IF('Sheet2'!7:7<>"", 'Sheet2'!7:7)))

我不想在平均计算中使用第7行,而是只想在小范围内工作,所以我将公式更改为:=AVERAGE( IF('Sheet2'!$2:$2="Tuesday", IF('Sheet2'!B7:Y7<>"", 'Sheet2'!B7:Y7)))

当我进行此更改时,我的公式会返回#n / a错误。 'Sheet2'!B7:Y7范围内没有#n / a。

导致此错误的原因是什么?

3 个答案:

答案 0 :(得分:1)

试试这个:=AVERAGE( IF('Sheet2'!$B2:$Y2="Tuesday", IF('Sheet2'!$B$7:$Y$7<>"", 'Sheet2'!$B$7:$Y$7)))

由于这是一个数组公式,请确保在输入后按Ctrl + Shift + Enter。

当数组大小对应时,Excel最适合使用数组公式。 您的原始公式适用于每个部分的整行,因此如果您只想使用某个部分,请编辑整个公式,以便它在数组公式的每个阶段使用相同数量的单元格。

可以这样想,它正在做的是在第2行运行IF测试。 对于参数,我们假设有30列,因此它运行30次测试。 对于每个测试,它将运行sub-if测试并最终返回30个值,这些值将被发送到average函数。

答案 1 :(得分:0)

我建议您将该IF语句的组件分解为单独的单元格,并查看它们如何评估为True或False。

我认为你在IF('Sheet2'!$2:$2="Tuesday", ...)语句中存在问题 - 据我所知,'Sheet2'!$ 2:$ 2定义了一行单元格,而不是单个值可能等于“星期二” ”

尝试='Sheet2'!$A$2="Tuesday"作为您的第一个测试,单独在一个单元格中。如果单元格Sheet2!A2确实是“星期二”,那么此公式将评估为True。

答案 2 :(得分:0)

如果您使用的是Excel 2007或更高版本,则会有一个内置的单个函数AVERAGEIF。对您来说这可能更容易,它不需要CTRL+SHIFT+ENTER并且不需要检查空白的范围(AVERAGEIF无论如何都忽略它们)所以你可以使用这个公式

=AVERAGEIF(Sheet2!$B2:$Y2,"Tuesday",Sheet2!$B7:$Y7)