仅显示最大迭代次数(Microsoft Excel)
Mike有三个单元格(A1:A3),它们显示计算结果。他需要一种方法来确定出现在任何这些单元格中的最大值,并将该值存储在单元格E5中。他知道如何从三个中取最大值,但是当他重新计算工作表时,如果A1:A3中的值小于E5中的最大值(根据先前对A1:A3中最大值的确定),则E5不应该改变。换句话说,仅当A1:A3中的值大于E5中的值时,E5才应该更改。 Mike不确定如何执行这样的计算。
有两种方法可以解决此问题。首先是创建一个简单的公式,将其放在单元格E5中:
=MAX(A1:A3,E5)
MAX函数检查它引用的各种值,然后返回其中的最大值—正是所需的值。但是,由于此公式放置在单元格E5中,并且还引用了E5,因此它将返回错误。这是因为公式创建了循环引用。 Excel可以处理这些,但是您需要进行一些小的配置更改:
。从工具菜单中选择选项。 Excel将显示“选项”对话框。
。显示“计算”选项卡。 (请参见图1。)
。确保选中“迭代”复选框。
。单击确定。
现在,Excel将处理循环引用,例如您在单元格E5中输入的简单公式。
第二种方法是使用宏执行计算。这种方法可能是首选方法,因为您可能不希望(由于某些原因)在工作簿中启用循环引用。以下实际上是一个事件处理程序,已添加到工作表的代码中。 (最简单的方法:
右键单击工作表选项卡,从出现的上下文菜单中显示代码窗口,然后将宏添加到该代码窗口。)
Private Sub Worksheet_Calculate() Dim dMax As Double dMax = Application.WorksheetFunction.Max(Range("A1:A3")) If dMax > Range("E5") Then Application.EnableEvents = False Range("E5") = dMax Application.EnableEvents = True End If End Sub
每次重新计算工作表时都会触发该宏。它获取A1:A3的最大值并将其与E5中的值进行比较。仅当该值较大时,才将该值放入E5。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(10915)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到适用于Excel功能区界面(Excel 2007和更高版本)的本技巧的版本:
链接:/ excelribbon-Only_Showing_the_Maximum_of_Multiple_Iterations [仅显示多次迭代的最大值]。