Xin giúp cách tính ca tối, ca đêm trong thời gian làm việc nhiều ngày liên tục

Liên hệ QC

TDHien59

Thành viên mới
Tham gia
15/3/07
Bài viết
34
Được thích
9
Chào các bạn.
Chỗ tôi có một đội lái xe đường dài, thời gian làm việc thường kéo dài vài ba ngày liên tục.
Vậy tôi muốn tính ra số lượng cụ thể số ca ngày, ca tối và ca đêm trong suốt thời gian chạy của từng xe để tính phụ cấp cho tài xế có được không?

Các dữ liệu có trước
1 ngày gồm 4 ca: 0-6h; 6-12h; 12h-18h; 18h-24h
Trong đó
Ca ngày gồm: 6h-12h; 12h-18h
Ca tối: 18h-24h
Ca đêm: 0h-6h
Thời gian bắt đầu làm việc đến khi kết thúc có sẵn trong bảng.

Tôi gửi tệp tin đính kèm nhờ các bạn xem giúp phần tính ở dấu hỏi bôi vàng.
Xin cảm ơn trước.
-------
Xin cho hỏi cách đính kèm tệp tin? Tôi có tải lên rồi nhưng không thấy hiện.
 
Lần chỉnh sửa cuối:
Tôi xin gửi lại tệp tin đính kèm.
 

File đính kèm

  • locca.rar
    25.8 KB · Đọc: 93
Tôi xin gửi lại tệp tin đính kèm.

Do không biết cách quy đổi từ giờ ra ca trong trường hợp số giờ không phải là bội số của 6 của bạn như thế nào nên tôi giúp bạn công thức tính ra số giờ. Phần quy đối số giờ ra số ca (nếu muốn) tôi nghĩ bạn làm được. Nếu không làm được thì bạn hãy nên rõ các làm tròn tôi sẽ sửa công thức giúp.

PHP:
P7=(ROUNDDOWN(D7,0)-ROUNDDOWN(C7,0))*12+MAX(MIN(MOD(D7,1)*24,18),6)-MAX(MIN(MOD(C7,1)*24,18),6) 
Q7=(ROUNDDOWN(D7,0)-ROUNDDOWN(C7,0))*6+MAX(MOD(D7,1)*24,18)-MAX(MOD(C7,1)*24,18)
R7=(ROUNDDOWN(D7,0)-ROUNDDOWN(C7,0))*6+MIN(MOD(D7,1)*24,6)-MIN(MOD(C7,1)*24,6)
 
Cảm ơn bạn. Cách tính như sau:
Trong một ca 0-6; 6-12; 12-18; 18-24 cứ làm ít hơn hoặc bằng 6 tiếng đồng hồ thì tính tròn là 1 ca tương ứng.
Thời gian bắt đầu hoặc kết thúc làm việc nằm trong khoảng thời gian ca ngày (từ 6-18h) hoặc ca tối (từ 18-14h) hoặc ca đêm (từ 0-6h) thì ta tính đó là ca ngày, ca tối và ca đêm tương ứng.
Rất mong sự giúp đỡ của bạn. Từ trước đến giờ khối lượng công việc ít toàn tính nhẩm, nay khối lượng nhiều nên ải quá.
 
Cảm ơn bạn. Cách tính như sau:
Trong một ca 0-6; 6-12; 12-18; 18-24 cứ làm ít hơn hoặc bằng 6 tiếng đồng hồ thì tính tròn là 1 ca tương ứng.
Thời gian bắt đầu hoặc kết thúc làm việc nằm trong khoảng thời gian ca ngày (từ 6-18h) hoặc ca tối (từ 18-14h) hoặc ca đêm (từ 0-6h) thì ta tính đó là ca ngày, ca tối và ca đêm tương ứng.
Rất mong sự giúp đỡ của bạn. Từ trước đến giờ khối lượng công việc ít toàn tính nhẩm, nay khối lượng nhiều nên ải quá.
Công thức tính ra số giờ thì có rồi. Việc quy đổi ra số ca về nguyên tắt rất đơn giản nhưng giải thích của bạn chưa rõ ràng nên tôi chưa thể làm được.

Tôi ví dụ một số trường hợp mà tôi chưa biết bạn tính như thế nào
1. Thời gian làm việc từ 5:00:00 đến 7:00:00 thì tính là 1 ca hay 2 ca. Nếu tính là 1 ca thì tính là ca ngày hay ca đêm.
2. Thời gian làm việc từ 5:00:00 đến 1:00:00 sáng hôm sau thì số ca của mỗi loại là bao nhiêu.
Bạn hãy nêu rõ cách quy đổi.
 
Ví dụ:
Thời gian bắt đầu 5h - kết thúc lúc 6h thì là 1 ca đêm.
Thời gian bắt đầu 5h - kết thúc lúc 7h thì chi làm 2 ca: Ca đêm + Ca ngày.
Thời gian bắt đầu 5h - kết thúc lúc 14h thì chia làm 3 ca: Ca đêm + Ca ngày + Ca ngày.
Thời gian bắt đầu 5h - kết thúc 24h thì chia làm 4 ca: Ca đêm + Ca ngày + Ca ngày + Ca tối.
Thời gian bắt đầu 5h - Kết thúc 1h sáng ngày hôm sau thì tính 5 ca: Ca đêm + Ca ngày + Ca ngày + Ca tối + Ca đêm.
Cứ thế quay vòng.
 
Ví dụ:
Thời gian bắt đầu 5h - kết thúc lúc 6h thì là 1 ca đêm.
Thời gian bắt đầu 5h - kết thúc lúc 7h thì chi làm 2 ca: Ca đêm + Ca ngày.
Thời gian bắt đầu 5h - kết thúc lúc 14h thì chia làm 3 ca: Ca đêm + Ca ngày + Ca ngày.
Thời gian bắt đầu 5h - kết thúc 24h thì chia làm 4 ca: Ca đêm + Ca ngày + Ca ngày + Ca tối.
Thời gian bắt đầu 5h - Kết thúc 1h sáng ngày hôm sau thì tính 5 ca: Ca đêm + Ca ngày + Ca ngày + Ca tối + Ca đêm.
Cứ thế quay vòng.
Còn 1 trường hợp nữa: từ 11h đến 13h thì 1 ca ngày hay 2 ca ngày?
 
Từ 11h - 13h thì gồm hai ca ngày đó bạn.
 
Bạn thử các công thức này thử xem
PHP:
P7=(INT(D7)-INT(C7))*2+(MOD(D7,1)*24>6)+(MOD(D7,1)*24>12)-(MOD(C7,1)*24>=12)-(MOD(C7,1)*24>=18)
Q7=INT(D7)-INT(C7)+(MOD(D7,1)*24>18)
R7=INT(D7)-INT(C7)+(MOD(C7,1)*24<6)-(MOD(D7,1)=0)
 
Chào các bạn.
Chỗ tôi có một đội lái xe đường dài, thời gian làm việc thường kéo dài vài ba ngày liên tục.
Vậy tôi muốn tính ra số lượng cụ thể số ca ngày, ca tối và ca đêm trong suốt thời gian chạy của từng xe để tính phụ cấp cho tài xế có được không?

Các dữ liệu có trước
1 ngày gồm 4 ca: 0-6h; 6-12h; 12h-18h; 18h-24h
Trong đó
Ca ngày gồm: 6h-12h; 12h-18h
Ca tối: 18h-24h
Ca đêm: 0h-6h
Thời gian bắt đầu làm việc đến khi kết thúc có sẵn trong bảng.

Tôi gửi tệp tin đính kèm nhờ các bạn xem giúp phần tính ở dấu hỏi bôi vàng.
Xin cảm ơn trước.
-------
Xin cho hỏi cách đính kèm tệp tin? Tôi có tải lên rồi nhưng không thấy hiện.

Bạn xem thử file này
Mã:
P7=IF(COLUMNS($P:Q)<>SUM(--(TEXT($C49,"hh")-{0,6,12,18}>=0)),(1+INT(($M49-COLUMNS($P:Q)+SUM(--(TEXT($C49,"hh")-{0,6,12,18}>=0))-IF(COLUMNS($P:Q)<SUM(--(TEXT($C49,"hh")-{0,6,12,18}>=0)),5,1))/4)),(1+INT(($M49-1)/4)))
Kéo qua S7, kéo xuống
 

File đính kèm

  • locca.rar
    34.9 KB · Đọc: 78
Lần chỉnh sửa cuối:
Con toán tổng quát tính giờ là: giờ cuối - giờ đầu + số giờ giữa 2 ngày; nếu cùng 1 ngày thì số giờ giữa 2 ngày là 0.

Bài toán của bạn chia ca rất chẵn chòi, 1 ngày có đúng 4 ca, cho nên có thể áp dụng công thức trên.

Số ca: = (giờ cuối > giờ đầu ca) - (giờ đầu >= giờ cuối ca) + (ngày cuối - ngày đầu)

Số ca 0-6h: =(HOUR($D7)>0)-(HOUR($C7)>=6)+DATEDIF($C7,$D7,"d")
Số ca 6-12h: =(HOUR($D7)>6)-(HOUR($C7)>=12)+DATEDIF($C7,$D7,"d")

Tương tự như vậy cho các ca còn lại
 
Vậy muốn tính gộp hai ca ngày với nhau (6-18h) thì công thức tính thế nào vậy? Công thức của bạn rất ngắn gọn.

=(HOUR($D7)>6)-(HOUR($C7)>=18)+DATEDIF($C7,$D7,"d")

Nếu sửa như trên sao không ra?
 
Lần chỉnh sửa cuối:
Đếm chứ có phải đo đâu mà cộng đầu đuôi như kiểu cộng vec tơ.
Muốn đếm 2 giỏ trứng thì cộng số đếm của 2 giỏ.
muốn đếm ca của khoảng thời gian bao 2 ca thì lấy số đếm của 2 ca cộng lại.
 
Cộng thì đương nhiên là ra rồi, nhưng bạn cho hỏi muốn tính số ca ngày từ 6h - 18h không hay bắt buộc phải tách thành 2 rồi cộng lại?
 
Toán thì dựa trên lô gic. Nếu có lô gic để gộp từ 6-18 thì cứ dựa vào lô gic ấy mà viết công thức. Bạn tìm ra cái lô gíc đưa lên đây sẽ có người giúp chuyển thành công thức.

Riêng bản thân thì tôi chả thấy cái lô gic gì để có thể nói đem gộp 6-12 và 12-18 ra thành 6-18 cả.
 
Lần chỉnh sửa cuối:
Cảm ơn các bạn đã giúp tôi tạm thời giải quyết được vấn đề, trong quá tình tính toán nếu còn vấn đề nào chưa hợp lý thì sẽ hỏi các bạn tiếp.
Trước mắt tôi tạm cộng ca 6-12 với ca 12-18 để thành tổng của ca ngày.
 
Vậy muốn tính gộp hai ca ngày với nhau (6-18h) thì công thức tính thế nào vậy? Công thức của bạn rất ngắn gọn.

=(HOUR($D7)>6)-(HOUR($C7)>=18)+DATEDIF($C7,$D7,"d")

Nếu sửa như trên sao không ra?
Bạn đã thử công thức ở bài #9 chưa? Nếu thử rồi thì kết quả như thế nào? Bạn là người hỏi thì sau khi thử bạn phải phản hồi lại là công thức nào dùng được, công thức nào không dùng được để người sau có vấn đề tương tự vào xem thì biết đường mà áp dụng. Chứ bạn cứ thấy cái nào đúng rồi tự mình đem xài mà không nói gì hết thì mọi người cũng chả biết cái nào đúng, cài nào chưa đúng.

Mà bạn tự mình chọn để sử dụng có khi lại chọn cái không đúng mà bạn không biết.


Thuật toán trong công thức công thức của VietMini hoàn toàn giống với thuật toán trong công thức ở bài #9 của tôi chỉ có điều sử dụng hàm khác mà thôi. Mà cái hàm khác này lại là cái không chuẩn.
 
Cảm ơn bạn huuthang_bd đã góp ý.
Tôi xin đưa kết quả của các bạn đã giúp tôi tính lên đây để mọi người được rõ (xem hình).
Kết luận (tính từ trái sang phải của hình):
- Cả ba cách tính ra cùng một kết quả.
- Cách tính thứ 1 chuẩn theo yêu cầu, ngắn ngọn.
- Cách tính thứ 2 đúng, dài dòng, khó. Phải làm phép tính trung gian, cộng hai ca 6-12 và 12-18 mới ra ca ngày.
- Cách thứ 3 tương tự cách 2 nhưng ngắn gọn hơn.
--> Tôi Chọn cách tính 1.
Một lần nữa xin cảm ơn sự trợ giúp của các bạn trên đây.
 

File đính kèm

  • tachca.jpg
    tachca.jpg
    20.6 KB · Đọc: 65
Cảm ơn bạn huuthang_bd đã góp ý.
Tôi xin đưa kết quả của các bạn đã giúp tôi tính lên đây để mọi người được rõ (xem hình).
Kết luận (tính từ trái sang phải của hình):
- Cả ba cách tính ra cùng một kết quả.
- Cách tính thứ 1 chuẩn theo yêu cầu, ngắn ngọn.
- Cách tính thứ 2 đúng, dài dòng, khó. Phải làm phép tính trung gian, cộng hai ca 6-12 và 12-18 mới ra ca ngày.
- Cách thứ 3 tương tự cách 2 nhưng ngắn gọn hơn.
--> Tôi Chọn cách tính 1.
Một lần nữa xin cảm ơn sự trợ giúp của các bạn trên đây.
Bạn thử và thấy kết quả đúng cũng chưa chắc là công thức đúng vì bạn không thể nào thử với tất cả các trường hợp của dữ liệu được.

Bạn hãy thử các công thức với các trường hợp dữ liệu sau sẽ thấy các kết quả không phải lúc nào cũng giống nhau.
TH1: 09:00 - 13:00
TH2: 06:00 - 12:30
TH3: 09:00 - 12:30
 
Tôi cũng biết điều này, chính vì vậy tôi mới nói tạm đúng đến thời điểm hiện tại. Trong quá trình làm thực tế mới phát sinh các tình huống chưa lường trước, khi đó mới lại điều chỉnh tiếp. Sau này nếu gặp nỗi chắc phải nhờ tới bạn nữa.

Chỗ tôi có phần mềm thuê viết, chạy sau hai năm mới phát sinh ra lỗi vì lúc đó mới thử hết dữ liệu.

Nhân tiện đây tôi cũng đưa ra luôn thêm hai trường hợp nữa để trao đổi cho toàn vẹn chủ đề về ca làm việc trong ngày đó là:
- Một ngày chia làm 3 ca: 6-14h; 14h-22h; 22h-6h (thường áp dụng trong ca làm việc ở siêu thị, coi xe nhà hàng...)
- Một ngày chia làm 2 ca: 6-18h; 18-6h (thường áp dụng trong sản xuất với việc làm không căng thẳng nặng nhọc như trực ban, bảo vệ các bãi xe...)
 
Web KT
Back
Top Bottom