Nhờ mọi người trợ giúp tính thời gian cộng thêm

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

buithai108

Thành viên mới
Tham gia
15/4/10
Bài viết
3
Được thích
2
Điều kiện thời gian làm việc 1 ngày bắt đầu 8 tiếng
Sáng: 7:30 đến 12 giờ
Chiều: 13:30 đến 17 giờ
Sau 17h tính sang ngày hôm sau bắt đầu từ 7:30
Ngày làm việc từ thứ 2 đến thứ 6

Nhập thời gian và số giờ cần cộng thêm, kết quả sẽ trả ra là thời gian sau khi cộng

Ví dụ:
Thời gian: 06/06/2024 20:40:09
Thời gian cộng thêm: 20 giờ
kết quả sau khi tính toán là: 11/06/2024 11:30:00

Mình xin cảm ơn
 

File đính kèm

  • tinh thoi gian.xlsx
    9.9 KB · Đọc: 22
Có cái file cũng lười lập, đâm ra cũng lười giúp, tạm biệt.
 
Viết xong nhìn lại chả nhớ mình viết cái gì. :D
Mã:
=LET(x,A2,y,B2,a,{-1;15;24;27;34;63}/48,b,MATCH(MOD(x,1),a),c,MOD(IF(MOD(b,2),INDEX(a,b+1),x),1),d,MOD(y,8)/24,e,c+d+AND(c<1/2,c+d>1/2)*3/48,g,MATCH(e,a),h,SWITCH(g,2,e,3,1/2,4,e,1+LET(s,e-17/24,15/48+s+(s>9/48)*3/48)),WORKDAY(x,(b>4)+INT(y/8)+INT(h)-(h=15/48))+IF(h=15/48,17/24,MOD(h,1)))
 
Viết xong nhìn lại chả nhớ mình viết cái gì. :D
Mã:
=LET(x,A2,y,B2,a,{-1;15;24;27;34;63}/48,b,MATCH(MOD(x,1),a),c,MOD(IF(MOD(b,2),INDEX(a,b+1),x),1),d,MOD(y,8)/24,e,c+d+AND(c<1/2,c+d>1/2)*3/48,g,MATCH(e,a),h,SWITCH(g,2,e,3,1/2,4,e,1+LET(s,e-17/24,15/48+s+(s>9/48)*3/48)),WORKDAY(x,(b>4)+INT(y/8)+INT(h)-(h=15/48))+IF(h=15/48,17/24,MOD(h,1)))
Công thức bạn viết đã chạy được rồi, mình cảm ơn rất nhiều
 
Ví dụ:
Thời gian: 06/06/2024 20:40:09
Thời gian cộng thêm: 20 giờ
kết quả sau khi tính toán là: 11/06/2024 11:30:00
Thêm vài ví dụ nữa đi bạn, như:

Thời gian: 06/06/2024 08:00:00
Thời gian cộng thêm: 4 giờ
kết quả sau khi tính toán là bao nhiêu?
 
Thời gian: 06/06/2024 08:00:00
Thời gian cộng thêm: 4 giờ
kết quả sau khi tính toán là bao nhiêu?
Chắc kết quả phải là 06/06/2024 12:00:00. Ý bạn muốn nói công thức ở bài #4 ra kết quả 06/06/2024 13:30:00 là không đúng đúng không! Đây là vấn đề tính toán của Excel chứ không phải thuật toán của công thức.

Chúng ta đều biết giới hạn đối với dữ liệu kiểu số trên Excel là 15 chữ số, 06/06/2024 08:00:00 ở dạng số thập phân là một số thập phân vô hạn, khi tính toán Excel sẽ tự làm tròn đến 15 chữ số (bao gồm cả phần nguyên), chính điều này làm sai lệch kết quả.

Để kiểm chứng bạn có thể thử 06/06/2024 09:00:00 cộng thêm 3 giờ.

Có thể sửa công thức để loại bỏ ảnh hưởng của giới hạn này nhưng sẽ làm công thức thêm rối và khó hiểu.
 
Viết xong nhìn lại chả nhớ mình viết cái gì. :D
Mã:
=LET(x,A2,y,B2,a,{-1;15;24;27;34;63}/48,b,MATCH(MOD(x,1),a),c,MOD(IF(MOD(b,2),INDEX(a,b+1),x),1),d,MOD(y,8)/24,e,c+d+AND(c<1/2,c+d>1/2)*3/48,g,MATCH(e,a),h,SWITCH(g,2,e,3,1/2,4,e,1+LET(s,e-17/24,15/48+s+(s>9/48)*3/48)),WORKDAY(x,(b>4)+INT(y/8)+INT(h)-(h=15/48))+IF(h=15/48,17/24,MOD(h,1)))
Em góp vui ạ.
Mã:
=WORKDAY.INTL(A2;1+ROUNDUP((B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24)))/8;0);11)+"7:30"+MOD(B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24));8)/24+(MOD(B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24));8)>4,5)/24*1,5

Nếu đặt name =B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24)) thì sẽ làm công thức ngắn 1 tí.
 
Em góp vui ạ.
Mã:
=WORKDAY.INTL(A2;1+ROUNDUP((B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24)))/8;0);11)+"7:30"+MOD(B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24));8)/24+(MOD(B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24));8)>4,5)/24*1,5

Nếu đặt name =B2-IF(MOD(A2;1)>0,5;17-MEDIAN(17;13,5;MOD(A2;1)*24);15,5-MEDIAN(12;7,5;MOD(A2;1)*24)) thì sẽ làm công thức ngắn 1 tí.
Kết quả chưa đúng.
.
 
Chắc kết quả phải là 06/06/2024 12:00:00. Ý bạn muốn nói công thức ở bài #4 ra kết quả 06/06/2024 13:30:00 là không đúng đúng không! Đây là vấn đề tính toán của Excel chứ không phải thuật toán của công thức.

Có thể sửa công thức để loại bỏ ảnh hưởng của giới hạn này nhưng sẽ làm công thức thêm rối và khó hiểu.
Mình thắc mắc sao ko sửa chỉ vì rối? Ví dụ của thớt chỉ để người giúp hình dung nguyên tắc tính toán, nhưng áp dụng thực nó là một dữ liệu ko kiểm soát được. Nếu bác giúp mà vẫn còn bỏ sót, người nhờ thì nhắm mắt tin và dùng thì gây sai sót trong thực tế của họ. Hậu quả có khi nghiêm trọng.

@Phuocam
Mình ví dụ (có thể ko đúng ý đồ chủ thớt nữa)
Giờ vào: 06/06/2024 07:29:59
Tổng giờ công được tính lương: 02h01m01s
Nhiệm vụ:
1. Tính giờ ngày ra.
2. Kết quả câu 1 quy về giờ hành chánh.
Nếu bác giúp mở rộng đề tài, mình sẽ tạo file thêm nhiều ví dụ “góc kẹt”.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom