我的电子表格中的平均功能运行良好:=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。
导致此错误的原因是什么?
答案 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)