0

我的电子表格中有一个运行良好的平均函数: =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 错误。范围内没有#n/a 'Sheet2'!B7:Y7

什么会导致这个错误?

4

3 回答 3

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 个值,这些值被发送到平均函数。

于 2012-08-28T16:39:35.637 回答
0

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

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

尝试='Sheet2'!$A$2="Tuesday"作为您的第一个测试,单独在一个单元格中进行。如果单元格 Sheet2!A2 确实是“星期二”,则此公式的计算结果为 True。

于 2012-08-28T16:39:20.543 回答
0

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

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

于 2012-08-28T18:30:12.590 回答