如果数字小于 1000,则用另一列中的另一个数字替换行中的数字

如果数字小于 1000,则用另一列中的另一个数字替换行中的数字

如果某行中的数字低于 1000,我需要用该行中数字的平均值替换它们,该平均值不包括行中低于 1000 的数字。

我已经使用此代码成功计算了平均值=AVERAGE(IF(O3:V3>=1000, O3:V3)),但是,当我尝试用计算出的平均值替换低于 1000 的数字时,我收到#spill error。这是我使用的代码:=IF(O3:V3<1000, W3, O3:V3)。平均值位于“W”列中。

答案1

您可以使用如下公式来计算:

=IF(O3:V3>=1000,O3:V3,AVERAGEIF(O3:V3,">=1000"))

但结果将在另一行。
如果您希望结果在同一位置,则应使用 vba。
平均的 如果您想用计算的平均值替换实际值,您应该选择您的数据并运行此代码:

Sub UpdateSmallValues()
   Dim avg As Double, res As Range
   ' operate on a selected range
   avg = WorksheetFunction.AverageIf(Selection, ">=1000")
   For Each res In Selection
      If res.Value < 1000 Then res.Value = avg
   Next res
End Sub

相关内容