Nhờ hỗ trợ lọc duy nhất và cập nhật thông tin mới nhất theo thời gian (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tham gia với ý tưởng của bài #5, Imei S duy nhất, When mới nhất
PHP:
Public Sub Gpe()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Rws As Long, Txt As String
    Txt = "Sold"
    sArr = Sheets("DATA").Range("C2", Sheets("DATA").Range("C100000").End(xlUp)).Resize(, 13).Value
    R = UBound(sArr)
ReDim dArr(1 To R, 1 To 13)
With CreateObject("Scripting.Dictionary")
    For I = 1 To R
        If Not .Exists(sArr(I, 1)) Then
            K = K + 1
            .Item(sArr(I, 1)) = K
            dArr(K, 1) = sArr(I, 1)
            For J = 3 To 13
                dArr(K, J - 1) = sArr(I, J)
            Next J
            If sArr(I, 3) = Txt Then dArr(K, 13) = sArr(I, 6)
        Else
            Rws = .Item(sArr(I, 1))
            If (sArr(I, 5) + sArr(I, 6)) > (sArr(Rws, 5) + sArr(Rws, 6)) Then
                For J = 3 To 13
                    dArr(Rws, J - 1) = sArr(I, J)
                Next J
                If sArr(I, 3) = Txt Then dArr(Rws, 13) = sArr(I, 6)
            End If
        End If
    Next I
End With
Sheets("STATUS").Range("A2").Resize(K, 13) = dArr
End Sub
 
Chào anh @ongke0711

@befaint ơi, cảm ơn bạn nhiều nhé.! nếu được bạn giúp mình 1 chút nhen. Mình có thêm 1 cột trong sheet 2 tên "Date Sold", bạn có cách nào xuất giúp miình cái ngày ĐẦU TIÊN mà IMES đó ghi nhận là "Sold" trong cột STATUS không bạn. Nó hơi ngược với các dòng khác một chút. Các cột khác là lấy dữ liệu mới nhất nhưng riêng cột Date Sold thì lấy dữ liệu cũ nhất nếu IMES đó ghi nhận là "Sold". Vì ngày đó mình sẽ lấy là ngày để Bảo hành sản phẩm đó bạn.

Bạn thay câu lệnh sql trong code của befaint bằng dòng này:

Mã:
sql = "SELECT T1.*, T3.NgayBan " & _
              "FROM (SELECT F1, Min(F5) AS NgayBan FROM [" & .Name & "$D2:O" & lR & "] GROUP BY F1) AS T3 " & _
              "INNER JOIN ((SELECT F1, Max(F5) AS NgayGanNhat FROM [" & .Name & "$D2:O" & lR & "] GROUP BY F1) AS T2 " & _
              "INNER JOIN [" & .Name & "$D2:O" & lR & "] AS T1 ON (T2.NgayGanNhat = T1.F5) AND (T2.F1 = T1.F1)) ON T3.F1 = T1.F1 " & _
              "ORDER BY T1.F1 ASC"
 
Lần chỉnh sửa cuối:
Tôi tham gia với ý tưởng của bài #5, Imei S duy nhất, When mới nhất
PHP:
Public Sub Gpe()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Rws As Long, Txt As String
    Txt = "Sold"
    sArr = Sheets("DATA").Range("C2", Sheets("DATA").Range("C100000").End(xlUp)).Resize(, 13).Value
    R = UBound(sArr)
ReDim dArr(1 To R, 1 To 13)
With CreateObject("Scripting.Dictionary")
    For I = 1 To R
        If Not .Exists(sArr(I, 1)) Then
            K = K + 1
            .Item(sArr(I, 1)) = K
            dArr(K, 1) = sArr(I, 1)
            For J = 3 To 13
                dArr(K, J - 1) = sArr(I, J)
            Next J
            If sArr(I, 3) = Txt Then dArr(K, 13) = sArr(I, 6)
        Else
            Rws = .Item(sArr(I, 1))
            If (sArr(I, 5) + sArr(I, 6)) > (sArr(Rws, 5) + sArr(Rws, 6)) Then
                For J = 3 To 13
                    dArr(Rws, J - 1) = sArr(I, J)
                Next J
                If sArr(I, 3) = Txt Then dArr(Rws, 13) = sArr(I, 6)
            End If
        End If
    Next I
End With
Sheets("STATUS").Range("A2").Resize(K, 13) = dArr
End Sub

Bác ơi, code của bác em chạy nó báo lỗi đoạn này bác ak.
If (sArr(I, 5) + sArr(I, 6)) > (sArr(Rws, 5) + sArr(Rws, 6)) Then

Bác chỉnh giúp em được hok ạ.?
Bài đã được tự động gộp:

Bạn thay câu lệnh sql trong code của befaint bằng dòng này:

Mã:
sql = "SELECT T1.*, T3.NgayBan " & _
              "FROM (SELECT F1, Min(F5) AS NgayBan FROM [" & .Name & "$D2:O" & lR & "] GROUP BY F1) AS T3 " & _
              "INNER JOIN ((SELECT F1, Max(F5) AS NgayGanNhat FROM [" & .Name & "$D2:O" & lR & "] GROUP BY F1) AS T2 " & _
              "INNER JOIN [" & .Name & "$D2:O" & lR & "] AS T1 ON (T2.NgayGanNhat = T1.F5) AND (T2.F1 = T1.F1)) ON T3.F1 = T1.F1 " & _
              "ORDER BY T1.F1 ASC"


Bác ơi, bác chỉnh giúp em với, code của bác nó hiện Where gần nhất chứ không phải Date sold bác ak.
Em có mò mà chỉnh hoài hok được bác ơi. Em cảm ơn bác nhiều nhé.
 
Lần chỉnh sửa cuối:
Do có thêm cột Hour nên khi đổ dữ liệu, nó bị lệnh cột.
Bạn thêm cột Hour vào cùng vị trí bên sheet kết quả luôn là được rồi.
 
Lần chỉnh sửa cuối:
Do có thêm cột Hour nên khi đổ dữ liệu, nó bị lệnh cột.
Bạn thêm cột Hour vào cùng vị trí bên sheet kết quả luôn là được rồi.
Dạ. Em cảm ơn bác nhiều nhé. Mọi thứ quá okay rồi bác ak. Thanks bác nhiều nhiều.
Bài đã được tự động gộp:

Thấy File và Code mới tìm ra lỗi.
Wow. Tuyệt quá, em cảm ơn bác nhiều nhé. File em đã ngon lành cành đào...hihihi
Bài đã được tự động gộp:

Cảm ơn các bác:
@Ba Tê , @ongke0711 @befaint @SA_DQ cùng giaiphapexcel đã hỗ trợ em bài toán này nhen. Bây giờ mọi thứ đã quá okay!

Thanks for all,
Nếu bác nào ở NHa Trang, cho em được mời ly bia nhen.
Cheers,
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom