XÓA DÒNG TRÙNG ĐIỀU KIỆN GIỮ LẠI THỜI GIAN GẦN NHẤT

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kieuttt

Thành viên mới
Tham gia
11/7/14
Bài viết
7
Được thích
4
Anh/chị hỗ trợ hướng dẫn em xóa những dòng cột B (số tài khoản vay trùng) điều kiện (cột A) ngày giao dịch xa nhất, giữ lại dòng ngày giao dịch gần nhất. Ví dụ mã PDPD2412256370 giữ lại dòng ngày 5/26/2024, xóa dòng 5/1/2024. Em có đính kèm file bên dưới
Ngày giao dịchSố tài khoản vay
5/1/2024PDPD2412258152
5/26/2024PDPD2412256370
5/1/2024PDPD2412256370
5/1/2024PDPD2412252101
5/1/2024PDPD2412238440
5/26/2024PDPD2412232101
5/1/2024PDPD2412232101
5/26/2024PDPD2412202359
5/1/2024PDPD2412202359
5/1/2024PDPD2412200764
5/1/2024PDPD2412200055
11/4/2024PDPD2411790027
10/2/2024PDPD2411790027
5/1/2024PDPD2411789030
5/1/2024PDPD2411739625
5/1/2024PDPD2411738285
5/26/2024PDPD2411737261
5/1/2024PDPD2411737261
5/26/2024PDPD2411733539
5/1/2024PDPD2411733539
 

File đính kèm

Anh/chị hỗ trợ hướng dẫn em xóa những dòng cột B (số tài khoản vay trùng) điều kiện (cột A) ngày giao dịch xa nhất, giữ lại dòng ngày giao dịch gần nhất. Ví dụ mã PDPD2412256370 giữ lại dòng ngày 5/26/2024, xóa dòng 5/1/2024. Em có đính kèm file bên dưới
Ngày giao dịchSố tài khoản vay
5/1/2024PDPD2412258152
5/26/2024PDPD2412256370
5/1/2024PDPD2412256370
5/1/2024PDPD2412252101
5/1/2024PDPD2412238440
5/26/2024PDPD2412232101
5/1/2024PDPD2412232101
5/26/2024PDPD2412202359
5/1/2024PDPD2412202359
5/1/2024PDPD2412200764
5/1/2024PDPD2412200055
11/4/2024PDPD2411790027
10/2/2024PDPD2411790027
5/1/2024PDPD2411789030
5/1/2024PDPD2411739625
5/1/2024PDPD2411738285
5/26/2024PDPD2411737261
5/1/2024PDPD2411737261
5/26/2024PDPD2411733539
5/1/2024PDPD2411733539
Bạn dùng code sau (theo chatGPT)
Mã:
Sub RemoveDuplicateAccountsKeepLatest()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim dict As Object
    Dim i As Long
    Dim account As String
    Dim dateValue As Date

    ' G?n Sheet làm vi?c (s?a "Sheet1" n?u c?n)
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' Xác d?nh dòng cu?i cùng trong c?t A
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' T?o Dictionary d? theo dõi STK vay và ngày g?n nh?t
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' Duy?t qua d? li?u t? dòng 2 (gi? d?nh tiêu d? ? dòng 1)
    For i = 2 To lastRow
        account = ws.Cells(i, "B").Value
        dateValue = ws.Cells(i, "A").Value
        
        ' Ki?m tra n?u STK vay dã t?n t?i trong Dictionary
        If dict.exists(account) Then
            ' C?p nh?t ngày g?n nh?t n?u l?n hon ngày hi?n t?i
            If dateValue > dict(account) Then
                dict(account) = dateValue
            End If
        Else
            ' Thêm STK vay và ngày giao d?ch vào Dictionary
            dict.Add account, dateValue
        End If
    Next i
    
    ' Duy?t ngu?c qua d? li?u d? xóa các dòng không th?a di?u ki?n
    For i = lastRow To 2 Step -1
        account = ws.Cells(i, "B").Value
        dateValue = ws.Cells(i, "A").Value
        
        ' N?u ngày giao d?ch không kh?p v?i ngày g?n nh?t, xóa dòng
        If dict.exists(account) And dateValue < dict(account) Then
            ws.Rows(i).Delete
        End If
    Next i
    
    ' Gi?i phóng b? nh?
    Set dict = Nothing
    
    MsgBox "Ða xong", vbInformation
End Sub
 
Anh/chị hỗ trợ hướng dẫn em xóa những dòng cột B (số tài khoản vay trùng) điều kiện (cột A) ngày giao dịch xa nhất, giữ lại dòng ngày giao dịch gần nhất. Ví dụ mã PDPD2412256370 giữ lại dòng ngày 5/26/2024, xóa dòng 5/1/2024. Em có đính kèm file bên dưới
Ngày giao dịchSố tài khoản vay
5/1/2024PDPD2412258152
5/26/2024PDPD2412256370
5/1/2024PDPD2412256370
5/1/2024PDPD2412252101
5/1/2024PDPD2412238440
5/26/2024PDPD2412232101
5/1/2024PDPD2412232101
5/26/2024PDPD2412202359
5/1/2024PDPD2412202359
5/1/2024PDPD2412200764
5/1/2024PDPD2412200055
11/4/2024PDPD2411790027
10/2/2024PDPD2411790027
5/1/2024PDPD2411789030
5/1/2024PDPD2411739625
5/1/2024PDPD2411738285
5/26/2024PDPD2411737261
5/1/2024PDPD2411737261
5/26/2024PDPD2411733539
5/1/2024PDPD2411733539
Bạn đăng ở trong mục Hàm và công thức Excel nên tôi làm theo kiểu công thức và tay :)
Bước 1: Viết công thức cho cột C
PHP:
C2=IF(COUNTIF($B$2:$B$35,B2)=1,1,IF(AGGREGATE(14,6,$A$2:$A$35/(B2=$B$2:$B$35),1)=A2,1,2))
Enter, Fill xuống
Bước 2: Sort dữ liệu A - Z cho cả 3 cột A, B, C theo giá trị Cột C
Bước 3: Xóa dữ liệu 3 cột A, B, C đối với các dòng có giá trị 2 tại Cột C

Hi vọng giúp ích được cho bạn.
 
Anh/chị hỗ trợ hướng dẫn em xóa những dòng cột B (số tài khoản vay trùng) điều kiện (cột A) ngày giao dịch xa nhất, giữ lại dòng ngày giao dịch gần nhất. Ví dụ mã PDPD2412256370 giữ lại dòng ngày 5/26/2024, xóa dòng 5/1/2024. Em có đính kèm file bên dưới
Ngày giao dịchSố tài khoản vay
5/1/2024PDPD2412258152
5/26/2024PDPD2412256370
5/1/2024PDPD2412256370
5/1/2024PDPD2412252101
5/1/2024PDPD2412238440
5/26/2024PDPD2412232101
5/1/2024PDPD2412232101
5/26/2024PDPD2412202359
5/1/2024PDPD2412202359
5/1/2024PDPD2412200764
5/1/2024PDPD2412200055
11/4/2024PDPD2411790027
10/2/2024PDPD2411790027
5/1/2024PDPD2411789030
5/1/2024PDPD2411739625
5/1/2024PDPD2411738285
5/26/2024PDPD2411737261
5/1/2024PDPD2411737261
5/26/2024PDPD2411733539
5/1/2024PDPD2411733539
Có đúng ý bạn không.
Bạn đăng ở trong mục Hàm và công thức Excel nên tôi làm theo kiểu công thức và tay :)
Bước 1: Viết công thức cho cột C
PHP:
C2=IF(COUNTIF($B$2:$B$35,B2)=1,1,IF(AGGREGATE(14,6,$A$2:$A$35/(B2=$B$2:$B$35),1)=A2,1,2))
Enter, Fill xuống
Bước 2: Sort dữ liệu A - Z cho cả 3 cột A, B, C theo giá trị Cột C
Bước 3: Xóa dữ liệu 3 cột A, B, C đối với các dòng có giá trị 2 tại Cột C

Hi vọng giúp ích được cho bạn.
Nếu cột
Bạn đăng ở trong mục Hàm và công thức Excel nên tôi làm theo kiểu công thức và tay :)
Bước 1: Viết công thức cho cột C
PHP:
C2=IF(COUNTIF($B$2:$B$35,B2)=1,1,IF(AGGREGATE(14,6,$A$2:$A$35/(B2=$B$2:$B$35),1)=A2,1,2))
Enter, Fill xuống
Bước 2: Sort dữ liệu A - Z cho cả 3 cột A, B, C theo giá trị Cột C
Bước 3: Xóa dữ liệu 3 cột A, B, C đối với các dòng có giá trị 2 tại Cột C

Hi vọng giúp ích được cho bạn.
Bạn đăng ở trong mục Hàm và công thức Excel nên tôi làm theo kiểu công thức và tay :)
Bước 1: Viết công thức cho cột C
PHP:
C2=IF(COUNTIF($B$2:$B$35,B2)=1,1,IF(AGGREGATE(14,6,$A$2:$A$35/(B2=$B$2:$B$35),1)=A2,1,2))
Enter, Fill xuống
Bước 2: Sort dữ liệu A - Z cho cả 3 cột A, B, C theo giá trị Cột C
Bước 3: Xóa dữ liệu 3 cột A, B, C đối với các dòng có giá trị 2 tại Cột C

Hi vọng giúp ích được cho bạn.
Bạn đăng ở trong mục Hàm và công thức Excel nên tôi làm theo kiểu công thức và tay :)
Bước 1: Viết công thức cho cột C
PHP:
C2=IF(COUNTIF($B$2:$B$35,B2)=1,1,IF(AGGREGATE(14,6,$A$2:$A$35/(B2=$B$2:$B$35),1)=A2,1,2))
Enter, Fill xuống
Bước 2: Sort dữ liệu A - Z cho cả 3 cột A, B, C theo giá trị Cột C
Bước 3: Xóa dữ liệu 3 cột A, B, C đối với các dòng có giá trị 2 tại Cột C

Hi vọng giúp ích được cho bạn.
Nếu Ngày giao dịch và Số tài khoản vay trùng thì lấy tất cả.
 

File đính kèm

Web KT

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

Back
Top Bottom