Tự động điền đong trống theo điều kiện.

Liên hệ QC

ngochieu258

Thành viên mới
Tham gia
31/10/12
Bài viết
12
Được thích
0
Em có bài toán sau nhờ các bác giúp đỡ. Cột A là các ID có thể trùng nhau, cột B là mặt hàng có các dòng bị trống. Em muốn điền hết các dòng trống bên cột B thỏa mãn điều kiện là các ID trùng nhau ở Cột A sẽ cho kết quả trùng nhau ở cột B. Em có đính kèm ví dụ. Dữ liệu tầm 200k dòng nên làm kiểu thủ công hơi bị lâu ạ. Mong các bác giúp đỡ!
 

File đính kèm

  • tudongdien.xlsx
    9.4 KB · Đọc: 7
Em có bài toán sau nhờ các bác giúp đỡ. Cột A là các ID có thể trùng nhau, cột B là mặt hàng có các dòng bị trống. Em muốn điền hết các dòng trống bên cột B thỏa mãn điều kiện là các ID trùng nhau ở Cột A sẽ cho kết quả trùng nhau ở cột B. Em có đính kèm ví dụ. Dữ liệu tầm 200k dòng nên làm kiểu thủ công hơi bị lâu ạ. Mong các bác giúp đỡ!
Không thấy file đâu mà có trường hợp nào 1 mã nó có 2 tên không nhỉ.
 
Upvote 0
Không thấy file đâu mà có trường hợp nào 1 mã nó có 2 tên không nhỉ.
Sorry em vừa up lại ạ.
Bài đã được tự động gộp:

Chắc không đâu anh ạ.Em nghĩ thớt dùng tới ID để gán cho nhân viên thì cũng có hệ thống dữ liệu rồi á
Vâng ạ, không có trường hợp 1 mã 2 tên đâu ạ
 
Upvote 0
Sorry em vừa up lại ạ.
Bài đã được tự động gộp:


Vâng ạ, không có trường hợp 1 mã 2 tên đâu ạ
1652405757490.png
Chữ đực chữ cái thế kia thì kết quả muốn lấy như thế nào. Vừa dứt mồm kêu chắc không có. Thì dính luôn.
Bạn hạn chế dùng tiếng tây ta lẫn lộn nhé
 
Upvote 0
Em có bài toán sau nhờ các bác giúp đỡ. Cột A là các ID có thể trùng nhau, cột B là mặt hàng có các dòng bị trống. Em muốn điền hết các dòng trống bên cột B thỏa mãn điều kiện là các ID trùng nhau ở Cột A sẽ cho kết quả trùng nhau ở cột B. Em có đính kèm ví dụ. Dữ liệu tầm 200k dòng nên làm kiểu thủ công hơi bị lâu ạ. Mong các bác giúp đỡ!
Tham khảo code dưới đây.
Các ID phải <=1000000
Kết quả điền vào cột G để đối chiếu
Mã:
Option Explicit

Sub dien()
Dim ID
Dim Nguon
Dim Dong
Dim i, j, k

Nguon = Sheet1.Range("A1").CurrentRegion
k = UBound(Nguon)
ReDim Dong(k)
ReDim ID(1000000)

For i = 2 To k
    If Nguon(i, 2) = "" Then
        If ID(Nguon(i, 1)) = "" Then
            Dong(0) = Dong(0) + 1
            Dong(Dong(0)) = i
        Else
            Nguon(i, 2) = ID(Nguon(i, 1))
        End If
    Else
        ID(Nguon(i, 1)) = Nguon(i, 2)
    End If
Next i

For i = 1 To Dong(0)
    j = Dong(i)
    Nguon(j, 2) = ID(Nguon(j, 1))
Next i
'Sheet1.Range("A1").Resize(k, 2) = Nguon
Sheet1.Range("G1").Resize(k, 2) = Nguon
End Sub
 
Upvote 0
PHP:
Option Explicit
Sub tudong()
Dim lr&, cell As Range
lr = Cells(Rows.Count, "A").End(xlUp).Row
Range("A2:B" & lr).Sort Range("A1"), xlAscending, Range("B1"), , xlAscending
For Each cell In Range("B2:B" & lr).SpecialCells(xlCellTypeBlanks)
    cell.Value = cell.Offset(-1, 0).Value
Next
End Sub
 
Upvote 0
Tham khảo code dưới đây.
Các ID phải <=1000000
Kết quả điền vào cột G để đối chiếu
Mã:
Option Explicit

Sub dien()
Dim ID
Dim Nguon
Dim Dong
Dim i, j, k

Nguon = Sheet1.Range("A1").CurrentRegion
k = UBound(Nguon)
ReDim Dong(k)
ReDim ID(1000000)

For i = 2 To k
    If Nguon(i, 2) = "" Then
        If ID(Nguon(i, 1)) = "" Then
            Dong(0) = Dong(0) + 1
            Dong(Dong(0)) = i
        Else
            Nguon(i, 2) = ID(Nguon(i, 1))
        End If
    Else
        ID(Nguon(i, 1)) = Nguon(i, 2)
    End If
Next i

For i = 1 To Dong(0)
    j = Dong(i)
    Nguon(j, 2) = ID(Nguon(j, 1))
Next i
'Sheet1.Range("A1").Resize(k, 2) = Nguon
Sheet1.Range("G1").Resize(k, 2) = Nguon
End Sub
Em cảm ơn bác. Chạy ok r ạ
Bài đã được tự động gộp:

PHP:
Option Explicit
Sub tudong()
Dim lr&, cell As Range
lr = Cells(Rows.Count, "A").End(xlUp).Row
Range("A2:B" & lr).Sort Range("A1"), xlAscending, Range("B1"), , xlAscending
For Each cell In Range("B2:B" & lr).SpecialCells(xlCellTypeBlanks)
    cell.Value = cell.Offset(-1, 0).Value
Next
End Sub
rất ngắn gọn và cũng hay ạ.
 
Upvote 0
Cảm ơn 2 bác góp ý. Nhưng đây là em đang so sánh 2 cách và em thấy đều hay thì em dùng từ cũng hay thì nó có gì sai chăng?
 
Upvote 0
Web KT

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

Back
Top Bottom