Xin hỏi Lọc dữ liệu từ 3 sheet thành 1 Sheet (1 người xem)

  • Thread starter Thread starter ttqt30
  • Ngày gửi Ngày gửi
Liên hệ QC

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

ttqt30

Thành viên chính thức
Tham gia
30/9/08
Bài viết
82
Được thích
2
Em có 1 file EXCEL gồm có 3 sheet NHANVIEN ,CHAMCONG ,PHUCAP . 3 sheet Cùng chung MANV
Giờ em muốn Tổng hợp dữ liệu từ 3 sheet trên thành 1 sheet TONGHOP. (không dùng hàm tìm kiếm Vlookup) .Nhờ ANh chị tren Diễn đàn ai biết chỉ dùm. E Cảm ơn trước!
Xem file đính kèm dùm em
 

File đính kèm

Em có 1 file EXCEL gồm có 3 sheet NHANVIEN ,CHAMCONG ,PHUCAP . 3 sheet Cùng chung MANV
Giờ em muốn Tổng hợp dữ liệu từ 3 sheet trên thành 1 sheet TONGHOP. (không dùng hàm tìm kiếm Vlookup) .Nhờ ANh chị tren Diễn đàn ai biết chỉ dùm. E Cảm ơn trước!
Xem file đính kèm dùm em

Nếu số liệu ko quá lớn bạn thử dùng code cùi bắp của mình xem sao. :-= (điều kiện trong 1 sheet các mã ko trùng nhau nhé)

Mã:
Sub update_max()
Dim ArrMax As Range, ArrMax1 As Range, ArrMax2 As Range, ArrMax3 As Range
Dim max As Range, Kqua As Range


Set ArrMax = Range("A2:A11")
Set ArrMax1 = Sheets("nhanvien").Range("A2:A11")
Set ArrMax2 = Sheets("chamcong").Range("A2:A11")
Set ArrMax3 = Sheets("phucap").Range("A2:A11")
    
    For Each max In ArrMax
    If max <> "" Then
    'nhan vien
        Set Kqua = ArrMax1.Find(max, , xlFormulas, xlWhole)
        If Not Kqua Is Nothing Then max.Offset(, 1).Value = Kqua.Offset(, 2).Value
    'cham cong
        Set Kqua = ArrMax2.Find(max, , xlFormulas, xlWhole)
        If Not Kqua Is Nothing Then max.Offset(, 2).Value = Kqua.Offset(, 1).Value
    'phu cap
        Set Kqua = ArrMax3.Find(max, , xlFormulas, xlWhole)
        If Not Kqua Is Nothing Then max.Offset(, 3).Value = Kqua.Offset(, 1).Value
    End If
    Next
    
    MsgBox ("update_max xong"), , "Thong bao"
End Sub

Link: https://www.mediafire.com/?iyvs9xlkd182acs
 
Lần chỉnh sửa cuối:
Upvote 0
cảm ơn bạn đã giúp mình,nhưng mình muốn dữ liệu khi chạy nó hiển thi như filw đính kèm ,xem giúp mình nhé ! Thanks bạn rất nhiều!
 
Upvote 0
Sorry bạn mình không thấy chổ để add file đính kèm
đợi chút mình xem nhé
 
Upvote 0
cảm ơn bạn đã giúp mình,nhưng mình muốn dữ liệu khi chạy nó hiển thi như filw đính kèm ,xem giúp mình nhé ! Thanks bạn rất nhiều!
 

File đính kèm

Upvote 0
sao không dùng hàm cho mà viết code cho khó ra bạn
 
Upvote 0
Code ko thay đổi, bạn mở file nhấn nút lọc nhé.

Cảm ơn Anh nhiều,Tại đang học VB nên muuon hỏi anh chút về thuật toán và giải thích câu lệnh dùm em chut dc kg? tại đang nghiên cứu VB đó anh

'nhan vien
Set Kqua = ArrMax1.Find(max, , xlFormulas, xlWhole)
If Not Kqua Is Nothing Then max.Offset(, 1).Value = Kqua.Offset(, 2).Value
????
 
Upvote 0
Cảm ơn Anh nhiều,Tại đang học VB nên muuon hỏi anh chút về thuật toán và giải thích câu lệnh dùm em chut dc kg? tại đang nghiên cứu VB đó anh

'nhan vien
Set Kqua = ArrMax1.Find(max, , xlFormulas, xlWhole)
If Not Kqua Is Nothing Then max.Offset(, 1).Value = Kqua.Offset(, 2).Value
????

- Set Kqua... <---> Set Kqua = Sheets("nhanvien").Range("A2:A11").Find(max, , xlFormulas, xlWhole)
tìm chính xác mã bên sheet nhanvien dựa vào phương thức Find()
bạn tham khảo thêm tại: Tổng hợp về phương thức tìm kiếm FIND (Find Method)

- If Not Kqua Is Nothing then '---> nếu tìm thấy mã thì ...(nếu ko có dòng này sẽ xảy ra lỗi khi sheet tonghop có mã A1000 nhưng sheet nhanvien ko có)
- max.Offset(, 1).Value '---> giá trị nằm bên phải của max 1 ô (cột chức vụ tại sheet tonghop)
- Kqua.Offset(, 2).Value '---> giá trị cell được tìm thấy bên sheet nhanvien va dịch sang phải 2 ô (chính là cột chức vụ)
 
Upvote 0
Cảm ơn Anh đã bỏ thời gian giải thích cho em! Chúc anh một ngày mới vui vẻ!
 
Upvote 0

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

Back
Top Bottom