-
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
...
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(v As Variant, C As Range, R As Range)
Dim canduoi, cantren
lastrow = C.Cells.Rows.Count
For k = 1 To lastrow
s = C.Cells(k, 1).Value
If InStr(s, "<") > 0 Then
canduoi = 0
cantren = Val(Right(s, Len(s) - InStr(s, "<") - 1)) - 0.000001 ElseIf InStr(s, ">") > 0 Then
canduoi = Val(Right(s, Len(s) - InStr(s, ">") - 1)) + 0.000001
cantren = canduoi + v
Else
canduoi = Val(Left(s, InStr(s, "-") - 1))
cantren = Val(Mid(s, InStr(s, "-") + 2))
End If
If v >= canduoi And v <= cantren Then Mycase = R.Cells(k, 1)
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
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.