【问题标题】:Excel Formula to combine AVERAGE, OFFSET, IF, ISNUMBERExcel 公式结合 AVERAGE、OFFSET、IF、ISNUMBER
【发布时间】:2018-04-07 00:17:13
【问题描述】:

我正在尝试编写一个公式,让我可以找到每个第 n 个单元格的平均值,其中 n 由用户在另一个单元格中指定,但是我的数据范围中有很多 #N/A 单元格,我希望在计算平均值时忽略这些值。

这是我目前所拥有的;它获取单元格 C3 中的数据并返回单元格 D3 中每个第 n 个单元格的平均值,并且 n 在单元格 L11 中指定。

=AVERAGE(OFFSET($C$3, (ROW() - ROW($D$3))*$L$11,,$L$11,))

这很有效,但是当范围内有 #N/A 时会失败,返回 #N/A。我在下面尝试了这个公式,但它只为前 n 个单元格返回正确的值,而为其余的单元格返回 0。

=AVERAGE(IF(ISNUMBER((OFFSET($C$3, (ROW() - ROW($G$3))*$L$11,,$L$11,))),(OFFSET($C$3, (ROW() - ROW($G$3))*$L$11,,$L$11,))))

任何帮助将不胜感激!先感谢您。

【问题讨论】:

  • 您是否将其作为数组公式输入(Ctrl+Shift+Enter)?
  • @z32a7ul 当我将其作为数组公式输入时,它会返回 #DIV/0!,但是当我像普通公式一样按 Enter 键时,它会起作用,但仅适用于第一个单元格。跨度>
  • 如果你写的是 Sum 而不是 Average,它会返回 0 吗?
  • @z32a7ul 是的,除了第一个单元格之外,它返回 0!多么奇怪。
  • 这个公式中的(ROW() - ROW($D$3)) 应该做什么?在第 3 行中,它将为 0,因此 Offset 将偏移 0。在第 4 行中,它将为 1,因此 Offset 将偏移 1 * L11。在第 5 行中,它将是 2,因此 Offset 将偏移 2 * L11。我怀疑这不是你想要的。一般来说,您可以像这样使用AVARAGEIF=AVERAGEIF(OFFSET($C$3,(ROW()-ROW($D$3))*$L$11,,$L$11),"<>#N/A")

标签: excel


【解决方案1】:

如果#N/A 是公式的结果,只需将IFERROR 添加到您的公式中并生成结果""。例如:"=IFERROR([formula here],"")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多