我修改了一个我在这里找到的解决方案Calculate Moving Average in Excel,但我正在努力更进一步,找到最后4个值中最低(SMALL)3的平均值 .
我在那里的等式现在找到最后四个值(在我的情况下是高尔夫分数)并且可以通过除以4来创建平均值,但我希望它能够取最后四个中的三个最低值的平均值空白单元格(最后四个表示较大的列号) .
我修改了一个我在这里找到的解决方案Calculate Moving Average in Excel,但我正在努力更进一步,找到最后4个值中最低(SMALL)3的平均值 .
我在那里的等式现在找到最后四个值(在我的情况下是高尔夫分数)并且可以通过除以4来创建平均值,但我希望它能够取最后四个中的三个最低值的平均值空白单元格(最后四个表示较大的列号) .
5 回答
稍微简化的版本 - 试试这个数组公式 . 请务必使用CtrlShiftEnter进行确认:
我用过这个版本
=AVERAGE(SMALL(INDEX(F5:AH5,LARGE(IF(ISNUMBER(F5:AH5),COLUMN(F5:AH5)-COLUMN(F5)+1),4)):AH5,{1,2,3}))
用CTRL SHIFT ENTER确认
INDEX
函数查找包含最后4个值的范围,然后SMALL
给出最小的3和AVERAGE
平均值 .使用
ISNUMBER
而不是ISBLANK
意味着如果非数字单元格是真正的空白,公式空白....甚至文本,则公式有效 .鉴于您似乎在
F4:AH4
范围内按顺序排列1到n,如果您希望使用这些数字,则可以进一步简化,即此版本不需要"array entry"=AVERAGE(SMALL(INDEX(F5:AH5,LARGE(INDEX(ISNUMBER(F5:AH5)*F$4:AH$4,0),4)):AH5,{1,2,3}))
如果有3个或更少的值,您想要什么结果?第一个版本将返回#NUM!在这种情况下出错,第二个也将返回#NUM!除非有正好3个值,在这种情况下,你得到所有3的平均值
仅当您需要
n-1
的最低n
数时,此功能才有效考虑以下 UDF
在工作表单元格中
= MovAverage(F5:AH5)
将获取列 F 和 AH 之间的行#5中的最后四个值(不包括空白和零),并返回这些值中最小三个的平均值 .
使用公式处理详细的答案,但如果你像你一样取四个总和,然后减去四个中的最大值,然后将结果除以3得到平均值 .
EDIT 以下数组公式适合我:( ControlShiftEnter输入公式)
我认为它可以简化,但我还没有解决