Bài toán lọc và trích xuất dữ liệu

Liên hệ QC
Mình có vấn đề về lọc và trích xuất dữ liệu từ một file excel như mô tả trong clip sau (
)
File data để chạy thử https://drive.google.com/file/d/1LA...l274ck0xJX1MCqT5wHfAJD707whJbfJs4ANdWtON-youY
Bạn nào xử lý được vấn đề mình nêu ra ở đây nhanh nhất liên hệ với mình có thưởng nhé.
Thưởng nhiêu? 6 con số hay 7 con số để biết làm kiếm thưởng uống cafe
 
Upvote 0
Upvote 0
Mình có vấn đề về lọc và trích xuất dữ liệu từ một file excel như mô tả trong clip sau (
)
File data để chạy thử https://drive.google.com/file/d/1LA...l274ck0xJX1MCqT5wHfAJD707whJbfJs4ANdWtON-youY
Bạn nào xử lý được vấn đề mình nêu ra ở đây nhanh nhất liên hệ với mình có thưởng nhé.
Tạo 1 sheet mới có tên là KQ rồi chạy code:
PHP:
Sub TrichLoc()
Dim Dic1 As Object, irow As Long, i As Long
Dim Arr() As Variant, tmpArr As Variant

Set Dic1 = CreateObject("Scripting.Dictionary")

With Sheets("Sheet1")
    .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row + 1 & ":R100000").ClearContents
    tmpArr = .Range("C2:J" & .Range("A" & .Rows.Count).End(xlUp).Row).Value
    ReDim Arr(1 To UBound(tmpArr, 1), 1 To 4)
    For irow = 1 To UBound(tmpArr, 1)
        If Not Dic1.Exists(tmpArr(irow, 1) & "-" & tmpArr(irow, 2)) Then
            i = i + 1
             Dic1.Add tmpArr(irow, 1) & "-" & tmpArr(irow, 2), i
             Arr(i, 1) = i
             Arr(i, 2) = tmpArr(irow, 1) & "-" & tmpArr(irow, 2)
             Arr(i, 3) = tmpArr(irow, 8)
             Arr(i, 4) = tmpArr(irow, 3)
        Else
            If tmpArr(irow, 3) > Arr(Dic1.Item(tmpArr(irow, 1) & "-" & tmpArr(irow, 2)), 4) Then
                Arr(Dic1.Item(tmpArr(irow, 1) & "-" & tmpArr(irow, 2)), 4) = tmpArr(irow, 3)
                Arr(Dic1.Item(tmpArr(irow, 1) & "-" & tmpArr(irow, 2)), 3) = tmpArr(irow, 8)
            End If
        End If
    Next irow
End With

With Sheets("KQ")
    .Range("C3:E10000").ClearContents
    .Range("D3").Resize(i, 3).NumberFormat = "@"
    .Range("C3").Resize(i, 3).Value = Arr
End With

End Sub

Thưởng đê...ê...ê!
 
Upvote 0
Chỉ nói giải thuật thì có thưỏng hôn?

Cách dễ nhất là dùng ADO. Câu lệnh SQL đại khái như sau

Select F5, F6, Max(F7) From Bảng Where F1 Is Not Null Group By F5, F6

Nếu biết dùng Power Query thì còn dễ hơn. Câu query đại khái như trên.
 
Upvote 0
Cảm ơn các bạn nhé, bài toán này với người biết thì dễ nhỉ.

Đúng là tri thức là sức mạnh.

Đã có người nhanh chân nhận một chầu bia rồi,

Mong các bạn tiếp tục phát huy và cùng giao lưu nhé.
 
Upvote 0
Chả có tổng kết cho biết giải pháp nào đúng sai, giải pháp nào thực tế hay không thực tế.
Chính thức là tôi cũng không biết mình có hiểu đề bài 100% hay không.

Bài toán như vậy đố làm chi. Mất công đọc cái clip quá.
 
Upvote 0
Chả có tổng kết cho biết giải pháp nào đúng sai, giải pháp nào thực tế hay không thực tế.
Chính thức là tôi cũng không biết mình có hiểu đề bài 100% hay không.

Bài toán như vậy đố làm chi. Mất công đọc cái clip quá.
Hình như bạn này câu view cái clip thôi.
 
Upvote 0
Web KT
Back
Top Bottom