Xử lý dữ liệu lấy từ máy chấm công

Liên hệ QC
Cảm ơn bạn HieuCD rất nhiều , bạn rất nhiệt tình qua cách hướng dẫn của bạn mình học được rất nhiều điều bổ ích! Thanks
 
Chào bạn HieuCD, mình xin lỗi làm phiền bạn quá , mình hiểu hàm offset nhưng mình chỉ hiểu ở mức độ cơ bản là hàm sẽ di dời số dòng và số cột tại một tham chiếu cho trước và mình cũng chưa hiểu được ứng dụng thực tế của nó, mình cũng có chạy thử hàm offset của bạn nhưng mình không hiểu ý nghĩa của nó , mong bạn chỉ dạy cho mình thêm để có thể áp dụng trong trường hợp khác , bạn có thể giải thích cho mình hiểu công thức Ngau_ID và Gio mà bạn dùng hàm offset được không cảm ơn bạn HieuCD rất nhiều!
 
Xử lý dữ liệu từ máy chấm công
Mình cũng muốn hỏi giống như bạn tuanquapharco, cty mình cũng sử dụng máy chấm công bằng dấu vân tay.
Các bạn vui lòng chỉ giúp tôi tạo công thức để tính giờ làm bình thường, và tách giờ tăng ca ra giờ buổi chiều.
VD: Nguyễn Văn A: buổi sáng Giờ vào 7:15 giờ ra 11:30,
buổi chiều giờ vào 13:00 giờ ra 17:00, nếu có tăng ca thì nhập giờ tăng ca chung buổi chiều.Giờ vào 13:00 giờ ra 20:30
Có những trường hợp vào làm trước 7:30 sẽ không tính công, bởi vì thời gian quy định bắt đầu làm việc từ 7:30, mình làm sao để tính đúng thời gian quy định.
Chỉ giúp mình công thức trừ giờ nghỉ tăng ca, giờ tăng ca từ 17:30->20:30.
Cảm ơn rất nhiều!

Bạn ơi giúp mình với, mình cũng đang gặp trường hợp này. Mong phản hồi của bạn, mình cảm ơn.
 
Mình không giỏi về excel lắm, nên mỗi tháng chấm công đều rất mất thời gian và cũng đã cố gắng tìm cách khắc phục nhưng không được
nhờ mọi người giúp đỡ hướng dẫn cách xử lý dữ liệu xuất từ phần mềm chấm công để tạo được bảng công cho nhân viên nhanh nhất
Mình xuất file tính thời gian chấm của nhân viên như file đính kèm
Công ty mình có các ca sau:
- ca 1: 6:00~14:00
- Ca 2: 14:00~22:00
- Ca 3: 22:00~6:00 (ngày hôm sau)
- Hành chánh: 8:00~16:30
- Ca 1B: 10:00~18:00
- Ca 2B: 12:00~20:00
Làm việc từ thứ 2 đến thứ 7 hàng tuần (thứ 7 thường được nghỉ hưởng lương)
Thời gian tăng ca được tính sau thời gian về, riêng Ca 3 sẽ tính thời gian tăng ca trước khi bắt đầu làm, ngày chủ nhật tính tăng ca
Rất cảm ơn mọi người
 

File đính kèm

Tạm thời là vầy; Bạn kiểm & cho í kiến tiếp theo
 

File đính kèm

Để có kết quả, cần chạy 1 macro;
Nó được cải tiến thêm trong khi chờ bạn trả lời, như sau:
PHP:
Sub ChuyenCong()
 Dim Sh As Worksheet, Arr()
 Dim J As Long, Rws As Long, Dg As Integer, Ng As Integer, NCT As Integer

 On Error Resume Next
 Rws = [b10].CurrentRegion.Rows.Count
 Arr() = [A10].Resize(Rws, 6).Value
 Set Sh = ThisWorkbook.Worksheets("BCC")
 NCT = Day(DateSerial(Sh.[a3].Value, Sh.[a4].Value, 0))
 MsgBox NCT
 For Dg = 7 To Sh.[C9999].End(xlUp).Row Step 2
    ReDim dArr(1 To 2, 1 To 31)
    For J = 1 To UBound(Arr())
        If Arr(J, 3) = Sh.Cells(Dg, "C").Value Then
            Ng = Day(Arr(J, 1))
            If Arr(J, 4) > 0 Then
                If Ng > 20 Then
                    dArr(1, Ng - 20) = Arr(J, 4)
                    dArr(2, Ng - 20) = Arr(J, 6)
                Else
                    dArr(1, NCT - 20 + Ng) = Arr(J, 4)
                    dArr(2, NCT + Ng - 20) = Arr(J, 6)
                End If
            End If
        End If
    Next J
    Sh.Cells(Dg, "E").Resize(2, 31).Value = dArr()
    Erase dArr()
 Next Dg
End Sub

Rất vui được tiếp tục trao đổi cùng bạn!
 
Để có kết quả, cần chạy 1 macro;
Nó được cải tiến thêm trong khi chờ bạn trả lời, như sau:
PHP:
Sub ChuyenCong()
 Dim Sh As Worksheet, Arr()
 Dim J As Long, Rws As Long, Dg As Integer, Ng As Integer, NCT As Integer

 On Error Resume Next
 Rws = [b10].CurrentRegion.Rows.Count
 Arr() = [A10].Resize(Rws, 6).Value
 Set Sh = ThisWorkbook.Worksheets("BCC")
 NCT = Day(DateSerial(Sh.[a3].Value, Sh.[a4].Value, 0))
 MsgBox NCT
 For Dg = 7 To Sh.[C9999].End(xlUp).Row Step 2
    ReDim dArr(1 To 2, 1 To 31)
    For J = 1 To UBound(Arr())
        If Arr(J, 3) = Sh.Cells(Dg, "C").Value Then
            Ng = Day(Arr(J, 1))
            If Arr(J, 4) > 0 Then
                If Ng > 20 Then
                    dArr(1, Ng - 20) = Arr(J, 4)
                    dArr(2, Ng - 20) = Arr(J, 6)
                Else
                    dArr(1, NCT - 20 + Ng) = Arr(J, 4)
                    dArr(2, NCT + Ng - 20) = Arr(J, 6)
                End If
            End If
        End If
    Next J
    Sh.Cells(Dg, "E").Resize(2, 31).Value = dArr()
    Erase dArr()
 Next Dg
End Sub

Rất vui được tiếp tục trao đổi cùng bạn!
Cảm ơn bạn nhiều, mình đã hiểu mình cần học thêm cái gì rồi. Thanks
 
Mọi người có thể giúp mình lấy ngày công từ file dữ lieu execl của máy chấm công vào file đuoc không ạ. Bên mình có 4 lần chấm tay luôn ạ
 

File đính kèm

Vậy bạn sửa dùm câu lệnh
Mã:
dArr(1, Ng) =  Arr(J, 11)
Thành lệnh:
PHP:
dArr(1, Ng) = dArr(1, Ng) + Arr(J, 11) '*'
Mình chưa thực sự chú í lắm, xin lỗi bạn nha!
 
Vậy bạn sửa dùm câu lệnh
Mã:
dArr(1, Ng) =  Arr(J, 11)
Thành lệnh:
PHP:
dArr(1, Ng) = dArr(1, Ng) + Arr(J, 11) '*'
Mình chưa thực sự chú í lắm, xin lỗi bạn nha!
Cảm ơn bạn nhiều. Mình sửa lệnh được rồi, bạn cho mình hỏi them 1 cái nha, nếu sheet CCM mình có them ng. qua sheet BCC mình insert them tên nhân viên, thì sửa lệnh nào về vùng do không ạ. Mình k rành marco lắm, bạn giúp mình them tí nhé. mình có add thêm nhân viên nhưng lúc chạy marco thì k ra ah
 
Và bạn có thể giúp mình làm như thế nào để khi qua thang moi co the dung ham nay lai duoc k ah. Minh dở excel lắm, bạn giup dùm mình nha
 
Ad ơi cho mình hỏi với dữ liệu quẹt thẻ như thế này , thì chấm công trên excel như thế nào ? Mình hay chấm bằng phần mềm nay phải chấm công bằng excel nên hơi bí
 

File đính kèm

chào các a/c ạ. em k rành ex,em có bảng chấm công như file đính kèm (bảng bấm vân tay =sheet 1), em muốn chấm công như bảng sheet 3.có cach nào chấm công cho nhanh mà chính xác k ạ?giúp em với ạ( em phải xác định đc ngày nào đi trễ,đi trễ mấy phút,ngày nào về sơm,về sớm mấy phút, ngày nào quên bấm vt,..)
 

File đính kèm

Sao ở trang chấm công vân tay có mã NV mà trang còn lại chưa có cột mã NV vậy; Chơi vậy là không được rồi;
Muốn CSDL fục vụ cho mình 1 cách trường tồn thì fải dựa vào mã NV này, không thể dựa vô cột nào khác như [Họ & Tên]; đó sẽ là cột mục ruỗng có ngày!
Bỡi Mã NV là rất quan trọng, như cột sống của loài động vật, nếu không có nó hay nó không đáng tin cậy CSDL của bạn sẽ là chưa tiến hóa & nên bỏ đi;

Mã NV của bạn cũng chưa hoàn chỉnh; Sự chưa này thể hiện ngay ô [B6], Nếu là mã NV xài trong Excel chỉ gồm 2 kí số thì ta nên bắt đầu chí ít từ con số 10 trở đi
(Nếu mã NV là 3 kí số thì nên xài từ con 100 trở đi; Còn vì sao fải vậy bạn tự tìm hiểu lúc rỗi, nha!)

Sau khi bạn sửa lại File, ta mới bàn tiếp chuyện khác được, nhưng nói trước: Nên là VBA!
 
Mọi người có ai xử lý được vấn đề máy chấm công ca đêm không ạ? Mình đang rầu vụ này!
 
Web KT

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

Back
Top Bottom