TẠO QUY TRÌNH CÓ GIỚI HẠN GIỜ HÀNH CHÍNH 8H-17H

Liên hệ QC

ngothaison_2007

Thành viên mới
Tham gia
13/4/09
Bài viết
4
Được thích
4
Chào các bạn,
Mình đang muốn tạo quy trình luân chuyển hồ sơ, giới hạn bởi giờ làm việc hành chính từ 8h - 17h, tuy nhiên, Excel cộng dồn thời gian vượt quá 17h. Mình muốn hỏi có cách nào tạo quy trình như vậy mà nếu Cột thời gian hoàn thành vượt quá 17h, sẽ tự động chuyển thời gian vượt sang ngày làm việc tiếp theo không? Mình xin cám ơn
Mình bổ sung: Nghỉ trưa 12-13h, cuối tuần nghỉ chiều thứ 7 và ngày chủ nhật, có thể tạm bỏ qua ngày nghỉ lễ cho đỡ phức tạp (nếu có thể làm luôn được thì càng tốt)
UP2.png
 

File đính kèm

  • NHAP.xlsx
    12.9 KB · Đọc: 9
Lần chỉnh sửa cuối:
Chào các bạn,
Mình đang muốn tạo quy trình luân chuyển hồ sơ, giới hạn bởi giờ làm việc hành chính từ 8h - 17h, tuy nhiên, Excel cộng dồn thời gian vượt quá 17h. Mình muốn hỏi có cách nào tạo quy trình như vậy mà nếu Cột thời gian hoàn thành vượt quá 17h, sẽ tự động chuyển thời gian vượt sang ngày làm việc tiếp theo không? Mình xin cám ơnView attachment 262645

Từ 8h - 17h, có giờ nghỉ trưa không bạn? Nó có bỏ qua thứ 7, CN, ngày lễ không bạn?

.
 
@Chủ bài đăng: Cột cuối của bạn nên tách ra làm 2, ghi ngày tháng riêng, giờ riêng được không?
$$$$@
 
Lần chỉnh sửa cuối:
Chào các bạn,
Mình đang muốn tạo quy trình luân chuyển hồ sơ, giới hạn bởi giờ làm việc hành chính từ 8h - 17h, tuy nhiên, Excel cộng dồn thời gian vượt quá 17h. Mình muốn hỏi có cách nào tạo quy trình như vậy mà nếu Cột thời gian hoàn thành vượt quá 17h, sẽ tự động chuyển thời gian vượt sang ngày làm việc tiếp theo không? Mình xin cám ơn
Mình bổ sung: Nghỉ trưa 12-13h, cuối tuần nghỉ chiều thứ 7 và ngày chủ nhật, có thể tạm bỏ qua ngày nghỉ lễ cho đỡ phức tạp (nếu có thể làm luôn được thì càng tốt)
View attachment 262645
Bài này tính ngược lại với chủ đề sau:

Thấy thú vị nên tôi đưa thử Giải thuật như sau:
  • Cộng dồn số Giờ làm việc (Giờ hành chánh) theo từng ngày trong tháng (đã loại trừ các ngày nghỉ lễ), đem so với "Thời gian tiêu chuẩn" (tính bằng giờ), chọn ra Ngày và giờ đã cộng dồn lớn hơn gần nhất, trừ cho thời gian tiêu chuẩn đó, xong đem 'Mốc cuối giờ của ngày' trừ cho kết quả trên sẽ được "Ngày và giờ hoàn thành tiêu chuẩn".
Thực hiện:
  1. Tạo các 'Name' sau:
    • 'TongNgay'= 30 (Số ngày trong tháng. Có thể thay đổi tùy thích như 60 ngày hay 180 ngày ..v.v)
    • 'M.Dong' =ROW(INDIRECT("1:"&TongNgay)) (Tạo 1 mảng từ 1 đến số ngày trong tháng)
    • 'NgayTrongThang'=INT(PD.CTD!$B7)+M.Dong-1 (Tạo 1 mảng chi tiết ngày trong tháng tính từ Ngày nhận)
    • 'GioHC'= Liệt kê Giờ HC tính từ Ngày Giờ nhận hồ sơ, đã trừ các Ngày Lễ.
      Mã:
      =TEXT(WEEKDAY(PD.CTD!$B7+M.Dong-1,2),"[<6]\8;[=6]\4;\0")*(COUNTIF(NgayLe!$A$2:$A$31,NgayTrongThang)=0)-SUM(TEXT((MOD(PD.CTD!$B7,1)*24-{8;12;13}),"[<0]\0;[<"&{4;0;4}&"];\"&{4;0;4})*1)*(M.Dong-1=0)
    • 'GioHCCongDon' = Cộng dồn Giờ HC.
      Mã:
      =MMULT(N(M.Dong>=TRANSPOSE(M.Dong)),GioHC)
    • 'HieuSoGio' = Lấy Giờ HC cộng dồn trừ Thời gian tiêu chuẩn.
      Mã:
      =GioHCCongDon-PD.CTD!$G7
    • 'MocGio' = Các Mốc giờ cuối ngày: từ thứ 2 đến thứ 6 là 17:00, riêng ngày thứ 7 là 12:00.
      Mã:
      =TEXT(WEEKDAY(PD.CTD!$B7+M.Dong-1,2),"[<6]\17;[=6]\12")
  2. Công thức tính:
    Mã:
    I7=IF(B7="","",AGGREGATE(15,6,(NgayTrongThang+(MocGio-HieuSoGio-(HieuSoGio>4))/24)/(HieuSoGio>0),1))
    Enter, fill xuống.
Xem chi tiết trong file kèm.

Thân
 

File đính kèm

  • NHAP.xlsx
    17.8 KB · Đọc: 13
Bài này tính ngược lại với chủ đề sau:

Thấy thú vị nên tôi đưa thử Giải thuật như sau:
  • Cộng dồn số Giờ làm việc (Giờ hành chánh) theo từng ngày trong tháng (đã loại trừ các ngày nghỉ lễ), đem so với "Thời gian tiêu chuẩn" (tính bằng giờ), chọn ra Ngày và giờ đã cộng dồn lớn hơn gần nhất, trừ cho thời gian tiêu chuẩn đó, xong đem 'Mốc cuối giờ của ngày' trừ cho kết quả trên sẽ được "Ngày và giờ hoàn thành tiêu chuẩn".
Thực hiện:
  1. Tạo các 'Name' sau:
    • 'TongNgay'= 30 (Số ngày trong tháng. Có thể thay đổi tùy thích như 60 ngày hay 180 ngày ..v.v)
    • 'M.Dong' =ROW(INDIRECT("1:"&TongNgay)) (Tạo 1 mảng từ 1 đến số ngày trong tháng)
    • 'NgayTrongThang'=INT(PD.CTD!$B7)+M.Dong-1 (Tạo 1 mảng chi tiết ngày trong tháng tính từ Ngày nhận)
    • 'GioHC'= Liệt kê Giờ HC tính từ Ngày Giờ nhận hồ sơ, đã trừ các Ngày Lễ.
      Mã:
      =TEXT(WEEKDAY(PD.CTD!$B7+M.Dong-1,2),"[<6]\8;[=6]\4;\0")*(COUNTIF(NgayLe!$A$2:$A$31,NgayTrongThang)=0)-SUM(TEXT((MOD(PD.CTD!$B7,1)*24-{8;12;13}),"[<0]\0;[<"&{4;0;4}&"];\"&{4;0;4})*1)*(M.Dong-1=0)
    • 'GioHCCongDon' = Cộng dồn Giờ HC.
      Mã:
      =MMULT(N(M.Dong>=TRANSPOSE(M.Dong)),GioHC)
    • 'HieuSoGio' = Lấy Giờ HC cộng dồn trừ Thời gian tiêu chuẩn.
      Mã:
      =GioHCCongDon-PD.CTD!$G7
    • 'MocGio' = Các Mốc giờ cuối ngày: từ thứ 2 đến thứ 6 là 17:00, riêng ngày thứ 7 là 12:00.
      Mã:
      =TEXT(WEEKDAY(PD.CTD!$B7+M.Dong-1,2),"[<6]\17;[=6]\12")
  2. Công thức tính:
    Mã:
    I7=IF(B7="","",AGGREGATE(15,6,(NgayTrongThang+(MocGio-HieuSoGio-(HieuSoGio>4))/24)/(HieuSoGio>0),1))
    Enter, fill xuống.
Xem chi tiết trong file kèm.

Thân
Công trình hoành tráng quá. :)

Trường hợp bắt đầu từ 16:30 và thời gian là 0:30, không biết OP muốn kết quả trả về là 17:00 hay 8:00 ngày hôm sau.

.
 
Công trình hoành tráng quá. :)

Trường hợp bắt đầu từ 16:30 và thời gian là 0:30, không biết OP muốn kết quả trả về là 17:00 hay 8:00 ngày hôm sau.

.
Dễ òm!

Giờ quy định hết giờ trên giấy tờ là 17:00h, nhưng thực tế thì khoảng trước 30' hoặc 1 tiếng là bấm nút biến rồi, nên chắc chắn kết quả là 8:00 ngày hôm sau.

Khà khà khà
/-*+//-*+//-*+/
 
Web KT
Back
Top Bottom