Hỗ trợ tham chiếu dữ liệu

Liên hệ QC

Tuấn Hào

Thành viên mới
Tham gia
17/3/17
Bài viết
27
Được thích
1
Mình đang không biết xử lý dữ liệu như thế nào!
Mong bạn nào giúp mình

Sheet VIEW là Sheet mình muốn biểu diễn dữ liệu từ Sheet DATAEXPORT (Dữ liệu này được xuất từ phần mềm QLHS)

Có Sheet VIDU là Sheet kết quả của VIEW mình muốn ra được giống vậy. (Minh họa!!)

Có bạn/anh/chị nào giúp mình với, chân thành cảm ơn ạ!

P/s: Vì dữ liệu Vi phạm + HS hơn 1 lớp như trong File, mình chỉ cắt ra vì một số vấn đề. Các bạn làm mẫu trên đó là được r ạ!
 

File đính kèm

  • TroGiup.xls
    42 KB · Đọc: 6
Mình đang không biết xử lý dữ liệu như thế nào!
Mong bạn nào giúp mình

Sheet VIEW là Sheet mình muốn biểu diễn dữ liệu từ Sheet DATAEXPORT (Dữ liệu này được xuất từ phần mềm QLHS)

Có Sheet VIDU là Sheet kết quả của VIEW mình muốn ra được giống vậy. (Minh họa!!)

Có bạn/anh/chị nào giúp mình với, chân thành cảm ơn ạ!

P/s: Vì dữ liệu Vi phạm + HS hơn 1 lớp như trong File, mình chỉ cắt ra vì một số vấn đề. Các bạn làm mẫu trên đó là được r ạ!
Mã học sinh của bạn có vẻ chưa ổn, chẳng hạn: ở ô A19 trên sheet BANG_CC_VIEW có giá trị là A01-14, tôi hiểu là học sinh có STT 14 của lớp 12A01. Vậy nếu HS có STT 14 của lớp 10A01, lớp 11A01 thì sẽ có mã như thế nào?
Nếu bạn chuẩn hóa được mã học sinh cho ổn, chẳng hạn 12A01-14 thay vì A01-14 thì việc gán dữ liệu qua sẽ chính xác hơn vì việc học sinh trùng họ tên là chuyện bình thường.
 
Mã học sinh của bạn có vẻ chưa ổn, chẳng hạn: ở ô A19 trên sheet BANG_CC_VIEW có giá trị là A01-14, tôi hiểu là học sinh có STT 14 của lớp 12A01. Vậy nếu HS có STT 14 của lớp 10A01, lớp 11A01 thì sẽ có mã như thế nào?
Nếu bạn chuẩn hóa được mã học sinh cho ổn, chẳng hạn 12A01-14 thay vì A01-14 thì việc gán dữ liệu qua sẽ chính xác hơn vì việc học sinh trùng họ tên là chuyện bình thường.
Lớp 10 mã C, 11 mã B, 12 mã A ạ !
A01-01: Lớp 12A01, Mã số 01
B01-01: Lớp 11B01, Mã số 01
C01-01: Lớp 10C01, Mã số 01

Cái mã này quy định lâu và rất ổn r bạn ạ!
Vấn đề là mình tham chiếu qua cái bảng không được :((
 
Vậy tên lớp thì như thế nào vậy bạn? Lớp 10 luôn là 10C (10C01, 10C02,...) và lớp 11 luôn là 11B (11B01, 11B02,...) hay sao?
cái này hiệu phó quy định
A01-01 thì tự biết xử lý dữ liệu là lớp 12A01 và MS 01 và xử lý ngược lại, mình không có quyền hạn thay đổi cấu trúc này ạ
 
Lần chỉnh sửa cuối:
cái này hiệu phó quy định
A01-01 thì tự biết xử lý dữ liệu là lớp 12A01 và MS 01 và xử lý ngược lại, mình không có quyền hạn thay đổi cấu trúc này ạ
OK. Tôi hỏi câu này trước khi bạn sửa bài viết trên đó nên đọc lại thấy hơi thừa.
Bạn sử dụng code như sau:
Mã:
Sub ChuyenDL()
    Dim Tmp, i As Long, Rng As Range, Cll As Range, dC As Long, dR As Long, lR As Long
    lR = Sheet2.[B65000].End(xlUp).Row 'Dong cuoi cung co du lieu o Sheet2
    If lR < 2 Then Exit Sub 'Khong co du lieu
    Tmp = Sheet2.Range("B2:G" & lR).Value
    Sheet1.[C6].Resize(1000, 30).ClearContents 'Xoa du lieu hien co
    For i = 1 To UBound(Tmp, 1)
        dR = Sheet1.[A6:A10000].Find(Mid(Tmp(i, 2), 3, 3) & "-" & Tmp(i, 3), , xlValues, xlWhole).Row 'Dong chua ten tren Sheet1
        dC = Sheet1.[C4:IV4].Find(Tmp(i, 6), , xlValues, xlWhole).Column + IIf(Left(Tmp(i, 4), 1) = "C", 1, 0) 'Cot tuong ung voi Ngay, Buoi vi pham
        Sheet1.Cells(dR, dC) = Tmp(i, 5) 'Gan du lieu
    Next
End Sub
Code trên chưa bẫy lỗi vấn đề mã hoặc ngày không tồn tại trên sheet BANG_CC_VIEW. Ngoài ra, nếu dữ liệu nhiều thì có thể nên xử lý dữ liệu tên mảng rồi gán xuống sheet sau sẽ nhanh hơn.
 

File đính kèm

  • TroGiup.xls
    59.5 KB · Đọc: 5
OK. Tôi hỏi câu này trước khi bạn sửa bài viết trên đó nên đọc lại thấy hơi thừa.
Bạn sử dụng code như sau:
Mã:
Sub ChuyenDL()
    Dim Tmp, i As Long, Rng As Range, Cll As Range, dC As Long, dR As Long, lR As Long
    lR = Sheet2.[B65000].End(xlUp).Row 'Dong cuoi cung co du lieu o Sheet2
    If lR < 2 Then Exit Sub 'Khong co du lieu
    Tmp = Sheet2.Range("B2:G" & lR).Value
    Sheet1.[C6].Resize(1000, 30).ClearContents 'Xoa du lieu hien co
    For i = 1 To UBound(Tmp, 1)
        dR = Sheet1.[A6:A10000].Find(Mid(Tmp(i, 2), 3, 3) & "-" & Tmp(i, 3), , xlValues, xlWhole).Row 'Dong chua ten tren Sheet1
        dC = Sheet1.[C4:IV4].Find(Tmp(i, 6), , xlValues, xlWhole).Column + IIf(Left(Tmp(i, 4), 1) = "C", 1, 0) 'Cot tuong ung voi Ngay, Buoi vi pham
        Sheet1.Cells(dR, dC) = Tmp(i, 5) 'Gan du lieu
    Next
End Sub
Code trên chưa bẫy lỗi vấn đề mã hoặc ngày không tồn tại trên sheet BANG_CC_VIEW. Ngoài ra, nếu dữ liệu nhiều thì có thể nên xử lý dữ liệu tên mảng rồi gán xuống sheet sau sẽ nhanh hơn.
Cảm ơn bạn rất nhiều
 
Web KT

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2
Back
Top Bottom