• Dò tìm trị trong khoảng 2 giá trị
  • Dò tìm trị trong khoảng 2 giá trị

    Noname > 10-09-19, 06:54 PM

    Bài toán ứng dụng khá nhiều khi nhận bảng giá. Mình vẫn chưa nghĩ ra tiêu đề gì hay cho bài viết này. Có gì anh em góp ý mình sẽ sửa tiêu đề phù hợp hơn

    Ví dụ giá thép có Ø: Từ 50-60 thì A đồng/kg
    Từ 60-70 thì: B Đồng /kg
    ...

    [Hình: Timgiatri%2Btrong%2Bday%2Bso%2Btu%2Ba%2B...%2Ba-b.PNG]

    Bài toán này có thể giải quyết bằng hamg lookup kết hợp roundup nhưng độ chính xác không cao.
    Sau đây mình xin giới thiệu 1 hàm tự viết tên là Mycase Cú pháp như sau
    Đầu tiên ta nhấn tổ hợp phím ALT +F11, click chuột phải vào Module, new module, dán code của mình vào
    Mã PHP:
    Function Mycase(As VariantAs RangeAs Range)

    Dim canduoicantren

    lastrow 
    C.Cells.Rows.Count
    For 1 To lastrow
    C.Cells(k1).Value

    If InStr(s"<") > 0 Then
    canduoi 
    0
    cantren 
    Val(Right(sLen(s) - InStr(s"<") - 1)) - 0.000001 ElseIf InStr(s">") > 0 Then
    canduoi 
    Val(Right(sLen(s) - InStr(s">") - 1)) + 0.000001
    cantren 
    canduoi v
    Else
    canduoi Val(Left(sInStr(s"-") - 1))
    cantren Val(Mid(sInStr(s"-") + 2))
    End If
    If 
    >= canduoi And <= cantren Then Mycase R.Cells(k1
    Exit Function 
    End If 
    Next 
    End 
    Function 

    Bây giờ có thể dùng hàm Mycase
    =mycase(Giá trị tìm kiếm;Vùng tìm kiếm;Vùng trả về)

    Tải file Ví Dụ Mẫu
    https://www.dropbox.com/s/wzst2o6bn89560....xlsm?dl=0

  • RE: Tìm giá trị trong 1mảng khoảng a-b

    ongke0711 > 11-09-19, 01:32 AM

    Hàm này hay đó bác NoName. Đặc biệt là giải thuật lấy cận trên của cái khoản giá trị cuối cùng (> 1.20).

    Mã PHP:
    CanTren CanDuoi 

    Về cái tiêu đề tôi nghĩ nên đổi lại là: "Dò tìm trị trong khoảng 2 giá trị" để dễ hiểu hơn.