我正在尝试计算 Excel 中最后 N 行的平均值,但我有一些空白(和合并)单元格;如下所示:
一个 |
---|
1 |
2 |
十 |
3 |
4 |
5 |
6 |
7 |
是 |
8 |
9 |
10 |
例如,要计算最后四行的平均值,应该计算 A8 到 A12 的平均值而忽略 A9,因为 A9 不是一个数字。
此外,还会添加新行,因此平均值需要动态,始终取最后 N 个编译的带有数字的行。
我发现了一些关于这个主题的类似文章,但它们都假设连续数据,而没有解决数据中某些空白/文本单元格的情况;这个答案似乎解决了这个问题,但我无法让这些公式为我工作(我不确定如何在接受的答案中使用它,因为它使用了多列,而我只有一列)。
这和这似乎也相关,但是在我的案例中我还是无法让它们发挥作用。
有办法吗?
您可以在Excel 2019中尝试以下方法:
解释:
INDEX()
会给我们指定行号的单元格值。INDEX()
将产生该特定行的单元格值。AVERAGE()
函数,包围其他所有内容,以返回所需的输出。也许使用MS365:
LOOKUP(2,1/A:A,ROW(A:A))
返回包含数字的最后一个单元格的行号(此函数将忽略错误)。INDEX
创建一个值数组LARGE
以返回最高四行数字{1;2;3;4}
INDEX
来返回这些行中包含的值AVERAGE
这四个数字。当然,
365
你也可以使用更短的:您可以在 Excel 365 中使用此公式来实现您的目标:
=AVERAGE(TAKE(FILTER(A1:A12,ISNUMBER(A1:A12)),-4))
FILTER(A1:A12,ISNUMBER(A1:A12))
- 删除非数字值TAKE(FILTER(...),-4))
- 保留最后四位数字=AVERAGE(...)
- 计算平均值另一种选择:
=AVERAGE(INDEX(A:A,MATCH(2,1/A:A)-{3,2,1,0}))
或者在 M365 中:
=AVERAGE(TAKE(A:.A,-4))
(平均值忽略非数值)