仅显示最大迭代次数(Microsoft Excel)
Mike有三个单元格(A1:A3),它们显示计算结果。他需要一种方法来确定出现在任何这些单元格中的最大值,并将该值存储在单元格E5中。他知道如何从三个中取最大值,但是当他重新计算工作表时,如果A1:A3中的值小于E5中的最大值(根据先前对A1:A3中最大值的确定),则E5不应该改变。换句话说,仅当A1:A3中的值大于E5中的值时,E5才应该更改。迈克不确定如何执行这样的计算。
有两种方法可以解决此问题。首先是创建一个简单的公式,将其放在单元格E5中:
=MAX(A1:A3,E5)
MAX函数检查它引用的各种值,然后返回其中的最大值—正是所需的值。但是,由于此公式放置在单元格E5中,并且还引用了E5,因此它将返回错误。这是因为公式创建了循环引用。 Excel可以处理这些,但是您需要进行一些小的配置更改:
。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010和更高版本中,显示功能区的“文件”选项卡,然后单击“选项”。)
。单击对话框左侧的“公式”。 (请参见图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培训的来源。
本技巧(10916)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: