我在单元格 A1:A10 中有一些数字数据。在 B2 中,我尝试获取 A1:A10(A2、A4、A6..)中偶数单元格的平均值,这样如果单元格为 0,则应排除数据点。
因此我使用 AVERAGEIF 公式以及 IF 语句来返回预期的单元格,否则为 0。
B2 中的公式是(这是一个数组公式,我确实按下了 ctrl shift enter 来获取数组公式)
{=AVERAGEIF(IF(MOD(ROW(A1:A10),2)=0,A1:A10,0),"<>0")}
此公式返回 #VALUE!,但我不明白原因。我尝试对其进行评估,直到倒数第二阶段,一切看起来都很好,但在最后一步计算时,它只返回 #VALUE!。
有人能进一步帮助我解释为什么这个公式返回#VALUE!吗?谢谢。
进一步更新
我进一步检查了该公式在 LibreOffice Calc 和 Google Sheets 中是否都能正常工作。在 Google Sheets 中,它会在 CSE 上自动放入 ArrayFunction 公式中。
此外,我发现 Excel 2013 的 AVERAGEIF 脱机帮助确实提到了它接受数组输入的事实。以下是帮助摘录。
AVERAGEIF 函数语法具有以下参数(参数:向动作、事件、方法、属性、函数或过程提供信息的值。):
范围必填。要计算平均值的一个或多个单元格,包括数字或名称、数组或包含数字的引用。
条件必需。条件以数字、表达式、单元格引用或文本的形式表示,用于定义要计算平均值的单元格。例如,条件可以表示为 32、“32”、“>32”、“apples”或 B4。
Average_range 可选。要求平均值的实际单元格集。如果省略,则使用范围。
对我来说,很难判断这是设计行为还是 MS Excel 中缺少某种功能的错误。