ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Sum the greatest run of negative numbers (https://www.excelbanter.com/excel-programming/365042-sum-greatest-run-negative-numbers.html)

Ev

Sum the greatest run of negative numbers
 
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would return a
result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution



NickHK

Sum the greatest run of negative numbers
 
Ev,
How about this ?
Function CalcMaxNeg(argRange As Range) As Long
Dim Cell As Range
Dim RunSum As Long
Dim MaxNeg As Long

For Each Cell In Range("rngData").Cells
If Cell.Value < 0 Then
RunSum = RunSum + Cell.Value
Else
If RunSum < MaxNeg Then MaxNeg = RunSum
RunSum = 0
End If
Next

CalcMaxNeg = MaxNeg
End Function

NickHK

"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would return

a
result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution





Nigel

Sum the greatest run of negative numbers
 
Function negmax(xRng As Range) As Long
Dim xCell As Range
Dim xSum As Long
xSum = 0: negmax = 0
For Each xCell In xRng
If xCell.Value < 0 Then
xSum = xSum + xCell.Value
Else
xSum = 0
End If
Debug.Print xSum, negmax
If xSum < negmax Then negmax = xSum
Next
End Function

You call the function using

negmax(Range("A1:A14"))


--
Cheers
Nigel



"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would return
a result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution




Ev

Sum the greatest run of negative numbers
 
Thanks Nick,

But I can't get it to work,
I've inserted the code in a module and closed and re-opened excel but the
formula CalcMaxNeg() doesn't work and returns #Value


"NickHK" wrote in message
...
Ev,
How about this ?
Function CalcMaxNeg(argRange As Range) As Long
Dim Cell As Range
Dim RunSum As Long
Dim MaxNeg As Long

For Each Cell In Range("rngData").Cells
If Cell.Value < 0 Then
RunSum = RunSum + Cell.Value
Else
If RunSum < MaxNeg Then MaxNeg = RunSum
RunSum = 0
End If
Next

CalcMaxNeg = MaxNeg
End Function

NickHK

"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would
return

a
result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution







Ev

Sum the greatest run of negative numbers
 
Thanks All works great
"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would return
a result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution




Ev

Sum the greatest run of negative numbers
 
Hi Guys,

The initial function works but only with whole numbers, it doesn't seem to
work with % and also seems to round. Is there a way to change it to work
around this?

"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would return
a result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution




NickHK

Sum the greatest run of negative numbers
 
Ev,
Just change all Longs to Singles. e.g.:

Function CalcMaxNeg(argRange As Range) As Long
Dim Cell As Range
Dim RunSum As Single
Dim MaxNeg As Single

.........etc

NickHK

"Ev" wrote in message
...
Hi Guys,

The initial function works but only with whole numbers, it doesn't seem to
work with % and also seems to round. Is there a way to change it to work
around this?

"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would

return
a result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution






Ev

Sum the greatest run of negative numbers
 
Thanks, sorry for stupid question.
"NickHK" wrote in message
...
Ev,
Just change all Longs to Singles. e.g.:

Function CalcMaxNeg(argRange As Range) As Long
Dim Cell As Range
Dim RunSum As Single
Dim MaxNeg As Single

........etc

NickHK

"Ev" wrote in message
...
Hi Guys,

The initial function works but only with whole numbers, it doesn't seem
to
work with % and also seems to round. Is there a way to change it to work
around this?

"Ev" wrote in message
...
I have a list of returns like that listed below, I want to find out the
greatest continuous run of negative returns,
(i.e. -24-3 =-27, and is greater than -2-4-3-1-1-1=-12) so it would

return
a result of -27
6
7
2
0
-2
-4
-3
-1
-1
-1
7
-24
-3
2
4

A function would be the most preferable solution









All times are GMT +1. The time now is 12:02 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com