Tìm cách lọc dữ liệu từ 1 sheet sang sheet khác, dữ liệu thay đổi hàng ngày

Liên hệ QC

BALLOONNEVERBUM

Thành viên mới
Tham gia
14/10/10
Bài viết
15
Được thích
3
Chào các anh/chị trên diễn đàn, em không sử dụng excel thường xuyên lắm. tuy nhiên, nội dung công việc có yêu cầu như thế này và em nghĩ excel đáp ứng được. Mong các anh chị chỉ giúp.
Em nêu cụ thể công việc như sau:
1. Em có 1 file tổng hợp các công văn, do em nhập vào mỗi ngày.
2. Danh sách được phân công cho từng lãnh đạo (chỉ có 5 lãnh đạo)
3. Em muốn lọc thành từng sheet của mỗi lãnh đạo, nghĩa là nếu bên cột tổng hợp, em chọn (bằng cách nhập tên vào hoặc đánh dấu x vào cột tên lãnh đạo nào- cách nào cũng được) thì tự động xuất sang sheet có tên tương ứng.

Em đã làm thử bằng phương pháp khá thủ công là dùng hàm If tuy nhiên, mỗi lần muốn trình bày cho đẹp thì fải thao tác khá phức tạp. Anh chị nào có cách giúp em thì vui lòng hướng dẫn giúp. Có thể dùng chương trình khác thì cũng xin đề cập giúp

Em cảm ơn mọi người đã chú ý bài viết./-*+/
 
Lần chỉnh sửa cuối:
Bài của Bạn có thể dùng Advanced Filter, Pivot, hoặc dòng hàm VLOOHUP, INDEX....Tuy nhiên Bạn nên đưa file lên để sớm nhận được kết quả như mong muốn.
 
http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=55857&d=1291194296

Đây là file em muốn thể hiện.

Em dùng filter thì mỗi lần có công văn mới em phải làm lại thao tác đó. Có cách nào máy lọc tự động không?

Em đã từng làm theo mệnh đề IF nhưng phần trích ra phải xóa từng dòng không có dữ liệu.

http://www.mediafire.com/?oaok21492oeuacj

Vui lòng hướng dẫn em. Cảm ơn ạ.
Thử thế này xem sao
Cho mình hỏi: cột A sau khi đem về các sheet có đánh lại Số thứ tự không hay để vậy cho dễ tìm hồ sơ (tạm thời mình để nguyên)
Chú ý: Cột L phải nhập dữ liệu đúng với tên của 1 trong 5 sheet muốn đem dữ liệu qua
Cứ nhập thêm dữ liệu, khi chọn sheet nào thì dữ liệu chạy qua sheet đó
Thân
 

File đính kèm

  • DS_HO_SO.rar
    14.9 KB · Đọc: 654
http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=55857&d=1291194296

Đây là file em muốn thể hiện.

Em dùng filter thì mỗi lần có công văn mới em phải làm lại thao tác đó. Có cách nào máy lọc tự động không?

Em đã từng làm theo mệnh đề IF nhưng phần trích ra phải xóa từng dòng không có dữ liệu.

http://www.mediafire.com/?oaok21492oeuacj

Vui lòng hướng dẫn em. Cảm ơn ạ.
Nếu bài của Bạn mục đích bạn muốn kiểm tra xem loại TTHS nào thì nó lọc ra loại đó thì Bạn chỉ cần dùng Filter để lọc nó hoặc dùng Pivot Table (Nếu dùng Pivot table khi thêm loại công văn mới thì phải đặt con trỏ vào bảng sau đó bấm nút Refresh Data để nó tự động cập nhật.
Bạn xem file nhé! (Bên sheet DS HSO NHAN Tôi dùng Filter -> Bạn chỉ cần bấm vào mũi tên ở ô L1 chọn loại TTHS thì nó lọc; Bên sheet Kiemtra Tôi dùng Pivot table Bạn chọn loại TTHS ở ô B1 -> Nó sẽ tự động lọc nhớ bấm nút Refresh data để cập nhậnt)
 

File đính kèm

  • DS_HO_SO.rar
    13.2 KB · Đọc: 311
Xin cảm ơn 2 thành viên trên đã có bài trả lời cho bài viết của em.

Em rất hài lòng với cách giải quyết của 2 phương án trên.
Cũng xin nói thêm là cột đầu tiên, đó là cột số Thứ tự (có lẽ em ghi nhầm là SL), sau khi lọc bằng 2 cách trên em muốn đánh số lại như ban đầu.

Để em có thể học hỏi cũng như tự thực hành được, các anh có thể chỉ rõ cụ thể cách làm cho em được không ạ?

Rất mong nhận được sự hướng dẫn của các anh.
 
Lần chỉnh sửa cuối:
Xin cảm ơn 2 thành viên trên đã có bài trả lời cho bài viết của em.

Em rất hài lòng với cách giải quyết của 2 phương án trên.
Cũng xin nói thêm là cột đầu tiên, đó là cột số Thứ tự (có lẽ em ghi nhầm là SL), sau khi lọc bằng 2 cách trên em muốn đánh số lại như ban đầu.

Để em có thể học hỏi cũng như tự thực hành được, các anh có thể chỉ rõ cụ thể cách làm cho em được không ạ?

Rất mong nhận được sự hướng dẫn của các anh.
Bài của anh concogia dùng VBA. Bên sheet DS HS NHAN Bạn đánh lại công thức trong ô STT như sau:
Mã:
=IF(C2="";"";SUBTOTAL(103;$C$2:C2))
Sau đó dùng Filter để lọc cho khỏe.
 
Thử thế này xem sao
Cho mình hỏi: cột A sau khi đem về các sheet có đánh lại Số thứ tự không hay để vậy cho dễ tìm hồ sơ (tạm thời mình để nguyên)
Chú ý: Cột L phải nhập dữ liệu đúng với tên của 1 trong 5 sheet muốn đem dữ liệu qua
Cứ nhập thêm dữ liệu, khi chọn sheet nào thì dữ liệu chạy qua sheet đó
Thân

Anh có thể viết giùm em đoạn code cho file này được không? yêu cầu như ban đầu em đề cập.http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=55857&d=1291194296
Cảm ơn anh.
 
Anh không thấy file hay sao?

Em gửi lên file công văn luôn nha, anh viết code giùm em để từ sheet tổng hợp ra các sheet tên lãnh đạo.

Được không ạ?

File danh sach cvan can xu ly:
http://www.mediafire.com/?52hkrlcku70udv7
Phần tiêu đề bỏ merge cell đi
Cột A ngày tháng phải nhập đủ ( vì mình lấy cột này làm chuẩn)
Tên sheet không nên có dấu, tên sheet và tên 5 vị lãnh đạo phải giống nhau
Cũng như bài trước, nhập dữ liệu ==> chọn sheet nào thì dữ liệu đổ sang sheet ấy
Sheet nào không sử dụng thì xóa đi để khỏi mắc công khai báo
 

File đính kèm

  • xu_ly_cvt11_12345.rar
    48.7 KB · Đọc: 200
anh Concogia giúp em thêm 1 tí. Em áp dụng theo file anh gửi, nhưng dường như em xóa 1 số cột bên các sheet Lãnh đạo thì dữ liệu không chuyển qua. Anh sửa lỗi giùm em với. Em gửi kèm file em đang bị lỗi. cảm ơn anh.

http://www.mediafire.com/?d9dgg8dthzbyghy
 
anh Concogia giúp em thêm 1 tí. Em áp dụng theo file anh gửi, nhưng dường như em xóa 1 số cột bên các sheet Lãnh đạo thì dữ liệu không chuyển qua. Anh sửa lỗi giùm em với. Em gửi kèm file em đang bị lỗi. cảm ơn anh.

http://www.mediafire.com/?d9dgg8dthzbyghy
Do bài sau thay đổi địa chỉ mà quên sửa code lúc xóa
bạn bấm Alt + F11 ==> ThisWorkbook ==> chép code này đè lên code cũ nhé
Mã:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim A As String, Vung As Range, K As Integer
    Application.ScreenUpdating = False
    A = ActiveSheet.Name
    Set Vung = Sheets("TONG HOP").[A6:R6]
        If A <> "TONG HOP" Then
        K = Application.WorksheetFunction.Match(A, Vung, 0)
            ActiveSheet.Cells.Clear
            With Sheets("TONG HOP").Range(Sheets("TONG HOP").[a6], Sheets("TONG HOP").[a10000].End(xlUp)).Resize(, 18)
                .AutoFilter K, "x"
                .SpecialCells(12).Copy ActiveSheet.[a5]
                .AutoFilter
            End With
        End If
    Application.ScreenUpdating = True
End Sub
Thân
 
oh, hóa ra vậy, file này share trên mạng nội bộ của em. Có ai đó thay đổi mà em không biết. Em tìm ra rồi. Cảm ơn anh nhé!
 
Do bài sau thay đổi địa chỉ mà quên sửa code lúc xóa
bạn bấm Alt + F11 ==> ThisWorkbook ==> chép code này đè lên code cũ nhé
Mã:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim A As String, Vung As Range, K As Integer
    Application.ScreenUpdating = False
    A = ActiveSheet.Name
    Set Vung = Sheets("TONG HOP").[A6:R6]
        If A <> "TONG HOP" Then
        K = Application.WorksheetFunction.Match(A, Vung, 0)
            ActiveSheet.Cells.Clear
            With Sheets("TONG HOP").Range(Sheets("TONG HOP").[a6], Sheets("TONG HOP").[a10000].End(xlUp)).Resize(, 18)
                .AutoFilter K, "x"
                .SpecialCells(12).Copy ActiveSheet.[a5]
                .AutoFilter
            End With
        End If
    Application.ScreenUpdating = True
End Sub
Thân


Xin hỏi em dùng code này của bác. Nhưng file của em là nội dung danh sách học sinh, tự động cập nhật học sinh tương ứng theo lớp khi mình nhập học sinh vào file tổng hợp. Chắc cũng giống như trên nhưng có khoảng 25 sếp thay vì 5 sếp như trên. Tuy nhiên chỉ chạy được đến cột R thôi. Nếu nhập dữ liệu và đánh dấu x vào cột S trở đi là báo lỗi Unable to get the Match property of the Worksheètuntion class. Khi em sửa:
Set Vung = Sheets("TONG HOP").[A6:R6]
Thành:
Set Vung = Sheets("TONG HOP").[A6:S6]
Thì báo lỗi Autofilter the rangle class failed... gì đó.
Mong bác khám giúp em file này bị làm sao. Em đang rất cần.


File đây bác ạ: http://www.mediafire.com/?rer6hzf5dbj23km
 
Xin hỏi em dùng code này của bác. Nhưng file của em là nội dung danh sách học sinh, tự động cập nhật học sinh tương ứng theo lớp khi mình nhập học sinh vào file tổng hợp. Chắc cũng giống như trên nhưng có khoảng 25 sếp thay vì 5 sếp như trên. Tuy nhiên chỉ chạy được đến cột R thôi. Nếu nhập dữ liệu và đánh dấu x vào cột S trở đi là báo lỗi Unable to get the Match property of the Worksheètuntion class. Khi em sửa:
Set Vung = Sheets("TONG HOP").[A6:R6]
Thành:
Set Vung = Sheets("TONG HOP").[A6:S6]
Thì báo lỗi Autofilter the rangle class failed... gì đó.
Mong bác khám giúp em file này bị làm sao. Em đang rất cần.


File đây bác ạ: http://www.mediafire.com/?rer6hzf5dbj23km
Bạn có thể....quên cái code kia của mình đi.
Bạn nói thật chi tiết công việc của bạn. Nhập dữ liệu ở đâu, kết quả xuất ra ở đâu, như thế nào, chứ mình nhìn vào file của bạn mình...chẳng hiểu gì cả, hiểu được có khi viết code mới nhanh hơn sửa code cũ
Thân
 
Cảm ơn bác đã quan tâm. Mục đích của mình là mình muốn quản lý 1 lớp bồi dưỡng văn hóa. DO nhiều lớp nhiều học sinh nên quản lý thông thường làm rối tung tất cả. Công việc mình cần thực hiện là:
Tạo 1 file excel có 1 sheet chính (TONG HOP) là dùng để nhập thông tin học sinh như các mục trong file sample (họ và tên, ngày sinh...) và còn lại là 24 sheet phụ có tên là các lớp như 6T1 (Lớp toán 6 đầu tiên),6V1,6A1, 7T1...Khi cần nhập thông tin của một học sinh vào thì ta nhập bình thường, tuy nhiên học sinh thuộc lớp nào thì tick "x" vào cột đó có tên ứng với các sheet. Ví dụ học sinh lớp 7 môn toán, lớp đầu tiên thì tick vào 7T1. Kết quả: Sau khi nhập xong sheet TONG HOP có thông tin, đồng thời sheet 7T1 cũng có thông tin.
Có cách nào để autofilter như thế và sau đó mình thêm sheet do phải thêm lớp học mới (VD: 7T2) vào file thì vẫn autofilter ngon lành không? Mình sửa code trên nhưng chỉ thêm được đến sheet 8V1 (cột S) đến cột R thì lỗi.Unable to get the Match property of the Worksheetfunction class. Làm ơn sửa lỗi giúp mình. Cảm ơn rất nhiều!
 
Cảm ơn bác đã quan tâm. Mục đích của mình là mình muốn quản lý 1 lớp bồi dưỡng văn hóa. DO nhiều lớp nhiều học sinh nên quản lý thông thường làm rối tung tất cả. Công việc mình cần thực hiện là:
Tạo 1 file excel có 1 sheet chính (TONG HOP) là dùng để nhập thông tin học sinh như các mục trong file sample (họ và tên, ngày sinh...) và còn lại là 24 sheet phụ có tên là các lớp như 6T1 (Lớp toán 6 đầu tiên),6V1,6A1, 7T1...Khi cần nhập thông tin của một học sinh vào thì ta nhập bình thường, tuy nhiên học sinh thuộc lớp nào thì tick "x" vào cột đó có tên ứng với các sheet. Ví dụ học sinh lớp 7 môn toán, lớp đầu tiên thì tick vào 7T1. Kết quả: Sau khi nhập xong sheet TONG HOP có thông tin, đồng thời sheet 7T1 cũng có thông tin.
Có cách nào để autofilter như thế và sau đó mình thêm sheet do phải thêm lớp học mới (VD: 7T2) vào file thì vẫn autofilter ngon lành không? Mình sửa code trên nhưng chỉ thêm được đến sheet 8V1 (cột S) đến cột R thì lỗi.Unable to get the Match property of the Worksheetfunction class. Làm ơn sửa lỗi giúp mình. Cảm ơn rất nhiều!
Thế còn những chỗ này:
1) Một học sinh có thể học nhiều lớp: thí dụ Hs A có thể học 3 môn Văn, Anh, Tóan nhưng phải cùng khối (6 hoặc 7 hoặc 11..) chứ sao có học sinh học khối 6 & khối 8 & khối 9 (Híc, chắc bạn làm ví dụ thôi, thật ra dữ liệu nư thế vẫn lấy về các lớp được như thường nhưng hơi mắc cười )
2) Trong các sheet tên lớp từ cột K trở đi dữ liệu đó là ....cái quái gì vậy, mình nghĩ lấy từ Họ tên đến ghi chú là Ok thôi chứ
Cần hiểu rõ đề bài để làm một lần khỏi sửa
Thân
 
Web KT
Back
Top Bottom