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: 16
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.
.
 
Web KT
Back
Top Bottom