Tìm ngày liền trước và sau ngày cần tìm
Dear ACE Diễn đàn,
Mình cần Code VBA để tìm giá trị cận trên và giá trị cận dưới của ngày cần tìm từ bảng dữ liệu các ngày có sẵn.
Ví dụ: Bảng ngày như sau:Date Range
10/04/2017
15/04/2017
10/05/2017
10/06/2017
20/06/2017
30/08/2017
Ngày giá trị là 12/04/2017 thì ngày cận dưới là 10/04/2017, ngày cận trên là 15/04/2017.
Tương tự cho ngày 21/05/2017…
Mình có gửi kèm file minh họa, nhờ mọi người giúp dùm. Cảm ơn rất nhiều.
Bạn sử dụng công thức sau:
D5:=VLOOKUP(C5,$A$5:$A$10,1,1)
E6=INDEX($A$5:$A$10,SMALL(IF(C5<$A$5:$A$10,ROW($A$1:$A$6)),1))
Ô E6 bạn kết thúc công thức bằng Ctrl+Shift+Enter nhé.
www.giaiphapexcel.com/diendan/threads/t%C3%ACm-ng%C3%A0y-li%E1%BB%81n-tr%C6%B0%E1%BB%9Bc-v%C3%A0-sau-ng%C3%A0y-c%E1%BA%A7n-t%C3%ACm.124070/
Kỹ năng giải quyết vấn đề hiệu quả
Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...
Xem khóa học
Muốn Sub thì có Sub:
Sub MinMaxDate()
Dim Rng As Range, sRng As Range, Cls As Range
Dim MyFormat As String
Dim J As Integer, MinDat As Date, MaxDat As Date
Set Rng = Range(, .End(xlDown))
MyFormat = Rng.NumberFormat
Rng.NumberFormat = "MM/DD/yyyy"
For Each Cls In Range(, .End(xlDown))
For J = 0 To 366
Set sRng = Rng.Find(Format(Cls.Value – J, "MM/dd/yyyy"), , xlValues, xlWhole)
If Not sRng Is Nothing Then
Cls.Offset(, 1).Value = sRng.Value
Exit For
End If
Next J
For J = 0 To 366
Set sRng = Rng.Find(Format(Cls.Value + J, "MM/dd/yyyy"))
If Not sRng Is Nothing Then
Cls.Offset(, 2).Value = sRng.Value
Exit For
End If
Next J
Next Cls
Rng.NumberFormat = MyFormat
End Sub
Thì bạn tăng tại số 366 thành số 366*13 hay số 65500 xem sao!
do thói quen thôi, chúc bạn một ngày vui /-*+/
Mình là dân "lơ tơ mơ" nên không tài nào biết trong "ruột" mấy hàm ấy chứa gì
Mình thường theo phương pháp thực nghiệm để chứng minh. Tức là:
– Với dữ liêu ít, mình sẽ xài công thức nào NGẮN NHẤT
– Với dữ liệu nhiều, nếu phát hiện được độ chênh lệch về tốc độ giữa các hàm, mình sẽ xài công thức nào NHANH NHẤT
——————————————-
Với câu hỏi ở topic này, mình vẫn còn thắc mắc: Nếu giá trị tìm trùng với giá trị trong bảng dò (chẳng hạn tìm ngày 15/4/2017) thì giá trị liền trước và sau sẽ là cái nào?