Excel:数组参数对 AVERAGE 函数的影响

Excel:数组参数对 AVERAGE 函数的影响

通常,AVERAGE() 在其计算中包含非数字文字。但是,我不确定为什么将值作为参数传入会导致 AVERAGE() 忽略 FALSE 值。将参数作为数组传递给 AVERAGE() 有什么特别之处吗?我知道 AVERAGE() 会忽略通过单元格引用传入的非数字值,但我不确定数组,尤其是因为 FALSE 值在技术上是文字。

答案1

字符串作为参数

在 AVERAGE 函数中,Excel 将尝试将作为参数输入的任何字符串强制转换为数字。

因此,如果您输入FALSE该参数,Excel 会将其强制为零。

例如,

  • FALSE0
  • TRUE1;
  • "1"1;
  • "6/4/2023"45081

数组或范围内的字符串

如果字符串是数组或范围的一部分,AVERAGE 将不会尝试将字符串强制转换为数字。

# In Argument 
=AVERAGE(FALSE,10)
=5

# In Range
=AVERAGE(A1,10)  // A1=FALSE 
=10

# In Array
=AVERAGE({FALSE,10})
=10

如果你“确实”想要尝试将数组和范围中的字符串强制转换为数字,你可以自己触发该操作,例如,将数组或范围乘以一

# In Range
=AVERAGE(A1:A2*1)  // A1=FALSE,
=5                 // A2=10

# In Array
=AVERAGE({FALSE,10}*1)
=5

自动强制包含字符串的参数很可能是 Excel 试图“提供帮助”的情况,因为对该参数的任何其他解释都会假定该参数是明确添加的而没有任何实际目的。

还有其他函数示例,Excel 会尝试将包含字符串的参数强制转换为数字。通常,这些参数中的字符串作为参数也没有什么意义。例如,=SUM("4")=4

这可以反向工作,其中参数应该是两个字符串TRUE或之一FALSE,但仍将接受数字10作为等效项。

相关内容