I gave it another shot, see if this works:
The result is in col E
Sub your_5_try()
Dim i As Long, n As Long, q As Long, j As Long
Dim va, vb
n = Range("C" & Rows.Count).End(xlUp).Row
va = Range("C2:C" & n)
vb = Range("D2:D" & n)
ReDim vc(1 To UBound(va, 1), 1 To 1)
'IF(MAX(D$1:D2)<=MIN(C$1:C2);1;"")
For i = 1 To UBound(va, 1) - 1
q = i
vc(i, 1) = 0
Do
q = q + 1
If q > UBound(va, 1) Then Exit Do
If to_Max(vb, i, q) <= to_Min(va, i, q) Then
vc(i, 1) = vc(i, 1) + 1
Else
Exit Do
End If
Loop
Next
'put the result:
Range("E2").Resize(UBound(vc, 1), 1) = vc
End Sub
Function to_Max(vx As Variant, a As Long, b As Long) As Double
Dim h As Double, i As Long
h = vx(a, 1)
For i = a + 1 To b
If h < vx(i, 1) Then h = vx(i, 1)
Next
to_Max = h
End Function
Function to_Min(vx As Variant, a As Long, b As Long) As Double
Dim h As Double, i As Long
h = vx(a, 1)
For i = a + 1 To b
If h > vx(i, 1) Then h = vx(i, 1)
Next
to_Min = h
End Function
Bookmarks