nếu mới nhất là những dòng cuốiXin nhờ ACE GPE giúp đỡ bài toán này , mình có giải thích một chút trong bảng excel kèm theo.
tks ACE trước![]()
O2 =IFERROR(LOOKUP(2,1/($A$3:$A$43=$N2)/(E$3:E$43<>""),E$3:E$43),"")
Option Explicit
Sub gpeDienSoLieuChoBang()
Dim Cls As Range, Rng As Range, sRng As Range
Dim MyAdd As String
Dim Dat As Date, J As Byte
Set Rng = Range([A2], [A9999].End(xlUp))
For Each Cls In Range([N2], [N2].End(xlDown))
Dat = #1/1/1901#
Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
If sRng.Offset(, 3).Value > Dat Then
Dat = sRng.Offset(, 3).Value
For J = 1 To 4
Cls.Offset(, J).Value = sRng.Offset(, 3 + J).Value
Next J
End If
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
Next Cls
End Sub
nếu mới nhất là những dòng cuốiMã:O2 =IFERROR(LOOKUP(2,1/($A$3:$A$43=$N2)/(E$3:E$43<>""),E$3:E$43),"")

TKsHieuCD
công thức khá là hay. có một điều, mình giải thích ko rỏ ràng .
Ý là mình lấy giá trị mới nhất ( nguyên cả hàng của công trình đó luôn)
VD ctr CCC , mình đổi tên ctr TTT tại hàng 30 thành CCC,
khi đó như ý của mình thì nó sẽ lấ giá trí mới nhất của CCC là : 0 0 0 2:30 thôi
chứ ko lấy giá trị củ của CCC trên hàng số 5 nhập vào thành mới.
View attachment 171583
perfect !!!!!!!!!!!!!!!!!! tks quocgiacan nhiêu nhé.Vậy thì còn dễ hơn nữa, bạn bỏ bớt đoạn: ..../(E$3:E$43<>"") đi là xong
Chúc bạn ngày vui.