Tính Tổng Thời Gian Làm Việc Theo Điều Kiện (Nâng Cao)

Tính tổng thời gian làm việc của mỗi người theo thời gian bắt đầu và kết thúc, cũng như theo thời gian làm việc mỗi ngày trong tuần.

Ví dụ: Thành bắt đầu 06/06/2025 từ 11:00 là thứ 6. Theo lịch ngày thứ 6 thời gian làm việc từ 12:00, nên 1h đầu sẽ không được tính vào thời gian làm việc. Cũng như ngày 07 và 08 là thứ 7, chủ nhật cũng cần loại bỏ khỏi thời gian.

Link: Onedrive

Tổng thời gian làm việc mỗi người theo lịch chỉ định

Công thức:
1.=HSTACK(A2:A10,MAP(B2:B10,C2:C10,D2:D10,E2:E10,LAMBDA(x,v,s,r,LET(a,WEEKDAY(SEQUENCE(s-x+1,,x),2),SUM(IFERROR(INDEX(D14:D18,a),))-24*(MAX(,IFERROR(v-INDEX(B14:B18,@a),))+MAX(,IFERROR(INDEX(C14:C18,TAKE(a,-1))-r,)))))))

2.=HSTACK(A2:A10,MAP(B2:B10,C2:C10,D2:D10,E2:E10,LAMBDA(x,v,s,r,LET(a,SEQUENCE(s-x+1),f,LAMBDA(i,IFNA(VLOOKUP(TEXT(x+a-1,"ddd"),A14:D18,i,0),0)),b,f(2),c,f(3),d,f(4),SUM(IFS((a=1)*d,d-IF(v>b,(v-b)*24,0),(a=MAX(a))*d,d-IF(c>r,(c-r)*24,0),1,d))))))

3.=LET(a,B2:B10,b,D2:D10,c,IF(WEEKDAY(a,2)>5,WORKDAY(+a,1),a),d,IF(WEEKDAY(b,2)>5,WORKDAY(+b,-1),b),HSTACK(A2:A10,MAP(c,IF(a=c,C2:C10,B14),d,IF(b=d,E2:E10,C18),LAMBDA(x,v,s,r,LET(m,WORKDAY(x-1,SEQUENCE(NETWORKDAYS(x,s))),n,TEXT(m,"ddd"),k,VLOOKUP(n,A14:C18,3,0),l,VLOOKUP(n,A14:B18,2,0),SUM(IF(m=MAX(m),MIN(r,TAKE(k,-1)),k)-IF(m=@m,MAX(v,@l),l))*24)))))
Đăng nhận xét (0)
Mới hơn Cũ hơn