vlookup nhiều sheet cùng lúc lâý lần lượt dữ liệu các cột ở 1 sheet khác (1 người xem)

  • Thread starter Thread starter Thbv
  • Ngày gửi Ngày gửi

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

Thbv

Thành viên hoạt động
Tham gia
3/5/19
Bài viết
102
Được thích
10
Trong file có 13 sheet là: Loaitru, 0118, 0218 .....1218
Mình muốn giúp code tại cột I2 của sheet 0118 đặt hàm vlookup(H2;sheet loaitru A:B;2;0)
Tại cột I2 của sheet 0218 đặt hàm vlookup(H2;sheet loaitru C:D;2;0)
Lần lượt như trên đến sheet 1218
Tại cột I2 của sheet 1218 đặt hàm vlookup(H2;sheet loaitru w:x;2;0)
Tất cả các sheet từ 0118 đến 1218 hàm vlookup đều chạy đến dòng cuối cùng của cột H
Chạy xong thì sort cột H sau đó sort cột I
Mong mọi người giúp đỡ
File đính kèm
 

File đính kèm

QUOTE="Thbv, post: 919150, member: 1209731"]
Trong file có 13 sheet là: Loaitru, 0118, 0218 .....1218
Mình muốn giúp code tại cột I2 của sheet 0118 đặt hàm vlookup(H2;sheet loaitru A:B;2;0)
Tại cột I2 của sheet 0218 đặt hàm vlookup(H2;sheet loaitru C:D;2;0)
Lần lượt như trên đến sheet 1218
Tại cột I2 của sheet 1218 đặt hàm vlookup(H2;sheet loaitru w:x;2;0)
Tất cả các sheet từ 0118 đến 1218 hàm vlookup đều chạy đến dòng cuối cùng của cột H
Chạy xong thì sort cột H sau đó sort cột I
Mong mọi người giúp đỡ
File đính kèm
[/QUOTE]
Chuyện này chắc phải dùng VBA.
1. Dữ liệu trong sheet LoaiTru chẳng tìm đâu ra trong 12 sheet còn lại.
2. Sort cột H, rồi cột I là sao? Phải Sort cả bảng chứ Sort 2 cột thì dữ liệu "lộn tùng phèo"? (Không làm)
PHP:
Option Explicit

Public Sub s_Gpe()
Dim Dic As Object, Ws As Worksheet, sArr(), dArr(), tArr()
Dim I As Long, J As Long, K As Long, R As Long, R2 As Long, Txt As String
Set Dic = CreateObject("Scripting.Dictionary")
Dic.CompareMode = vbTextCompare
sArr = Sheets("LoaiTru").Range("A1").CurrentRegion.Value    'Mang du lieu sheet LoaiTru'
R = UBound(sArr)
For Each Ws In ThisWorkbook.Worksheets      ' Duyet tuwng sheet trong file'
    If Ws.Name <> "LoaiTru" Then
        If IsNumeric(Left(Ws.Name, 1)) Then '--Xac dinh ten sheet hop le'
            Dic.RemoveAll                                'Xoa tat ca Keys trong Dic'
            With Ws
            If .Range("H100000").End(xlUp).Row > 1 Then ' Cac sheet Thang phai co it nhat 1 dong du lieu'
                tArr = .Range("H1", .Range("H100000").End(xlUp)).Value
                R2 = UBound(tArr)
                ReDim dArr(1 To R2, 1 To 1)
                J = Left(Ws.Name, 2) * 2 - 1    ' Xac dinh cot se lay du lieu trong sheet LoaiTru'
                For I = 1 To R                  ' Nap du lieu vao Dic'
                    If sArr(I, J) <> Empty Then Dic.Item(sArr(I, J)) = sArr(I, J + 1)
                Next I
                For I = 2 To R2                 ' Duyet tung dong trong cac sheet Thang'
                    Txt = tArr(I, 1)
                    If Dic.Exists(Txt) Then     ' Neu co Key trong Dic thi lay du lieu = Item'
                        dArr(I, 1) = Dic.Item(Txt)
                    End If
                Next I
                .Range("I1").Resize(R2) = dArr  ' Gan du lieu xuong sheet'
            End If
            End With
        End If
    End If
Next Ws
Set Dic = Nothing
End Sub
 
Lần chỉnh sửa cuối:
E xin lỗi A Ba Tê e nói chưa rõ
A nói đúng: Ý e Vlookup các sheet xong thì sort cả bảng dựa theo cột chính là cột H, xong lại sort cả bảng theo cột chính là cột I (Cột vừa Vlookup) tất cả các sheet tháng. E mong A giúp e thêm. E cảm ơn ạ
 

File đính kèm

E xin lỗi A Ba Tê e nói chưa rõ
A nói đúng: Ý e Vlookup các sheet xong thì sort cả bảng dựa theo cột chính là cột H, xong lại sort cả bảng theo cột chính là cột I (Cột vừa Vlookup) tất cả các sheet tháng. E mong A giúp e thêm. E cảm ơn ạ
Thêm 2 dòng lệnh sau khi gán mảng dArr() xuống sheet:
PHP:
................................
            Next I
                .Range("I1").Resize(R2) = dArr  ' Gan mang dArr xuong sheet'
                .Range("F2").Resize(R2, 25).Sort Key1:=.Range("H2"), Order1:=xlAscending 'Thêm dòng này'
                .Range("F2").Resize(R2, 25).Sort Key1:=.Range("I2"), Order1:=xlAscending   'Thêm dòng này'
            End If
Thêm 1 dòng này trên đầu:
PHP:
Public Sub s_Gpe()
Application.ScreenUpdating = False 'Thêm dòng này'
....................
 
SHEET Loaitru E muốn lấy tất cả cột chứ không phải lấy dữ liệu liền mạch, E muốn Vlookup lấy dữ liệu cả cột của sheet Loaitru Ví dụ: sheet"0118" tại cột I2 hàm Vlookup sẽ là như thế này: VLOOKUP(H2;Loaitru!$A:$B;2;0)
Đó là Ví dụ sheet "0118'
Các sheet các tháng khác cũng như vậy

VD sheet "1218" tại cột I2 công thức sẽ là : VLOOKUP(H2;Loaitru!W:$X;2;0):
Giải thích hàm VLOOKUP(H2;Loaitru!W:$X;2;0) Tại cột I2 của sheet 1218 đặt hàm vlookup chọn H2 tìm kiếm trong bảng ở sheet "Loaitru" cột W và cột X nếu thấy trả giá trị là cột X (Lưu ý cột W và cột X là tìm cả cột kể cả không liền mạch.

Mong A BATE giúp đỡ
 
E xin lỗi A Ba Tê e nói chưa rõ
A nói đúng: Ý e Vlookup các sheet xong thì sort cả bảng dựa theo cột chính là cột H, xong lại sort cả bảng theo cột chính là cột I (Cột vừa Vlookup) tất cả các sheet tháng. E mong A giúp e thêm. E cảm ơn ạ
-----------------------------------------------------------------
SHEET Loaitru E muốn lấy tất cả cột chứ không phải lấy dữ liệu liền mạch, E muốn Vlookup lấy dữ liệu cả cột của sheet Loaitru Ví dụ: sheet"0118" tại cột I2 hàm Vlookup sẽ là như thế này: VLOOKUP(H2;Loaitru!$A:$B;2;0)
Đó là Ví dụ sheet "0118'
Các sheet các tháng khác cũng như vậy

VD sheet "1218" tại cột I2 công thức sẽ là : VLOOKUP(H2;Loaitru!W:$X;2;0):
Giải thích hàm VLOOKUP(H2;Loaitru!W:$X;2;0) Tại cột I2 của sheet 1218 đặt hàm vlookup chọn H2 tìm kiếm trong bảng ở sheet "Loaitru" cột W và cột X nếu thấy trả giá trị là cột X (Lưu ý cột W và cột X là tìm cả cột kể cả không liền mạch.
- Viết cho bạn cả văn và code không viết tắt 1 chữ, bạn lại sợ tốn công khi gõ A. E, ...
- Code tôi viết là theo dữ liệu từ bài #1, không có chuyện "không liền mạch". File sau tôi không tải về nên không biết dữ liệu của bạn "quái chiêu" như vậy.
- Kết quả thì bạn cứ báo đúng hay sai dòng nào, sheet nào thôi.
- Không có nick BATE
 

File đính kèm

E cảm ơn A nhiều. Vì E thử để các dòng ở sheet "Loaitru" có những dòng trống xen kẽ nên nó chỉ thực hiện đến dòng trống đầu tiên thôi nên E hỏi vậy. Nhưng giờ E hiểu rồi. E cảm ơn A nhiều ạ
 
E cảm ơn A nhiều. Vì E thử để các dòng ở sheet "Loaitru" có những dòng trống xen kẽ nên nó chỉ thực hiện đến dòng trống đầu tiên thôi nên E hỏi vậy. Nhưng giờ E hiểu rồi. E cảm ơn A nhiều ạ
Híc! "C Đ vẫn đẹp sao, ... T Y vẫn đ s"
 
Em nhờ anh giúp em cũng như yêu cầu trên nhưng em muốn thêm ở sheet "Loaitru" và sheet các tháng tương ứng nhiều năm nó vẫn thực hiện Vlookup lần lượt theo thứ tự ạ. Mong anh giúp em với
 

File đính kèm

Em nhờ anh giúp em cũng như yêu cầu trên nhưng em muốn thêm ở sheet "Loaitru" và sheet các tháng tương ứng nhiều năm nó vẫn thực hiện Vlookup lần lượt theo thứ tự ạ. Mong anh giúp em với
Tiêu đề sheet "Loaitru" là "Tháng 1/2017", làm sao biết để lấy dữ liệu vào sheet "2017.01"?
 

File đính kèm

Lần chỉnh sửa cuối:
Tiêu đề sheet "Loaitru" là "Tháng 1/2017", làm sao biết để lấy dữ luệ vào sheet "2017.01"?
Bài đã được tự động gộp:

Anh đặt hộ em tên sheet hàng tháng và tên tháng trong sheeet "Loaitru" nhé vì e đặt vậy khi tổng hợp nhiều file vào các sheet của 1 file nó mới thứ tự ( miễn là mình có thể tăng giảm số lượng thoải mái là được). Em cảm ơn Anh nhiều.
 
Lần chỉnh sửa cuối:
Bài đã được tự động gộp:

Anh đặt hộ em tên sheet hàng tháng và tên tháng trong sheeet "Loaitru" nhé vì e đặt vậy khi tổng hợp nhiều file vào các sheet của 1 file nó mới thứ tự ( miễn là mình có thể tăng giảm số lượng thoải mái là được). Em cảm ơn Anh nhiều.
Tôi đã gởi file ở bài #10 rồi mà, bạn chưa tải về xem?
 
Em không mở được file. Anh giúp em với ạ
 
E mở được rồi. E cảm ơn anh Ba Tê ạ
 
Anh Ba Tê ơi. Em muốn sheet"Loaitru" mình xóa bớt tên người hoặc thêm tên người trong tiêu đề thì khi chạy lại code lại nó sẽ chạy lấy dữ liệu mình mới sửa. Nhưng ở đây em xóa bớt tên người trong sheet"Loaitru" và chạy lại code nó vẫn lấy tên ở trong tiêu đề sheet" Loaitru" như cũ ở các sheet tháng. Mong A giúp đỡ
 
Anh Ba Tê ơi. Em muốn sheet"Loaitru" mình xóa bớt tên người hoặc thêm tên người trong tiêu đề thì khi chạy lại code lại nó sẽ chạy lấy dữ liệu mình mới sửa. Nhưng ở đây em xóa bớt tên người trong sheet"Loaitru" và chạy lại code nó vẫn lấy tên ở trong tiêu đề sheet" Loaitru" như cũ ở các sheet tháng. Mong A giúp đỡ
Hiểu chết liền.
Ví dụ cụ thể dòng nào, cột nào xem.
 
Em cụ thể file em đính kèm là file của bài 14. Em tải về và thêm ở sheet"Loaitru" tiêu đề là: 2019.03 (cột BA là Nguyễn Thị Thanh [0100004]
cột BB là Trưởng BKS) chạy code và nó tìm ra. Nhưng khi em xóa tên ở sheet"Loaitru" tiêu đề là: 2019.03 ở cột BA là Nguyễn Thị Thanh [0100004] và cột BB là Trưởng BKS đi và chạy code lần nữa thì lần này nó vẫn giữ nguyên kết quả của lần chạy trước đó anh ạ.
File em đính kèm ở sheet"Loaitru" tiêu đề là: 2019.03 cột BA và BB không có dữ liệu nhưng chạy code thì ở sheet tháng 2019.03 vẫn hiện là Nguyễn Thị Thanh [0100004] Trưởng BKS
Mong anh xem giúp
 

File đính kèm

Em cụ thể file em đính kèm là file của bài 14. Em tải về và thêm ở sheet"Loaitru" tiêu đề là: 2019.03 (cột BA là Nguyễn Thị Thanh [0100004]
cột BB là Trưởng BKS) chạy code và nó tìm ra. Nhưng khi em xóa tên ở sheet"Loaitru" tiêu đề là: 2019.03 ở cột BA là Nguyễn Thị Thanh [0100004] và cột BB là Trưởng BKS đi và chạy code lần nữa thì lần này nó vẫn giữ nguyên kết quả của lần chạy trước đó anh ạ.
File em đính kèm ở sheet"Loaitru" tiêu đề là: 2019.03 cột BA và BB không có dữ liệu nhưng chạy code thì ở sheet tháng 2019.03 vẫn hiện là Nguyễn Thị Thanh [0100004] Trưởng BKS
Mong anh xem giúp
Code trước, sheet Loaitru nếu gặp cột có tiêu đề mà không có dòng dữ liệu nào thì không làm gì cả với sheet tháng, nên nó có sao thì giữ nguyên vậy.
Bạn xem lại file này, từng sheet phải xét nên có chậm hơn 1 chút.
 

File đính kèm

Anh giúp em thêm code sort cả bảng theo cột H xong rồi sort cột I với ạ. E cảm ơn
Bài đã được tự động gộp:

Làm giống bài trước em thấy được rồi. Em cảm ơn anh Ba Tê.
 
Lần chỉnh sửa cuối:
Anh Ba Tê cho em hỏi. Em muốn dùng code anh cho em vào các file khác thì sửa chỗ nào ạ. Em cảm ơn
 
Anh Ba Tê cho em hỏi. Em muốn dùng code anh cho em vào các file khác thì sửa chỗ nào ạ. Em cảm ơn
Không trả lời được.
Chỉ khi nào thấy "file khác" khác với "file này" chỗ nào mới biết chỗ nào phải sửa.
Khi đó, so "file này" với "file khác", "code này" với "code khác", tự ngẫm mới ra được chỗ nào được sửa.
 
File đuôi xlsx anh ơi
 

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

Back
Top Bottom