Nhờ trợ giúp code thu thập thông tin từ file excel thô thành file excel có điều kiện

Liên hệ QC

lebanhan113

Thành viên mới
Tham gia
5/1/20
Bài viết
32
Được thích
5
Mình là giáo viên dạy Hóa-THPT và đang dạy online bằng phần mềm Zoom. Mình muốn kích thích sự tương tác và trao đổi bài học qua đoạn Chat Zoom để các em dễ hiểu bài và tiếp thu bài học nhanh hơn.

Mình có lưu lại đoạn Chat Zoom của hs về máy tính. Muốn trích xuất dữ liệu trong đoạn Chat Zoom để lấy thông tin cần lấy:

“Điểm danh học sinh”,

“Đáp án của học sinh (A, B, C, D)”.

Trong file excel có 2 sheet:

Sheet1 có danh sách học sinh, điểm danh, câu 1 đến câu 10.

Sheet 2 có file thô mà mình copy từ Chat Zoom mà mình dạy.

Trong Chat Zoom thì không có ngày tháng, Nên việc quản lí và theo dõi học sinh cũng gặp nhiều khó khăn. Nếu được, anh chị giúp em tạo thêm ngày tháng để quản lí và tổng hợp từng tháng.

Mình không rành về excel lắm, mà chỉ muốn kích thích sự tương tác và trao đổi giữa thầy và trò, trò và trò để đạt được mục tiêu giáo dục tốt nhất có thể.
Mình rất cảm ơn anh chị đã tận tâm giúp đỡ.
 

File đính kèm

  • 12A1ZOOM.xlsx
    21 KB · Đọc: 13
Thầy phải nói cụ thể là muốn cái gì. Kết quả demo ra làm sao chứ
 
Upvote 0
Cái này thống kê vô mục nào thầy !:p

View attachment 265612
Mình không lấy thông tin này. Mình chỉ lấy thông tin điểm danh và đáp án của học sinh để phản hồi nhanh trong quá trình tương tác với học sinh.
Bài đã được tự động gộp:

Học sinh bây giờ đủ kiểu hết. Mình đã qui định tên hiện thị của Zoom rồi và cách ghi đáp án mà có nghe mình qui định đâu. Mình chỉ thấy ghi đúng mỗi cái số đầu tiên. Còn phần sau thì thua rồi. Mỗi em 1 kiểu.
 
Lần chỉnh sửa cuối:
Upvote 0
ZOOM1 là buổi học thứ 1, ZOOM2 là buổi học thứ 2 của mình.
Thử code này cho ZOOM1, bổ sung tính sau
Mã:
Option Explicit

Sub Loc()
Dim DSLop
Dim Zoom
Dim Kq
Dim Ws As Worksheet
Dim rws, cls
Dim i, j, k, t
DSLop = Sheet1.Range("A4", Sheet1.Range("D4").End(xlDown))
rws = UBound(DSLop)

ReDim Kq(1 To rws, 1 To 11)
Zoom = Sheet2.Range("A1", Sheet2.Range("B" & Rows.Count).End(xlUp))
For i = 1 To UBound(Zoom) Step 2
    k = Mid(Zoom(i, 1), 16, 2) * 1
    Kq(k, 1) = "x"
    If Zoom(i + 1, 2) <> "" Then
        If IsNumeric(Left(Zoom(i + 1, 2), Len(Zoom(i + 1, 2)) - 1)) Then
            j = Left(Zoom(i + 1, 2), Len(Zoom(i + 1, 2)) - 1) * 1
            t = Right(Zoom(i + 1, 2), 1)
            Kq(k, j + 1) = t
        End If
    End If
Next i
Sheet1.Range("E4").Resize(rws, 11) = Kq
End Sub
Bài đã được tự động gộp:

Số thứ tự trong "sheet1" & "ZOOM" có vài người không khớp, VD: 12, 13, 14
 
Lần chỉnh sửa cuối:
Upvote 0
Thử code này cho ZOOM1, bổ sung tính sau
Mã:
Option Explicit

Sub Loc()
Dim DSLop
Dim Zoom
Dim Kq
Dim Ws As Worksheet
Dim rws, cls
Dim i, j, k, t
DSLop = Sheet1.Range("A4", Sheet1.Range("D4").End(xlDown))
rws = UBound(DSLop)

ReDim Kq(1 To rws, 1 To 11)
Zoom = Sheet2.Range("A1", Sheet2.Range("B" & Rows.Count).End(xlUp))
For i = 1 To UBound(Zoom) Step 2
    k = Mid(Zoom(i, 1), 16, 2) * 1
    Kq(k, 1) = "x"
    If Zoom(i + 1, 2) <> "" Then
        If IsNumeric(Left(Zoom(i + 1, 2), Len(Zoom(i + 1, 2)) - 1)) Then
            j = Left(Zoom(i + 1, 2), Len(Zoom(i + 1, 2)) - 1) * 1
            t = Right(Zoom(i + 1, 2), 1)
            Kq(k, j + 1) = t
        End If
    End If
Next i
Sheet1.Range("E4").Resize(rws, 11) = Kq
End Sub
1631030008165.png
Mình cảm ơn thầy nhiều quá. Từ bây giờ sẽ quản lý và thu thập thông tin của các em nhanh, chính xác và khoa học rồi.
Bài đã được tự động gộp:

Thử code này cho ZOOM1, bổ sung tính sau
Mã:
Option Explicit

Sub Loc()
Dim DSLop
Dim Zoom
Dim Kq
Dim Ws As Worksheet
Dim rws, cls
Dim i, j, k, t
DSLop = Sheet1.Range("A4", Sheet1.Range("D4").End(xlDown))
rws = UBound(DSLop)

ReDim Kq(1 To rws, 1 To 11)
Zoom = Sheet2.Range("A1", Sheet2.Range("B" & Rows.Count).End(xlUp))
For i = 1 To UBound(Zoom) Step 2
    k = Mid(Zoom(i, 1), 16, 2) * 1
    Kq(k, 1) = "x"
    If Zoom(i + 1, 2) <> "" Then
        If IsNumeric(Left(Zoom(i + 1, 2), Len(Zoom(i + 1, 2)) - 1)) Then
            j = Left(Zoom(i + 1, 2), Len(Zoom(i + 1, 2)) - 1) * 1
            t = Right(Zoom(i + 1, 2), 1)
            Kq(k, j + 1) = t
        End If
    End If
Next i
Sheet1.Range("E4").Resize(rws, 11) = Kq
End Sub
Bài đã được tự động gộp:

Số thứ tự trong "sheet1" & "ZOOM" có vài người không khớp, VD: 12, 13, 14
Mình qui đỉnh cách hiện thị tên đăng nhập rồi mà học sinh cứ vậy thầy. Trong 45 phút, điểm danh là hết giờ, mình ko dạy được gì.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình cảm ơn thầy nhiều quá. Từ bây giờ sẽ quản lý và thu thập thông tin của các em nhanh, chính xác và khoa học rồi.
Số thứ tự trong "Sheet1" & trong sheet "ZOOM" chưa khớp, có lẽ phải điều chỉnh lại STT trong sheet 1 cho phù hợp với sheet ZOOM, nếu không kết quả sẽ bị nhầm học sinh.
VD: 12, 13, 14 trong sheet1 & ZOOM là khác tên học sinh
 
Upvote 0
Số thứ tự trong "Sheet1" & trong sheet "ZOOM" chưa khớp, có lẽ phải điều chỉnh lại STT trong sheet 1 cho phù hợp với sheet ZOOM, nếu không kết quả sẽ bị nhầm học sinh.
VD: 12, 13, 14 trong sheet1 & ZOOM là khác tên học sinh
Vâng. Buổi học tới, mình sẽ nhắc học sinh ghi đúng theo qui định mới cho vào lớp. Sẽ giải quyết được vấn đề này thầy ạ.
Bài đã được tự động gộp:

Số thứ tự trong "Sheet1" & trong sheet "ZOOM" chưa khớp, có lẽ phải điều chỉnh lại STT trong sheet 1 cho phù hợp với sheet ZOOM, nếu không kết quả sẽ bị nhầm học sinh.
VD: 12, 13, 14 trong sheet1 & ZOOM là khác tên học sinh
Mình hiểu rồi
. Để mình xem lại danh sách với tên đăng nhập khớp với nhau.
 
Upvote 0
Vâng. Buổi học tới, mình sẽ nhắc học sinh ghi đúng theo qui định mới cho vào lớp. Sẽ giải quyết được vấn đề này thầy ạ.
Code trên mới chạy thử cho "ZOOM1", để đem ra sử dụng thì cần phải chạy thử với vài sheet số liệu mới chốt được.
Có lẽ bạn cần gừi thêm vài sheet số liệu để test cho chắc xem còn điều chỉnh gì không rồi hãy đem sử dụng
 
Upvote 0
Code trên mới chạy thử cho "ZOOM1", để đem ra sử dụng thì cần phải chạy thử với vài sheet số liệu mới chốt được.
Có lẽ bạn cần gừi thêm vài sheet số liệu để test cho chắc xem còn điều chỉnh gì không rồi hãy đem sử dụng
Mình cảm ơn bạn nhiều lắm. Để mình dạy rồi gửi lên nhờ thầy xem và chỉnh sửa lại giúp ạ
Bài đã được tự động gộp:

Code trên mới chạy thử cho "ZOOM1", để đem ra sử dụng thì cần phải chạy thử với vài sheet số liệu mới chốt được.
Có lẽ bạn cần gừi thêm vài sheet số liệu để test cho chắc xem còn điều chỉnh gì không rồi hãy đem sử dụng
Tuần này, lớp 12A1 hết tiết dạy rồi thầy. Mình dạy lớp khác được không thầy?
 
Lần chỉnh sửa cuối:
Upvote 0
Mình cảm ơn bạn nhiều lắm. Để mình dạy rồi gửi lên nhờ thầy xem và chỉnh sửa lại giúp ạ
Bài đã được tự động gộp:


Tuần này, lớp 12A1 hết tiết dạy rồi thầy. Mình dạy lớp khác được không thầy?
Lọc theo lớp hoặc theo buổi học đều có thể được. Có lẽ bạn lập 1 file số liệu càng nhiều càng tốt + các tiêu chí lọc để tính cho cụ thể.

---
Tôi là dân tay ngang không phải giáo viên, có lẽ cứ bạn & tôi là được, gọi là thầy thấy nhột quá bạn :)
 
Upvote 0
Lọc theo lớp hoặc theo buổi học đều có thể được. Có lẽ bạn lập 1 file số liệu càng nhiều càng tốt + các tiêu chí lọc để tính cho cụ thể.

---
Tôi là dân tay ngang không phải giáo viên, có lẽ cứ bạn & tôi là được, gọi là thầy thấy nhột quá bạn :)
Dạ. Em cảm ơn anh nhiều. Để giải quyết lọc theo lớp, theo buổi, theo tháng, chắc em phải thêm cột lớp học và cột ngày học vào sheet (ZOOM). Vì file thô sheet ZOOM khô có cột ngày, tháng và lớp học. Em nghĩ vậy.
 
Upvote 0
Dạ. Em cảm ơn anh nhiều. Để giải quyết lọc theo lớp, theo buổi, theo tháng, chắc em phải thêm cột lớp học và cột ngày học vào sheet (ZOOM). Vì file thô sheet ZOOM khô có cột ngày, tháng và lớp học. Em nghĩ vậy.
Về ngày tháng: Trong sheet ZOOM thấy có ghi thời gian của mỗi học sinh, bạn thử xem cách cài đặt để hiển thị thêm ngày tháng vào chuỗi thời gian của từng học sinh có được hay không?

Tên lớp & buổi học: Có lẽ lấy tên sheet theo tên lớp & buổi học chắc không vấn đề gì, có cái là tên sheet không có dấu cho dễ lọc
 
Upvote 0
Về ngày tháng: Trong sheet ZOOM thấy có ghi thời gian của mỗi học sinh, bạn thử xem cách cài đặt để hiển thị thêm ngày tháng vào chuỗi thời gian của từng học sinh có được hay không?

Tên lớp & buổi học: Có lẽ lấy tên sheet theo tên lớp & buổi học chắc không vấn đề gì, có cái là tên sheet không có dấu cho dễ lọc
Vậy em sẽ bổ sung thủ công thêm cột ngày tháng vào sheet ZOOM anh.
 
Upvote 0
Web KT

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

Back
Top Bottom