Tương tự như hàm MAXIF()

Sa DQ

Thành viên năng động
Tham gia
17/6/14
Bài viết
76
Điểm thành tích
8
Mình có CSDL được trích dẫn như bảng dưới đây

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.
 

File đính kèm

  • gpeUDF.rar
    134 KB · Đọc: 142

Tải bộ cài phần mềm Dự toán GXD, Đấu thầu GXD, Thanh Quyết toán GXD, Quản lý chất lượng GXD. Dành cho người mua bản quyền
Kích để xem khóa học Dự toán công trình
Kích để xem khóa học Dự toán công trình
Phần mềm quản lý chất lượng công trình QLCL GXD
Tìm hiểu khóa học Thanh Quyết toán GXD

Các bài viết mới

Top