【问题标题】:Averaging Offset Cells of Future Data in Excel在 Excel 中平均未来数据的偏移单元格
【发布时间】:2018-06-25 20:04:16
【问题描述】:

我当前的电子表格有整数,我想在 K 列的每 9 个单元格中取平均值,从 K10 开始。所以现在我现在的公式是,

=AVERAGE(K9,K18,K27)

我希望 EQ 考虑 [K36, K45, K54],即使这些单元格尚未填充。

我相信我可以使用类似的东西;

*pseudocode*
Find the average of K1+(K1+9)

*Attempt*
\\
=AVERAGE(OFFSET(K10,9,,,)
\\

我想我缺少关于 OFFSET 的完整知识,或者我在想也许 AverageIF() 可能是为了?到目前为止,我已经花了大概一个小时了

【问题讨论】:

  • K10 + 9 K20.
  • 我有点明白你在说什么.. 但没有指定是否使用 OFFSET 或 AverageIF 是正确的方法,我无法测试你的反应。你介意更具体一点吗,斯科特?谢谢
  • 我没有给出公式,而是说 K10 + 9 是 K19 而不是 K20,就像你在问题中所说的那样
  • 啊,谢谢。立即编辑

标签: excel excel-formula offset


【解决方案1】:

此数组公式将从 K10 开始每隔第 9 个单元格返回一次,并在放入时扩展以包含新数据:

=AVERAGE(INDEX(K:K,N(IF({1},(ROW(A1:INDEX(A:A,(MATCH(1E+99,K:K)-9)/9))-1)*9+10))))

-9 是获取起始行到第 1 行的行数 10-9=1

/9*9 是间距

+10 是起始行。

退出编辑模式时使用 Ctrl-Shift-Enter 确认,而不是 Enter

【讨论】:

  • 感谢您的回答!久经考验是真的!
  • 我认为应该是 =AVERAGE(INDEX(K:K,N(IF({1},(ROW(A1:INDEX(A:A,(MATCH(1E+99,K) :K)-1)/9))-1)*9+10)))) 但是OP已经编辑了这个问题。
  • @TomSharpe 由于 Row 只返回一个整数,因此无论是 -1,-2,...-9 都没有关系。他们都四舍五入到正确的行。我的大脑更容易将它带回第 10 行,即 1。
  • 这有效吗?我做了一组简单的交替 1 和 2,K10=1,K11=2,依此类推直到 K30。应该平均的单元格是 K10(值 = 1)、K19(值 = 2)和 K2(值 = 1),平均值为 1.33,但您的公式返回 1.5
【解决方案2】:

如果您可以添加一列作为标志,您可以使用MOD 函数来检查行号,如下所示:

=MOD(ROW(K10)+1,9) - 从 K10 开始,每 9 个单元格返回 0

如果MOD 函数返回0,则可以使用AVERAGEIF 函数求平均值。

如果您无法添加标志,您可能需要考虑使用这样的数组公式:

=AVERAGE(IF(MOD(ROW(K10:K30)-1,9)=0,K10:K30))

您可以通过点击Ctrl+Shift+Enter 来激活数组公式。如果操作正确,将在公式栏中的公式周围放置大括号 ({})。

编辑:

**以下两种方法都将空单元格计为0

如果 K 列的每一行都有一个值,则此数组公式适用于 K 列:

=AVERAGE(IF(MOD(ROW(INDIRECT("K10:K" & COUNTA(K:K)+10))-1,9)=0,INDIRECT("K10:K" & COUNTA(K:K)+10)))

或者如果K列没有连续的数据,这个方法获取最后一个填充的单元格。

=AVERAGE(IF(MOD(ROW(INDIRECT("K10:K" & MAX((K:K<>"")*(ROW(K:K)))))-1,9)=0,INDIRECT("K10:K" & MAX((K:K<>"")*(ROW(K:K))))))

【讨论】:

  • 一个很酷的方法!我确实可以添加一列,我会试试这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多