Chấm công - Công thức để tính thêm giờ đêm. (1 người xem)

Người dùng đang xem chủ đề này

Tranthuy233

Thành viên mới
Tham gia
19/6/08
Bài viết
11
Được thích
0
Mình đang xây dựng công thức tính làm thêm giờ đêm nhưng loay hoay mãi không biết dùng công thức nào để tính, Các bác chỉ giúp em với ah. Thanks!!!!!
 

File đính kèm

Cái này mà xài hàm tự tạo là OK ngay í mà!

Nhưng ngày 29 & 30 tháng trước có trị mà bạn chưa nói tới vậy? Chắc đó là làm thêm ban ngày?

Còn tại ngày 17 có con số 2 là ca 2?

Chờ tin bạn & những nhà siêu công thức vậy!
 
Nhưng ngày 29 & 30 tháng trước có trị mà bạn chưa nói tới vậy? Chắc đó là làm thêm ban ngày?

Còn tại ngày 17 có con số 2 là ca 2?

Chờ tin bạn & những nhà siêu công thức vậy!

Mình nói rõ thêm một chút về ký hiệu chấm công bên mình để mọi người rõ hơn ah:
Mỗi NV sẽ gồm 2 dòng: dòng 1 là công chính, dòng 2 là thêm giờ.
Ở dòng thêm giờ: có thêm giờ ngày và thêm giờ đêm.
- Nếu chỉ có thêm giờ ngày thì sẽ đánh số giờ làm thêm giờ ngày: VD: 8
- Nếu chỉ có thêm giờ đêm thì sẽ đánh 0/thêm giờ đêm: VD: 0/5
- Nếu có cả thêm giờ ngày và thêm giờ đêm thì sẽ đánh thêm giờ ngày/thêm giờ đêm: VD: 2/8 trong đó 2 là thêm giờ ngày và 8 là thêm giờ đêm.

Các bác xây dựng giúp em công thức với ah.
 
Dùng công thức này:
Mã:
=SUM(IF(ISERROR(IF(FIND("/",E11:AI11,2),E11:AI11,0)),0,IF(FIND("/",E11:AI11,2),--RIGHT(E11:AI11),0)))
Kết thúic bằng Ctrl-shift-enter
 
Còn hàm tự tạo thì nó thế này, để tham khảo cho vui!

PHP:
Option Explicit
Function ThemGio(Rng As Range, Optional Dem As Boolean = True)
 Dim Cls As Range, VTr As Byte
 Const GX As String = "/"
 
 For Each Cls In Rng
   VTr = InStr(Cls.Value, GX)
   If IsNumeric(Cls.Value) And Not Dem Then
      ThemGio = ThemGio + Cls.Value
   ElseIf VTr Then
      ThemGio = ThemGio + _
         IIf(Dem, CInt(Mid(Cls.Value, VTr + 1, 5)), CInt(Left(Cls.Value, VTr - 1)))
   End If
 Next Cls
End Function

/(hi đó cú fáp tại [AN11] sẽ là =ThemGio($E11:$AI11,FALSE)

& tại ô fải liền kề sẽ là =ThemGio($E11:$AI11)

 
Hôm nọ em có hỏi về tính thêm giờ đêm, bác beno021999 đã làm giúp em chạy ngon lành. Bây giờ liên quan đến tính thêm giờ ngày, muốn nhờ các bác (đặc biệt bác bebo021999) ah.
Công thức của bác Bebo021999 nếu số giờ thêm giờ <10 thì ok nhưng nếu số giờ thêm giờ >=10 (2 chữ sô) thì sẽ bị sai.
VD:
1/3 (trong đó 1 là thêm giờ ngày) thì kết quả sẽ là: 1 => OK
12/3 (trong đó 12 làm thêm giờ ngày) thì kết quả cũng là 1 => bị sai.
Em đã thử dùng hàm and kết hợp giữa việc tìm ký tự / và đo độ dài LEN đển trong TH LEN = 4 ký tự thì leght sẽ lấy 2 ký tự nhưng nó báo #Value. Em đoán là do em dùng LEN(E...:AI...) nên nó báo lỗi vì LEN(TEXT).
Bây giờ phải làm thế nào để tính được ah
Câu hỏi thứ 2: Hàm RIGHT(Text,num_chars) chỉ dùng cho 1 ô tính, em thấy bác bebo021999 dùng --right(E1:AI1) thì chạy được cả dòng, vậy thì ý nghĩa của -- là gì, nếu muốn chạy cả dòng với hàm len thì làm ntn

Thanks!
 
Hôm nọ em có hỏi về tính thêm giờ đêm, bác beno021999 đã làm giúp em chạy ngon lành. Bây giờ liên quan đến tính thêm giờ ngày, muốn nhờ các bác (đặc biệt bác bebo021999) ah.
Công thức của bác Bebo021999 nếu số giờ thêm giờ <10 thì ok nhưng nếu số giờ thêm giờ >=10 (2 chữ sô) thì sẽ bị sai.
VD:
1/3 (trong đó 1 là thêm giờ ngày) thì kết quả sẽ là: 1 => OK
12/3 (trong đó 12 làm thêm giờ ngày) thì kết quả cũng là 1 => bị sai.
Em đã thử dùng hàm and kết hợp giữa việc tìm ký tự / và đo độ dài LEN đển trong TH LEN = 4 ký tự thì leght sẽ lấy 2 ký tự nhưng nó báo #Value. Em đoán là do em dùng LEN(E...:AI...) nên nó báo lỗi vì LEN(TEXT).
Bây giờ phải làm thế nào để tính được ah
Câu hỏi thứ 2: Hàm RIGHT(Text,num_chars) chỉ dùng cho 1 ô tính, em thấy bác bebo021999 dùng --right(E1:AI1) thì chạy được cả dòng, vậy thì ý nghĩa của -- là gì, nếu muốn chạy cả dòng với hàm len thì làm ntn

Thanks!
Thêm giờ ngày:
Mã:
=SUM(--LEFT(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11),FIND("/",IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))-1))

Thêm giờ đêm:
Mã:
=SUM(--RIGHT(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11),LEN(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))-FIND("/",IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))))
Kết thúc bằng Ctrl-Shift-Enter
Dự trù >10h cho cả ngày và đêm.
 

File đính kèm

Thêm giờ ngày:
Mã:
=SUM(--LEFT(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11),FIND("/",IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))-1))

Thêm giờ đêm:
Mã:
=SUM(--RIGHT(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11),LEN(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))-FIND("/",IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))))
Kết thúc bằng Ctrl-Shift-Enter
Dự trù >10h cho cả ngày và đêm.

Cám ơn bác Bebo021999 ah/
 
Thêm giờ ngày:
Mã:
=SUM(--LEFT(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11),FIND("/",IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))-1))

Thêm giờ đêm:
Mã:
=SUM(--RIGHT(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11),LEN(IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))-FIND("/",IF(LEN(E11:AI11)<3,--(E11:AI11)&"/0",E11:AI11))))
Kết thúc bằng Ctrl-Shift-Enter
Dự trù >10h cho cả ngày và đêm.

Bác bebo021999
giúp dùm em với.

Em đang muốn đặt công thức là sao để tính được số giờ làm thêm:
VD: 1 người làm thêm từ 17h-8h sáng hôm sau
vậy: 17-22: 5h
22-8: 10h

Em gửi file cho bác giúp dùm ah.

Thanks bác
 

File đính kèm

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

Back
Top Bottom