Lori在相邻单元格中具有一系列数字,可以是正数或负数。她想确定范围内最大的负数序列。因此,如果此序列中连续有七个负数,则她希望公式返回值7。

我们一直处于高潮和低谷的状态,找不到一个可以满足需要的公式。但是,您可以使用中间列进行操作。例如,如果您的数字在A列中(从A1开始),则可以在单元格B1中输入以下公式:

=IF(A1<0,1,0)

然后,在单元格B2中输入以下内容:

=IF(A2<0,B1+1,0)

将其复制到B列中具有值的B列中的所有其他单元格。然后,在另一个单元格(可能是C1单元格)中,可以输入以下公式:

=MAX(B:B)

|此值将代表A列中最大数量的连续负值。

如果不想创建中间列来获取答案,则可以创建一个用户定义的函数来返回该值。

Function MaxNegSequence(rng As Range)

' search for the largest sequence ' of negative numbers in the range

Dim c As Range     Dim lCounter As Long     Dim lMaxCount As Long       Application.Volatile     lCounter = 0     lMaxCount = 0     On Error Resume Next     For Each c In rng.Cells         If c.Value < 0 Then             lCounter = lCounter + 1             If lCounter > lMaxCount Then                 lMaxCount = lCounter             End If         Else             lCounter = 0         End If     Next c       MaxNegSequence = lMaxCount End Function

要使用该函数,只需在工作表中放置一个类似于以下内容的公式:

= MaxNegSequence(A1:A512)

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11105)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: