Giúp code lấy dự liệu dòng cuối nếu trùng Tháng

Liên hệ QC

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE ! Em cần 1 đoạn code Lấy dữ liệu từng tháng, nếu tháng nào xuất hiện >1 lần thì lấy dòng cuối. Em xin Chân thành cảm ơn !

1540864462376.png
 

File đính kèm

Cảm ơn Code Bác. Chạy hoàn toàn chính xác. Tiện thể cho em hỏi Nếu trường hợp trùng tháng lấy dòng trên cùng thì sữa code như thế nào .Cảm ơn bác Mũ En Nờ Lần
Bỏ phần Else đi thôi:
Mã:
Public Sub LocA()
    Dim Vung, i, J, Dic, Tam, k, kK
    Vung = Range([A4], [A50000].End(xlUp)).Resize(, 5)
    ReDim Tam(1 To UBound(Vung), 1 To UBound(Vung, 2))
    Set Dic = CreateObject("scripting.dictionary")
        For i = 1 To UBound(Vung)
            If Not Dic.exists(Vung(i, 1)) Then
                k = k + 1
                Dic.Add Vung(i, 1), k
                For J = 1 To UBound(Vung, 2)
                    Tam(k, J) = Vung(i, J)
                Next J
            End If
        Next i
[N4].Resize(k, 5) = Tam
End Sub
Mã:
Thân
 
Upvote 0
Bài này chỉ có 12 tháng, dùng chỉ số 1-12 như bài #16 là đủ rồi.
Dùng chỉ số đó, Lookup trong cái range "5000 ô" nếu muốn tìm trị cuối, Match nếu muốn tìm trị đầu.

Muốn dùng dao to búa lớn thì sửa lại code ở bài #22 như sau:

#Const TRICUOI = True

Public Sub LocA()
Const SOCOT = 5
Dim Vung, i, J, Dic, Tam, k
Dim sVung As Long
Dim khoa As Variant
Vung = Range([A4], [A50000].End(xlUp)).Resize(, SOCOT)
sVung = Ubound(Vung)
ReDim Tam(1 To sVung, 1 To SOCOT)
Set Dic = CreateObject("scripting.dictionary")
' load vào đít
For i = 1 To UBound(Vung)
#If TRICUOI Then
Dic(Vung(i, 1)) = i
#Else
If Not Dic.exists(Vung(i, 1)) Then Dic.Add Vung(i, 1), i
#End If
Next i
' dựa vào đít, load vào mảng dữ liệu
For each khoa in Dic.Keys
i = Dic(khoa)
k = k + 1
For j = 1 to SOCOT
Tam(k, j) = Vung(i, j)
Next j
Next i
If k then [N4].Resize(k, 5) = Tam
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom