Hôm nay mới xem lại file mới của bạn & xin gốp vài í như sau:File đây bạn nhé (#01). Ngoài ra mình có nói thêm về cách tính giờ công giờ làm thêm. Mọi người xem có thể viết hàm kiểu khác nhẹ nhàng hơn không hoặc VBA được thì càng tốt
Vâng, cảm ơn những lời góp ý của anh.
Chúng ta thử bắt đầu với VBA nha:
Macro chỉ mới làm cho 2 cột dữ liệu [O]; Với máy cà tèng của mình cần 0.08"
Hi vọng giúp được bạn ít nhiều trong tham khảo
If dArr(J, 2) > dArr(J, 1) Then
dArr(J, 3) = Format(GQC(Sht, False) - GQC(Sht), "hh:MM")
Else
dArr(J, 3) = Format(1 + GQC(Sht) - GQC(Sht, False), "hh:MM")
End If
dArr(J, 2) = Format(GQC(Sht, False), "hh:MM")
(1) Còn đây là các câu lệnh tính toán cho cột [Q]
Chúng đứng sau câu này:PHP:If dArr(J, 2) > dArr(J, 1) Then dArr(J, 3) = Format(GQC(Sht, False) - GQC(Sht), "hh:MM") Else dArr(J, 3) = Format(1 + GQC(Sht) - GQC(Sht, False), "hh:MM") End If
Mã:dArr(J, 2) = Format(GQC(Sht, False), "hh:MM")
(Xài các câu này mất thêm 1/100 gy để có số liệu của 1 cột.)
(2) Lại nói về thiết kế trang tính:
Bạn xài 3 cột [R..T] cho số liệu ăn uống 1; Theo mình như thế là dư 2 cột & không tiết kiệm
Sao ta không xài mỗi cột [T] thôi; & lúc đó nhập trực tiếp là 1 cho những người có dùng bữa giữa ca?
Chuyện này sẽ làm CSDL của bạn sẽ khó gì không trong hoạt động?
(2.1) Cũng như vậy với 3 cột liền kề bên fải . . . .
Thiết nghĩ, để tính thời gian làm thêm của 1 người làm bất cứ ca nào, thì ta chỉ căn cứ vô giờ vô & giờ ra khỏi CQ của người í so với thời gian qui định (vô & ra) là được....
Vậy thì 2 cột số liệu của [Giờ của dữ liệu QT] là để ngó chơi à?Không phải đâu ạ. Ví dụ: (Ca H) đến 7h30 về 17:25:
Nếu họ đến sớm không phải vì yêu cầu công việc thì kế toán họ chỉ chấm từ 8h đến 17h. Lúc này sẽ căn cứ vào ô cột giờ đặc biệt. Còn không thì mặc định như công thức của em về ca nào áp khung giờ ấy anh ạ.
CN có người ở xa nên có khi đến sớm.
Vì vậy giờ của dữ liệu không có cách nào chấm tự động.
Nếu nó về trễ 30p mà bộ phận không chấm thì em cũng sẽ không chấm. Còn nếu được chấm thì bộ phận sẽ chấm vào cột giờ đặc biệt.
Cái này VBA có thể làm được rạch ròi cho bạn; nhưng lí ra bạn fải trình bày trước các mục trong qui chế chấm công này của đơn vị bạn mới fải!Em nói thêm là giờ về so với giờ quy định họ về nếu ở lại làm thêm thì dữ liệu quẹt thẻ ít nhất 30p mới được tính (ví dụ về là 17h nhưng ở lại 17h40 thì giờ được tính là 17h30. Qua mốc 30 này thì cứ 15 phút là được tính rồi ví dụ 17h46 được tính là 17h45, 17h55 cũng chỉ được tính là 17h45). Giả như họ về giờ nào tính giờ ây thì có phải nhàn hơn bao nhiêu.
Vậy thì 2 cột số liệu của [Giờ của dữ liệu QT] là để ngó chơi à?
Mà để ngó chơi thì cần chi fải có 2 cột đó trong CSDL kia chứ?
Cái này VBA có thể làm được rạch ròi cho bạn; nhưng lí ra bạn fải trình bày trước các mục trong qui chế chấm công này của đơn vị bạn mới fải!
Hiện cách làm của đơn vị bạn có thể sẽ bị ai đó lợi dụng làm sai lệch con số của công nhân nào đó do chủ quan & cảm tình.
anh hoàn thiện giúp em code quy ra công, giờ làm thêm anh nhé.
Có nghĩa là giờ sẽ fải bắt đầu với cột nào đây? Chắc là cột [X], fải không?
Như vậy giờ sẽ tính theo cột O và P anh nhé. Tất cả dữ liệu sau cột O và P đều dựa theo hai cột này để tính anh ạ.