Mình có CSDL được trích dẫn như bảng dưới đây
Nhiệm vụ đề ra là tìm giá trị lớn nhất của cột Mom_Left ứng với mỗi giá trị trong cột Strip & trong 1 khoảng giới hạn nào đó của x,
như 60< x <78
Hàm người dùng có nội dung như sau:
Xin các bạn xem file sẽ rõ hơn.
PHP:
Strip| X | Mom_Left | . . .
170 | 70 |123.456 |
170 | 77 |652.123 |
170 | 78 |752.569 |
170 | 73 |193.456 |
170 | 79 |452.123 |
170 | 73 |702.569 |
180 | 70 |120.456 |
180 | 77 |652.123 |
180 | 80 |752.069 |
180 | 39 |103.456 |
180 | 90 |452.123 |
180 | 38 |702.569 |
Nhiệm vụ đề ra là tìm giá trị lớn nhất của cột Mom_Left ứng với mỗi giá trị trong cột Strip & trong 1 khoảng giới hạn nào đó của x,
như 60< x <78
Hàm người dùng có nội dung như sau:
PHP:
Option Explicit
Function FindMAXInt(CSDL As Range, sTrip, Min_ As Double, Max_ As Double, Optional Col As Byte = 5)
Dim tMax As Double, Rws As Long, J As Long
Dim Rng As Range, sRng As Range
Rws = CSDL.Rows.Count + 9
Set Rng = CSDL(1).Resize(Rws)
Set sRng = Rng.Find(sTrip, , xlFormulas, xlWhole)
If sRng Is Nothing Then
FindMAXInt = "Nothing": Exit Function
Else
Set Rng = sRng.Resize(Rws - sRng.Row)
ReDim Arr(1 To Rng.Rows.Count, 1 To 5)
Arr() = Rng.Resize(, 5).Value
For J = 1 To Rws
If Arr(J, 1) <> sTrip Then Exit For
If Arr(J, 4) > Min_ And Arr(J, 4) < Max_ Then
If Arr(J, 5) > tMax Then tMax = Arr(J, 5)
' If J Mod 9 = 8 Then MsgBox Arr(J, 4)'
End If
Next J
End If
FindMAXInt = tMax
End Function
Xin các bạn xem file sẽ rõ hơn.