Excel-如何从某些值开始计算平均值?

Excel-如何从某些值开始计算平均值?,excel,excel-formula,Excel,Excel Formula,看着上面的图片,我想知道如何从一个符合特定标准的数字开始计算平均值?例如,给定范围J3:Q3,在一个数字大于50(因此在本例中为L3:Q3)后,如何开始计算平均值?Hack-y方法: 在J4中填入 =IF(J3>50, J3, '') 然后复制到第四季度 然后在J5中填入 =AVERAGE(J4:Q4) 您可以在工作表中的VBA中添加自定义函数,从工作表中调用该函数 您需要在Excel工作表中键入 =Average_Cells(first_cell_for_average, value

看着上面的图片,我想知道如何从一个符合特定标准的数字开始计算平均值?例如,给定范围J3:Q3,在一个数字大于50(因此在本例中为L3:Q3)后,如何开始计算平均值?

Hack-y方法:

在J4中填入

=IF(J3>50, J3, '')
然后复制到第四季度

然后在J5中填入

=AVERAGE(J4:Q4)

您可以在工作表中的VBA中添加自定义函数,从工作表中调用该函数

您需要在Excel工作表中键入

=Average_Cells(first_cell_for_average, value_above)
第一个\u单元格\u表示\u平均值-您可以放入A3,该函数将处理其余单元格

上面的值\u=在您的帖子中,它是50,您可以稍后将其修改为您想要的任何值

功能代码:

Public Function Average_Cells(ByRef first_Cell As Range, larger_Than As Long) As Double

' Row 3 in your post
last_col = ActiveSheet.Cells(3, ActiveSheet.Columns.count).End(xlToLeft).Column
first_Col = first_Cell.Cells(1, 1).Column

For col = first_Col To last_col
    If Cells(3, col).Value > larger_Than Then
        GoTo Exit_For
    End If
Next

Exit_For:
Average_Cells = Application.WorksheetFunction.Average(Range(Cells(3, col), Cells(3, last_col)))

End Function

这其实很聪明,问题是我有数千行。我可以一直在这一行的右边做,但我想找到一个公式化的方法来做这件事。实际上我打算用这个来解决我的问题,但我希望其他人能给出一个“真实”的答案。谢谢你的帮助!VBA是一种选择吗?会容易得多。。。