Lọc ra danh sách các khóa học theo từng nhân viên

Liên hệ QC

parkjun

Thành viên mới
Tham gia
12/10/12
Bài viết
35
Được thích
1
Xin chào các bạn, mình có 1 file danh sách nhân viên đăng ký khóa học. Tuy nhiên hiện file đang sắp xếp theo dạng bảng: danh sách nhân viên theo cột và khóa học theo chiều ngang, ai đăng ký thì sẽ tích vào ô đó). Hiện tại thì số lượng nhân viên và khóa học tương đối nhiều nên việc ngồi filter từng nhân viên hay khóa học hơi mất thời gian, nên nhờ các bạn có cách nào hay thì chỉ giáo giúp với ạ. Cảm ơn các bạn.
Mình đính kèm file cho các bạn dễ hình dúng nhé.
 

File đính kèm

  • Book3.xlsx
    40.1 KB · Đọc: 20
Xin chào các bạn, mình có 1 file danh sách nhân viên đăng ký khóa học. Tuy nhiên hiện file đang sắp xếp theo dạng bảng: danh sách nhân viên theo cột và khóa học theo chiều ngang, ai đăng ký thì sẽ tích vào ô đó). Hiện tại thì số lượng nhân viên và khóa học tương đối nhiều nên việc ngồi filter từng nhân viên hay khóa học hơi mất thời gian, nên nhờ các bạn có cách nào hay thì chỉ giáo giúp với ạ. Cảm ơn các bạn.
Mình đính kèm file cho các bạn dễ hình dúng nhé.
Sao bạn không thiết kế theo kiểu
Cột A-STT
cột B: Tên nhân viên
Cột C: Tên khóa học
Nếu muốn báo cáo bảng biểu gì thì làm với Pivot table
 
Mình có 1 vấn đề mong các bạn giúp đỡ. Mình đã tạo file chấm công cho 1 tháng, làm danh sách tháng theo Data validation nhưng khi thay đổi tháng chỉ thay đổi được ngày thứ chứ không thay đổi được nội dung toàn file đó. Mọi người giúp mình liên kết động với list tháng với dữ liệu bên dưới. Thanks nhiều
 
Mình có 1 vấn đề mong các bạn giúp đỡ. Mình đã tạo file chấm công cho 1 tháng, làm danh sách tháng theo Data validation nhưng khi thay đổi tháng chỉ thay đổi được ngày thứ chứ không thay đổi được nội dung toàn file đó. Mọi người giúp mình liên kết động với list tháng với dữ liệu bên dưới. Cảm ơn nhiều
sao bạn không lập topic mới thế. cái này có liên quan gì tới cái chủ topic hỏi đâu
 
Sao bạn không thiết kế theo kiểu
Cột A-STT
cột B: Tên nhân viên
Cột C: Tên khóa học
Nếu muốn báo cáo bảng biểu gì thì làm với Pivot table
Data export từ hệ thống nên hơi khó, sắp tới mình sẽ chỉnh lại nên giờ đang phải tìm cao nhân chỉ giúp với cấu trúc data hiện tại đây ạ :(
 
Xin chào các bạn, mình có 1 file danh sách nhân viên đăng ký khóa học. Tuy nhiên hiện file đang sắp xếp theo dạng bảng: danh sách nhân viên theo cột và khóa học theo chiều ngang, ai đăng ký thì sẽ tích vào ô đó). Hiện tại thì số lượng nhân viên và khóa học tương đối nhiều nên việc ngồi filter từng nhân viên hay khóa học hơi mất thời gian, nên nhờ các bạn có cách nào hay thì chỉ giáo giúp với ạ. Cảm ơn các bạn.
Mình đính kèm file cho các bạn dễ hình dúng nhé.
Góp ý cho bạn:
1/ Nên có 1 sheet với kết quả của vài nhân viên để mọi người còn hình dung ra bạn muốn cái gì? Không hiểu thì chắc chẳng ai biết giúp kiểu gì, nếu không trúng lại tốn công.
2/ Cần giải thích cụ thể, rỏ ràng số 1 đó thay bằng tên khóa học hay cái gì?
3/ Nội dung thì một đằng "ai đăng ký thì sẽ tích vào ô đó" trong từng Cell một nẻo "là các con số 1?".
 
Góp ý cho bạn:
1/ Nên có 1 sheet với kết quả của vài nhân viên để mọi người còn hình dung ra bạn muốn cái gì? Không hiểu thì chắc chẳng ai biết giúp kiểu gì, nếu không trúng lại tốn công.
2/ Cần giải thích cụ thể, rỏ ràng số 1 đó thay bằng tên khóa học hay cái gì?
3/ Nội dung thì một đằng "ai đăng ký thì sẽ tích vào ô đó" trong từng Cell một nẻo "là các con số 1?".
Chào bạn,
1. Mình gửi lại file và bổ sung thêm sheet kết quả mong muốn. bạn xem lại file nhé
2. Số 1 đó tương đương với việc tích ("x") ví dụ như mã nhân viên nào dóng sang ngang nếu có bao nhiêu số 1 ở từng cột thì sẽ tương ứng là học bấy nhiêu khóa.

Bạn xem qua nhé.
 

File đính kèm

  • Book3.xlsx
    41 KB · Đọc: 7
Chào bạn,
1. Mình gửi lại file và bổ sung thêm sheet kết quả mong muốn. bạn xem lại file nhé
2. Số 1 đó tương đương với việc tích ("x") ví dụ như mã nhân viên nào dóng sang ngang nếu có bao nhiêu số 1 ở từng cột thì sẽ tương ứng là học bấy nhiêu khóa.

Bạn xem qua nhé.
1/ Bài 7 tôi nêu "Nên có 1 sheet với kết quả của vài nhân viên".
2/ Bạn đưa lên chỉ có 1 kết quả của 1 nhân viên mà lại sai, trong hình có 02 trường hợp sai tôi tô màu đỏ, 1 trường hợp thiếu tôi tô màu xanh.

A_Sai.GIF
 
Bạn xem file có đúng ý bạn ko

Mã:
Sub LocTheoNhanVien()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With
    Dim i As Long, j As Long, Lr As Long, Lc As Long, k As Long
    Dim dict As Object
    Dim arrSource()
    Dim arrResult() As String
    Dim ws As Worksheet
    
    For Each ws In Worksheets
        If ws.Name = "DS lop theo nhan vien" Then
            ws.Delete
        End If
    Next ws
    With Sheet1
        Lr = .Range("C" & Rows.Count).End(xlUp).Row
        Lc = .Cells(1, Columns.Count).End(xlToLeft).Column
        arrSource = .Range(.Cells(1, 3), .Cells(Lr, Lc))
        ReDim arrResult(1 To (UBound(arrSource, 1) - 1) * UBound(arrSource, 2), 1 To 2)
        For i = 2 To UBound(arrSource, 1)
            For j = 2 To UBound(arrSource, 2)
                If arrSource(i, j) = 1 Then
                    k = k + 1
                    arrResult(k, 1) = arrSource(i, 1)
                    arrResult(k, 2) = arrSource(1, j)
                End If
            Next j
        Next i
        Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "DS lop theo nhan vien"
        ActiveSheet.Range("A2").Resize(UBound(arrResult, 1), 2) = arrResult
    End With
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
End Sub
 

File đính kèm

  • Loc danh sach lop theo nhan vien.xlsb
    36.4 KB · Đọc: 12
1/ Bài 7 tôi nêu "Nên có 1 sheet với kết quả của vài nhân viên".
2/ Bạn đưa lên chỉ có 1 kết quả của 1 nhân viên mà lại sai, trong hình có 02 trường hợp sai tôi tô màu đỏ, 1 trường hợp thiếu tôi tô màu xanh.

View attachment 229583
Hi bạn,
Không biết bạn mở file book 3 mình có đính kèm trong comment số 08 chưa, mình có gửi lại rồi bạn check lại nhé

1575878643639.png
Bài đã được tự động gộp:

Bạn xem file có đúng ý bạn ko

Mã:
Sub LocTheoNhanVien()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With
    Dim i As Long, j As Long, Lr As Long, Lc As Long, k As Long
    Dim dict As Object
    Dim arrSource()
    Dim arrResult() As String
    Dim ws As Worksheet
   
    For Each ws In Worksheets
        If ws.Name = "DS lop theo nhan vien" Then
            ws.Delete
        End If
    Next ws
    With Sheet1
        Lr = .Range("C" & Rows.Count).End(xlUp).Row
        Lc = .Cells(1, Columns.Count).End(xlToLeft).Column
        arrSource = .Range(.Cells(1, 3), .Cells(Lr, Lc))
        ReDim arrResult(1 To (UBound(arrSource, 1) - 1) * UBound(arrSource, 2), 1 To 2)
        For i = 2 To UBound(arrSource, 1)
            For j = 2 To UBound(arrSource, 2)
                If arrSource(i, j) = 1 Then
                    k = k + 1
                    arrResult(k, 1) = arrSource(i, 1)
                    arrResult(k, 2) = arrSource(1, j)
                End If
            Next j
        Next i
        Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "DS lop theo nhan vien"
        ActiveSheet.Range("A2").Resize(UBound(arrResult, 1), 2) = arrResult
    End With
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
End Sub
Hi bạn,

Cảm ơn bạn nhiều nhé. Kết quả đúng như bên sheet DS lop theo nhan vien đúng như mình cần rồi ạ.

Cảm ơn bạn lần nữa :D
 
Web KT
Back
Top Bottom