计算连续负数(Microsoft Excel)
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培训的来源。
本技巧(3533)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: