Tính Tổng Giờ Xe Chạy Theo Ngày

Dữ liệu ghi lại thời điểm xe Start và Stop. Mỗi lần Start sẽ có một Stop tương ứng. Nếu không có Stop, thì coi 0h đêm kế tiếp là thời điểm dừng. Cần tính tổng giờ chạy theo ngày.

Ví dụ:

  • Xe C1 chạy từ 05:30 đến 08:30 → thời lượng 03:00
  • Sau đó xe chạy tiếp từ 18:15 đến hết ngày (00:00) → thời lượng 05:45
  • Vậy tổng thời gian trong ngày 04/09/2025 là 08:45.

Link: Onedrive

Tính tổng thời gian xe chạy trong ngày

Công thức:
1.=LET(a,A2:A14,b,B2:B14,c,INT(b),d,UNIQUE(HSTACK(a,c)),m,DROP(REDUCE(0,TAKE(d,,1)&DROP(d,,1),LAMBDA(x,v,LET(f,FILTER(MOD(b,1),v=a&c),g,IF(FILTER(C2:C14,v=a&c)="stop",1,-1),IFNA(VSTACK(x,HSTACK(MOD(SUM(f*g,1),1),TOROW(f))),"")))),1),VSTACK(HSTACK(A1,"Date","Time"&SEQUENCE(,COLUMNS(m)-1),"Total"),HSTACK(d,DROP(m,,1),TAKE(m,,1))))

2.=LET(a,A2:A14,b,B2:B14,c,INT(b),d,c&a,e,MAX(BYROW(N(d=TOROW(d)),SUM)),REDUCE(HSTACK(A1,"Date","Time"&SEQUENCE(,e),"Total"),UNIQUE(d),LAMBDA(x,v,VSTACK(x,LET(m,FILTER(HSTACK(a,c,MOD(b,1),IF(C2:C14="stop",1,-1)),d=v),HSTACK(UNIQUE(TAKE(m,,2)),EXPAND(TOROW(INDEX(m,,3)),,e,""),MOD(SUM(BYROW(DROP(m,,2),PRODUCT),1),1)))))))

3.=LET(a,A2:A14,b,B2:B14,x,a&" "&b,e,a&" "&INT(b),P,XMATCH(e,e),K,MAX(FREQUENCY(P,P)),REDUCE(HSTACK(A1,"Date","Time"&SEQUENCE(,K),"Total"),UNIQUE(e),LAMBDA(a,d,LET(Q,FILTER(B2:C14,d=e),m,ROWS(Q),c,MOD(TAKE(Q,,1),1),v,IF(MOD(SEQUENCE(m),2),-c,c),w,FILTER(x,e=d),r,--TEXTAFTER(w," "),VSTACK(a,HSTACK(EXPAND(HSTACK(@TEXTSPLIT(w," "),@INT(r),TOROW(MOD(r,1))),,2+K,""),@IF((m=1)*(DROP(Q,,1)="Stop"),c,SUM(IF(MOD(m,2),VSTACK(v,1),v)))))))))

Đăng nhận xét (0)
Mới hơn Cũ hơn