【问题标题】:Average of dynamic row range动态行范围的平均值
【发布时间】:2014-09-03 19:59:05
【问题描述】:
我有一个由零和数字组成的行表,如下所示:
A B C D E F G H I J K L M N
0 0 0 4 3 1 0 1 0 2 0 0 0 0
0 1 0 1 4 0 0 0 0 0 1 0 0 0
9 5 7 9 10 7 2 3 6 4 4 0 1 0
我想计算包括零在内的数字的平均值,但从第一个非零值开始,并在表格结束后将其放入列中。例如。对于第一行,第一个值为 4,所以平均值 - 11/11;第二个 - 7/13;最后一个是 67/14。
我如何使用 excel 公式做到这一点?可能是OFFSET 嵌套了IF?
【问题讨论】:
标签:
arrays
excel
excel-formula
worksheet-function
【解决方案1】:
这仍然需要作为数组公式输入(ctrl-shift-enter),但它不是易失性的:
=AVERAGE(INDEX(($A2:$O2),MATCH(TRUE,$A2:$O2<>0,0)):$O2)
或者,取决于位置:
=AVERAGE(INDEX(($A2:$O2);MATCH(TRUE;$A2:$O2<>0;0)):$O2)
【解决方案2】:
无论你包含多少个 0,总和都是相同的,所以你只需要担心除以什么,你可以使用嵌套的 IFs 来确定,或者从中获取提示:@987654321 @
【解决方案3】:
感谢 Scott Hunter 提供良好的参考。
我用一个巨大的公式解决了这个问题,我觉得这有点尴尬。
这里是:
=AVERAGE(INDIRECT(CELL("address";INDEX(A2:O2;MATCH(TRUE;INDEX(A2:O2<>0;;);0)));TRUE):O2)