Công Thức Tính Số Giờ Làm Ca đêm | Giải Pháp Excel

Giải Pháp Excel
  • Trang chủ Có gì mới Hoạt động gần nhất Tác giả
  • Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
  • Video New Video về Excel Video về tin học khác Tin tức về tin học chung
  • Thông tin mới Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
  • Tài nguyên Đánh giá mới nhất Tìm tài nguyên
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

Tìm kiếm

Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Bởi: Tìm kiếm Tìm nâng cao…
  • Hoạt động gần nhất
  • Đăng ký
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
  • Trang chủ
  • Thành viên giúp nhau
  • Thành viên giúp nhau
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Công thức tính số giờ làm ca đêm
  • Thread starter th_dungdn
  • Ngày gửi 2/10/19
Liên hệ QC T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1 Dear anh/chị, Công ty em mới thành lập nên ca kíp chưa rõ ràng. Hiện tại công ty em đang dùng máy chấm công và có hơn 100 nhân viên. Em đang nghiên cứu cách để tính số giờ làm ca đêm cho người lao động mà tính mãi vẫn chưa được. Theo quy định: cứ làm từ 22:00 đến 06:00 thì được tính là ca đêm. Trong file em đính kèm có một số trường hợp đặc biệt, giờ vào và giờ ra đều không rơi vào khung giờ từ 22:00 đến 06:00 nhưng thực tế vẫn có ca đêm, ví dụ 21:45-06:45 (Trường hợp này giờ làm việc là 9h, trong đó giờ làm ca đêm là 8h). Cấu trúc bảng của em như hình dưới. Anh/chị giúp em về công thức tính số giờ làm ca đêm với ạ. Em không biết VBA nên em làm toàn công thức thôi ạ. Em cảm ơn anh/chị rất nhiều ạ.
NgàyThứGiờ vàoGiờ raTổng số giờ LV Tổng số giờ làm ca đêm (Tính tay) Tổng số giờ làm ca đêm (công thức)
1CN05:3014:309​0,5​
2Hai05:3022:3017​1​
3Ba14:3022:308​0,5​
423:0023:300,5​0,5​
5Năm13:0005:0016​7​
6CN
7Hai4:0023:0019​3​
8Ba4:0005:301,5​1,5​
94:0023:0019​3​
10Năm23:0000:001​1​
11CN
12Hai20:0000:004​2​
13Ba23:0001:302,5​2,5​
1423:0010:0011​7​
15Năm00:0010:0010​6​

File đính kèm

  • Hoi cach tinh gio lam ca dem.xlsx 11.7 KB · Đọc: 185
T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1 Có tiền bối nào giúp em với ạ. Huhuhuuuu. H

HieuCD

Chuyên gia GPE
Tham gia 14/9/10 Bài viết 9,789 Được thích 23,224
th_dungdn đã viết: Dear anh/chị, Công ty em mới thành lập nên ca kíp chưa rõ ràng. Hiện tại công ty em đang dùng máy chấm công và có hơn 100 nhân viên. Em đang nghiên cứu cách để tính số giờ làm ca đêm cho người lao động mà tính mãi vẫn chưa được. Theo quy định: cứ làm từ 22:00 đến 06:00 thì được tính là ca đêm. Trong file em đính kèm có một số trường hợp đặc biệt, giờ vào và giờ ra đều không rơi vào khung giờ từ 22:00 đến 06:00 nhưng thực tế vẫn có ca đêm, ví dụ 21:45-06:45 (Trường hợp này giờ làm việc là 9h, trong đó giờ làm ca đêm là 8h). Cấu trúc bảng của em như hình dưới. Anh/chị giúp em về công thức tính số giờ làm ca đêm với ạ. Em không biết VBA nên em làm toàn công thức thôi ạ. Em cảm ơn anh/chị rất nhiều ạ.
NgàyThứGiờ vàoGiờ raTổng số giờ LVTổng số giờ làm ca đêm (Tính tay)Tổng số giờ làm ca đêm (công thức)
1CN05:3014:309​0,5​
2Hai05:3022:3017​1​
3Ba14:3022:308​0,5​
423:0023:300,5​0,5​
5Năm13:0005:0016​7​
6CN
7Hai4:0023:0019​3​
8Ba4:0005:301,5​1,5​
94:0023:0019​3​
10Năm23:0000:001​1​
11CN
12Hai20:0000:004​2​
13Ba23:0001:302,5​2,5​
1423:0010:0011​7​
15Năm00:0010:0010​6​
Nhấp chuột vào đây để mở rộng...
G2 =MEDIAN(D2*24,6,0)+IF(D2>=C2,MEDIAN(D2*24,22,24)-MEDIAN(C2*24,6,0),24)-MEDIAN(C2*24,22,24) copy xuống T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
HieuCD đã viết: G2 =MEDIAN(D2*24,6,0)+IF(D2>=C2,MEDIAN(D2*24,22,24)-MEDIAN(C2*24,6,0),24)-MEDIAN(C2*24,22,24) copy xuống Nhấp chuột vào đây để mở rộng...
Dạ em cảm ơn anh nhiều ạ. Em chưa hiểu lắm cách anh suy luận để xây dựng hàm như vậy, anh hướng dẫn em với ạ. Bên cạnh đó, có 3 trường hợp số giờ tính theo công thức anh hướng dẫn bị lệch so với số em tính tay ạ. Anh giúp em chỉnh lại công thức với ạ. Em cảm ơn anh nhiều ạ.
NgàyThứGiờ vàoGiờ raTổng số giờ LV Tổng số giờ làm ca đêm (Tính tay) Tổng số giờ làm ca đêm (công thức)
7Hai4:0023:0019​3​8​
8Ba4:0005:301,5​1,5​7,5​
94:0023:0019​3​8​
B

batman1

Thành viên gạo cội
Tham gia 8/9/14 Bài viết 5,774 Được thích 9,765
th_dungdn đã viết: Bên cạnh đó, có 3 trường hợp số giờ tính theo công thức anh hướng dẫn bị lệch so với số em tính tay ạ.
Nhấp chuột vào đây để mở rộng...
Muốn kết quả đúng thì dữ liệu phải là thời gian (Time). Tức vd. 14:30 chứ không thể là text '14:30 như hiện tại. G2 - cột G định dạng là Time vd. 23:30 Mã:Sao chép. =MOD(D2-C2;1)-MEDIAN("06:00:00";"22:00:00";D2)+MEDIAN("06:00:00";"22:00:00";C2) -(C2>D2)*16/24 hoặc G2 - cột G định dạng là số. Mã:Sao chép. =MOD(D2-C2;1)*24-MEDIAN(6;22;D2*24)+MEDIAN(6;22;C2*24) -(C2>D2)*16 T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
batman1 đã viết: Muốn kết quả đúng thì dữ liệu phải là thời gian (Time). Tức vd. 14:30 chứ không thể là text '14:30 như hiện tại. G2 - cột G định dạng là Time vd. 23:30 Mã:Sao chép. =MOD(D2-C2;1)-MEDIAN("06:00:00";"22:00:00";D2)+MEDIAN("06:00:00";"22:00:00";C2) -(C2>D2)*16/24 hoặc G2 - cột G định dạng là số. Mã:Sao chép. =MOD(D2-C2;1)*24-MEDIAN(6;22;D2*24)+MEDIAN(6;22;C2*24) -(C2>D2)*16 Nhấp chuột vào đây để mở rộng...
Dạ em lấy công thức của anh x 24 thì ra đúng kết quả em tính tay ạ. Sau khi em chỉnh toàn bộ sang định dạng giờ thì công thức của anh HieuCD cũng chính xác 100%. Em vẫn chưa hiểu là tại sao các dòng trên, vẫn với định dạng text nhưng kết quả vẫn đúng, nhưng riêng 3 dòng ngày 7, 8, 9 lại sai ạ? Tuy nhiên, nếu giờ ra =0:00 thì công thức của anh HieuCD tính ra kết quả là 2 giờ cho tất cả các trường hợp. (Ví dụ giờ vào: 2:00 sáng; giờ ra là 12h đêm tức 00:00, thì thay vì tính ra kết quả là 6 thì công thức trên tính ra kết quả là 2 giờ ạ). Hơn nữa, em không hiểu ý nghĩa của công thức là như thế nào ạ. Sao anh và anh HieuCD có thể suy luận để ra được công thức ngắn gọn mà chính xác như vậy? Thật là ngưỡng mộ. Hai anh có thể bỏ chút thời gian để giảng cho em được không anh ơi. Em cảm ơn hai anh rất nhiều nhiều ạ. Lần chỉnh sửa cuối: 4/10/19 P

ppc0312

whom?
Tham gia 2/4/08 Bài viết 623 Được thích 318
th_dungdn đã viết: Dạ em lấy công thức của anh x 24 thì ra đúng kết quả em tính tay ạ. Sau khi em chỉnh toàn bộ sang định dạng giờ thì công thức của anh HieuCD cũng chính xác 100%. Có điều em vẫn chưa hiểu là tại sao các dòng trên, vẫn với định dạng text nhưng kết quả vẫn đúng, nhưng riêng 3 dòng ngày 7, 8, 9 lại sai ạ? Hơn nữa, em không hiểu ý nghĩa của công thức là như thế nào ạ. Sao anh và anh HieuCD có thể suy luận để ra được công thức ngắn gọn mà chính xác như vậy? Thật là ngưỡng mộ. Hai anh có thể bỏ chút thời gian để giảng cho em được không anh ơi. Em cảm ơn hai anh rất nhiều nhiều ạ. Nhấp chuột vào đây để mở rộng...
Ra được công thức là vì họ luyện nhiêu và có hướng nghĩ sâu , bạn cứ tự học, đọc và làm nhiều vấn đề liên quan đến excel công thức ...vv thì sẽ ắt sẽ nhanh làm được tương tự thôi. Còn nhanh hơn nữa là không làm được thì nhờ thì thuê T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
ppc0312 đã viết: Ra được công thức là vì họ luyện nhiêu và có hướng nghĩ sâu , bạn cứ tự học, đọc và làm nhiều vấn đề liên quan đến excel công thức ...vv thì sẽ ắt sẽ nhanh làm được tương tự thôi. Còn nhanh hơn nữa là không làm được thì nhờ thì thuê Nhấp chuột vào đây để mở rộng...
Dạ em suy nghĩ mãi mà cũng không ra vì sao mình lại có được hướng suy luận để ra được công thức như vậy ấy ạ. :) B

batman1

Thành viên gạo cội
Tham gia 8/9/14 Bài viết 5,774 Được thích 9,765
th_dungdn đã viết: Dạ em suy nghĩ mãi mà cũng không ra vì sao mình lại có được hướng suy luận để ra được công thức như vậy ấy ạ. :) Nhấp chuột vào đây để mở rộng...
Khi suy nghĩ về một bài toán thì có rất nhiều ý nghĩ thoáng hiện thoáng mất liên tục trong đầu. Có rất nhiều chi tiết xuất hiện. Tùy vào kinh nghiệm, khả năng tư duy (cái máy mới mua về mà không sử dụng, nằm hộp vài năm ắt sẽ gỉ. Bộ óc cũng vậy) mà ta dễ dàng nắm bắt được những ý rất "hứa hẹn" cần phải xem xét kỹ. Nhiều kinh nghiệm và tư duy sắc bén sẽ giúp tìm ra ý tưởng ở dạng chung chung. Sau đó cần xem xét kỹ, cụ thể hóa các chi tiết. Sau cùng là kiểm nghiệm và chứng minh hoặc bác bỏ. Khi xét bài toán mà tôi phát biểu dưới đây thì luôn có câu hỏi: khi c (d) nằm trong / ngoài đoạn ̣(a; b) thì ...? Và cũng từ đó có "ánh chớp" MEDIAN lóe lên trong đầu. Tư duy là một quá trình phức tạp. Vì thế tôi không thể nói chính xác đến từng dấu phẩy là tôi đã tư duy như thế nào. Có hàng nghìn ý nghĩ xuất hiện và biến mất. Ai mà nhớ được. Nhưng bạn hoàn toàn có thể xét từng trường hợp (vẽ lên giấy thôi). Số trường hợp hữu hạn và không nhiều. Ta xét bài toán. Cho 2 đoạn (a; b) và (c; d) trên cùng một trục. Trục này có thể là trục thời gian, quãng đường. Nhưng nói cho cùng thì đều là trục số vì a, b, c và d là những con số. Câu hỏi đặt ra là đoạn chung của 2 đoạn cho trươc có độ dài bằng bao nhiêu. Ta giả thiết là a <= b và c <= d vì luôn xác định (được cho trước a, b, c và d). Gọi điểm đầu của đoạn chung là x1 và điểm cuối của đoạn chung là x2. Gọi độ lớn đoạn chung là s ta có s = x2-x1. Ta xét các trường hợp: A. c <= a - d <= a -> đoạn chung có độ lớn = 0. Độ lớn đoạn chung là a - a. Ta viết dưới dạng a - a chứ không phải các dạng khác, vd. s = b - b, vì ở 2 trường hợp tiếp theo ta có dạng (... - a) - a <= d <= b -> x1 = a, x2 = d. Độ lớn đoạn chung là d-a - b <= d -> x1 = a, x2 = b. Độ lớn đoạn chung là b-a Ta thấy rằng trong cả 3 trường hợp nhỏ thì độ dài đoạn chung có dạng e-a, với e = a khi d <= a, e = d khi a <= d <= b, và e = b khi b <= d. Tức tùy thuộc vào vị trí của d so với đoạn (a; b) mà ta có e = a, e = d hay e = b. 3 trường hợp trên chính là 3 trường hợp: - a là điểm giữa trong 3 điểm a, b, d -> e = a - d là điểm giữa trong 3 điểm a, b, d -> e = d - b là điểm giữa trong 3 điểm a, b, d -> e = b. Khái niệm điểm giữa này làm ta liên tưởng tới MEDIAN. - a là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = a - d là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = d - b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. Tức ta luôn có s = MEDIAN(a; b; d)-a B. a <= c <= b - d <= b -> x1 = c, x2 = d. Độ lớn đoạn chung là d-c - b <= d -> x1 = c, x2 = b. Độ lớn đoạn chung là b-c. Tức - d là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = d. s = d-c = MEDIAN(a; b; d) - c - b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. s = b-c = MEDIAN(a; b; d) - c Tức ta luôn có s = MEDIAN(a; b; d) - c C. b <= c. Trong trường hợp này s = 0. Rõ ràng b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. Vậy s = 0 = b - b = MEDIAN(a; b; d)-b Tổng kết: A. c <= a <=> a là điểm giữa trong 3 điểm a; b; c <=> MEDIAN(a; b; c) = a. Ta có s = MEDIAN(a; b; d)-a = MEDIAN(a; b; d) - MEDIAN(a; b; c) B. a <= c <= b <=> c là điểm giữa trong 3 điểm a; b; c <=> MEDIAN(a; b; c) = c Ta có s = MEDIAN(a; b; d) - c = MEDIAN(a; b; d) - MEDIAN(a; b; c) C. b <= c <=> b là điểm giữa trong 3 điểm a, b, c <=> MEDIAN(a; b; c) = b Ta có s = MEDIAN(a; b; d)-b = MEDIAN(a; b; d) - MEDIAN(a; b; c) Vậy ta luôn có s = MEDIAN(a; b; d) - MEDIAN(a; b; c) Do vai trò của 2 đoạn (a; b) và (c; d) như nhau nên công thức sau cũng đúng - đổi vai trò của (a; b) và (c; d) với nhau: s = MEDIAN(c; d; b) - MEDIAN(c; d; a) ------------ Công thức luôn đúng với a, b, c và d là các điểm chính xác tuần tự trên trục số. Khi làm bài trong Excel thì ta lại cho a, b, c hoặc d những giá trị không đúng với tuần tự trên trục số. Vì thế đôi lúc phải chỉnh sửa công thức. Tôi cho ví dụ. 1. Các thời điểm a, b, c, d đều trong cùng ngày. Trong trường hợp này các điểm a, b, c và d đều nằm đúng vị trí tương quan lẫn nhau trên trục số và cứ dùng công thức trên mà xử lý. Vd. cho trường hợp này là các ca 6-14 và 14-22 và không có tăng ca "lẹm" sang ngày khác. 2. Thời điểm c và d khác ngày với ca 22-6. Thậm chí các điểm a, b, c hoặc d không cùng ngày với cả 6-14 và 14-22 nhưng có tăng ca. Tại sao trong trường hợp này không dùng được công thức y hệt như trên mà phải biến tấu, chỉnh sửa? Lý do là các điểm a, b, c và d không được cho với trình tự như cần phải có trên trục số. Nếu ca 3 được cho dưới dạng 22-30 và cả ngày làm thực vd. là 21-32 thì cứ công thức ở trên mà xử lý vì các điểm 22, 30 và 21, 32 đều đúng với vị trí cần có trên trục số. Nhưng trong Excel ta lại nhập thành 22-6 và 21-8 nên điểm b và điểm d không nằm đúng vị trí cần có trên trục số. Vì thế không thể dùng công thức y hệt ở trên. Cần phải chỉnh sửa và biến tấu đi. P

ppc0312

whom?
Tham gia 2/4/08 Bài viết 623 Được thích 318
batman1 đã viết: Khi suy nghĩ về một bài toán thì có rất nhiều ý nghĩ thoáng hiện thoáng mất liên tục trong đầu. Có rất nhiều chi tiết xuất hiện. Tùy vào kinh nghiệm, khả năng tư duy (cái máy mới mua về mà không sử dụng, nằm hộp vài năm ắt sẽ gỉ. Bộ óc cũng vậy) mà ta dễ dàng nắm bắt được những ý rất "hứa hẹn" cần phải xem xét kỹ. Nhiều kinh nghiệm và tư duy sắc bén sẽ giúp tìm ra ý tưởng ở dạng chung chung. Sau đó cần xem xét kỹ, cụ thể hóa các chi tiết. Sau cùng là kiểm nghiệm và chứng minh hoặc bác bỏ. Khi xét bài toán mà tôi phát biểu dưới đây thì luôn có câu hỏi: khi c (d) nằm trong / ngoài đoạn ̣(a; b) thì ...? Và cũng từ đó có "ánh chớp" MEDIAN lóe lên trong đầu. Tư duy là một quá trình phức tạp. Vì thế tôi không thể nói chính xác đến từng dấu phẩy là tôi đã tư duy như thế nào. Có hàng nghìn ý nghĩ xuất hiện và biến mất. Ai mà nhớ được. Nhưng bạn hoàn toàn có thể xét từng trường hợp (vẽ lên giấy thôi). Số trường hợp hữu hạn và không nhiều. Ta xét bài toán. Cho 2 đoạn (a; b) và (c; d) trên cùng một trục. Trục này có thể là trục thời gian, quãng đường. Nhưng nói cho cùng thì đều là trục số vì a, b, c và d là những con số. Câu hỏi đặt ra là đoạn chung của 2 đoạn cho trươc có độ dài bằng bao nhiêu. Ta giả thiết là a <= b và c <= d vì luôn xác định (được cho trước a, b, c và d). Gọi điểm đầu của đoạn chung là x1 và điểm cuối của đoạn chung là x2. Gọi độ lớn đoạn chung là s ta có s = x2-x1. Ta xét các trường hợp: A. c <= a - d <= a -> đoạn chung có độ lớn = 0. Độ lớn đoạn chung là a - a. Ta viết dưới dạng a - a chứ không phải các dạng khác, vd. s = b - b, vì ở 2 trường hợp tiếp theo ta có dạng (... - a) - a <= d <= b -> x1 = a, x2 = d. Độ lớn đoạn chung là d-a - b <= d -> x1 = a, x2 = b. Độ lớn đoạn chung là b-a Ta thấy rằng trong cả 3 trường hợp nhỏ thì độ dài đoạn chung có dạng e-a, với e = a khi d <= a, e = d khi a <= d <= b, và e = b khi b <= d. Tức tùy thuộc vào vị trí của d so với đoạn (a; b) mà ta có e = a, e = d hay e = b. 3 trường hợp trên chính là 3 trường hợp: - a là điểm giữa trong 3 điểm a, b, d -> e = a - d là điểm giữa trong 3 điểm a, b, d -> e = d - b là điểm giữa trong 3 điểm a, b, d -> e = b. Khái niệm điểm giữa này làm ta liên tưởng tới MEDIAN. - a là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = a - d là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = d - b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. Tức ta luôn có s = MEDIAN(a; b; d)-a B. a <= c <= b - d <= b -> x1 = c, x2 = d. Độ lớn đoạn chung là d-c - b <= d -> x1 = c, x2 = b. Độ lớn đoạn chung là b-c. Tức - d là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = d. s = d-c = MEDIAN(a; b; d) - c - b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. s = b-c = MEDIAN(a; b; d) - c Tức ta luôn có s = MEDIAN(a; b; d) - c C. b <= c. Trong trường hợp này s = 0. Rõ ràng b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. Vậy s = 0 = b - b = MEDIAN(a; b; d)-b Tổng kết: A. c <= a <=> a là điểm giữa trong 3 điểm a; b; c <=> MEDIAN(a; b; c) = a. Ta có s = MEDIAN(a; b; d)-a = MEDIAN(a; b; d) - MEDIAN(a; b; c) B. a <= c <= b <=> c là điểm giữa trong 3 điểm a; b; c <=> MEDIAN(a; b; c) = c Ta có s = MEDIAN(a; b; d) - c = MEDIAN(a; b; d) - MEDIAN(a; b; c) C. b <= c <=> b là điểm giữa trong 3 điểm a, b, c <=> MEDIAN(a; b; c) = b Ta có s = MEDIAN(a; b; d)-b = MEDIAN(a; b; d) - MEDIAN(a; b; c) Vậy ta luôn có s = MEDIAN(a; b; d) - MEDIAN(a; b; c) Do vai trò của 2 đoạn (a; b) và (c; d) như nhau nên công thức sau cũng đúng - đổi vai trò của (a; b) và (c; d) với nhau: s = MEDIAN(c; d; b) - MEDIAN(c; d; a) ------------ Công thức luôn đúng với a, b, c và d là các điểm chính xác tuần tự trên trục số. Khi làm bài trong Excel thì ta lại cho a, b, c hoặc d những giá trị không đúng với tuần tự trên trục số. Vì thế đôi lúc phải chỉnh sửa công thức. Tôi cho ví dụ. 1. Các thời điểm a, b, c, d đều trong cùng ngày. Trong trường hợp này các điểm a, b, c và d đều nằm đúng vị trí tương quan lẫn nhau trên trục số và cứ dùng công thức trên mà xử lý. Vd. cho trường hợp này là các ca 6-14 và 14-22 và không có tăng ca "lẹm" sang ngày khác. 2. Thời điểm c và d khác ngày với ca 22-6. Thậm chí các điểm a, b, c hoặc d không cùng ngày với cả 6-14 và 14-22 nhưng có tăng ca. Tại sao trong trường hợp này không dùng được công thức y hệt như trên mà phải biến tấu, chỉnh sửa? Lý do là các điểm a, b, c và d không được cho với trình tự như cần phải có trên trục số. Nếu ca 3 được cho dưới dạng 22-30 và cả ngày làm thực vd. là 21-32 thì cứ công thức ở trên mà xử lý vì các điểm 22, 30 và 21, 32 đều đúng với vị trí cần có trên trục số. Nhưng trong Excel ta lại nhập thành 22-6 và 21-8 nên điểm b và điểm d không nằm đúng vị trí cần có trên trục số. Vì thế không thể dùng công thức y hệt ở trên. Cần phải chỉnh sửa và biến tấu đi. Nhấp chuột vào đây để mở rộng...
Đọc xong thì càng khó Suy nghĩ mỗi người mỗi cách, học theo cách người khác cũng khó đạt T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
batman1 đã viết: Khi suy nghĩ về một bài toán thì có rất nhiều ý nghĩ thoáng hiện thoáng mất liên tục trong đầu. Có rất nhiều chi tiết xuất hiện. Tùy vào kinh nghiệm, khả năng tư duy (cái máy mới mua về mà không sử dụng, nằm hộp vài năm ắt sẽ gỉ. Bộ óc cũng vậy) mà ta dễ dàng nắm bắt được những ý rất "hứa hẹn" cần phải xem xét kỹ. Nhiều kinh nghiệm và tư duy sắc bén sẽ giúp tìm ra ý tưởng ở dạng chung chung. Sau đó cần xem xét kỹ, cụ thể hóa các chi tiết. Sau cùng là kiểm nghiệm và chứng minh hoặc bác bỏ. Khi xét bài toán mà tôi phát biểu dưới đây thì luôn có câu hỏi: khi c (d) nằm trong / ngoài đoạn ̣(a; b) thì ...? Và cũng từ đó có "ánh chớp" MEDIAN lóe lên trong đầu. Tư duy là một quá trình phức tạp. Vì thế tôi không thể nói chính xác đến từng dấu phẩy là tôi đã tư duy như thế nào. Có hàng nghìn ý nghĩ xuất hiện và biến mất. Ai mà nhớ được. Nhưng bạn hoàn toàn có thể xét từng trường hợp (vẽ lên giấy thôi). Số trường hợp hữu hạn và không nhiều. Ta xét bài toán. Cho 2 đoạn (a; b) và (c; d) trên cùng một trục. Trục này có thể là trục thời gian, quãng đường. Nhưng nói cho cùng thì đều là trục số vì a, b, c và d là những con số. Câu hỏi đặt ra là đoạn chung của 2 đoạn cho trươc có độ dài bằng bao nhiêu. Ta giả thiết là a <= b và c <= d vì luôn xác định (được cho trước a, b, c và d). Gọi điểm đầu của đoạn chung là x1 và điểm cuối của đoạn chung là x2. Gọi độ lớn đoạn chung là s ta có s = x2-x1. Ta xét các trường hợp: A. c <= a - d <= a -> đoạn chung có độ lớn = 0. Độ lớn đoạn chung là a - a. Ta viết dưới dạng a - a chứ không phải các dạng khác, vd. s = b - b, vì ở 2 trường hợp tiếp theo ta có dạng (... - a) - a <= d <= b -> x1 = a, x2 = d. Độ lớn đoạn chung là d-a - b <= d -> x1 = a, x2 = b. Độ lớn đoạn chung là b-a Ta thấy rằng trong cả 3 trường hợp nhỏ thì độ dài đoạn chung có dạng e-a, với e = a khi d <= a, e = d khi a <= d <= b, và e = b khi b <= d. Tức tùy thuộc vào vị trí của d so với đoạn (a; b) mà ta có e = a, e = d hay e = b. 3 trường hợp trên chính là 3 trường hợp: - a là điểm giữa trong 3 điểm a, b, d -> e = a - d là điểm giữa trong 3 điểm a, b, d -> e = d - b là điểm giữa trong 3 điểm a, b, d -> e = b. Khái niệm điểm giữa này làm ta liên tưởng tới MEDIAN. - a là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = a - d là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = d - b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. Tức ta luôn có s = MEDIAN(a; b; d)-a B. a <= c <= b - d <= b -> x1 = c, x2 = d. Độ lớn đoạn chung là d-c - b <= d -> x1 = c, x2 = b. Độ lớn đoạn chung là b-c. Tức - d là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = d. s = d-c = MEDIAN(a; b; d) - c - b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. s = b-c = MEDIAN(a; b; d) - c Tức ta luôn có s = MEDIAN(a; b; d) - c C. b <= c. Trong trường hợp này s = 0. Rõ ràng b là điểm giữa trong 3 điểm a, b, d -> MEDIAN(a; b; d) = b. Vậy s = 0 = b - b = MEDIAN(a; b; d)-b Tổng kết: A. c <= a <=> a là điểm giữa trong 3 điểm a; b; c <=> MEDIAN(a; b; c) = a. Ta có s = MEDIAN(a; b; d)-a = MEDIAN(a; b; d) - MEDIAN(a; b; c) B. a <= c <= b <=> c là điểm giữa trong 3 điểm a; b; c <=> MEDIAN(a; b; c) = c Ta có s = MEDIAN(a; b; d) - c = MEDIAN(a; b; d) - MEDIAN(a; b; c) C. b <= c <=> b là điểm giữa trong 3 điểm a, b, c <=> MEDIAN(a; b; c) = b Ta có s = MEDIAN(a; b; d)-b = MEDIAN(a; b; d) - MEDIAN(a; b; c) Vậy ta luôn có s = MEDIAN(a; b; d) - MEDIAN(a; b; c) Do vai trò của 2 đoạn (a; b) và (c; d) như nhau nên công thức sau cũng đúng - đổi vai trò của (a; b) và (c; d) với nhau: s = MEDIAN(c; d; b) - MEDIAN(c; d; a) ------------ Công thức luôn đúng với a, b, c và d là các điểm chính xác tuần tự trên trục số. Khi làm bài trong Excel thì ta lại cho a, b, c hoặc d những giá trị không đúng với tuần tự trên trục số. Vì thế đôi lúc phải chỉnh sửa công thức. Tôi cho ví dụ. 1. Các thời điểm a, b, c, d đều trong cùng ngày. Trong trường hợp này các điểm a, b, c và d đều nằm đúng vị trí tương quan lẫn nhau trên trục số và cứ dùng công thức trên mà xử lý. Vd. cho trường hợp này là các ca 6-14 và 14-22 và không có tăng ca "lẹm" sang ngày khác. 2. Thời điểm c và d khác ngày với ca 22-6. Thậm chí các điểm a, b, c hoặc d không cùng ngày với cả 6-14 và 14-22 nhưng có tăng ca. Tại sao trong trường hợp này không dùng được công thức y hệt như trên mà phải biến tấu, chỉnh sửa? Lý do là các điểm a, b, c và d không được cho với trình tự như cần phải có trên trục số. Nếu ca 3 được cho dưới dạng 22-30 và cả ngày làm thực vd. là 21-32 thì cứ công thức ở trên mà xử lý vì các điểm 22, 30 và 21, 32 đều đúng với vị trí cần có trên trục số. Nhưng trong Excel ta lại nhập thành 22-6 và 21-8 nên điểm b và điểm d không nằm đúng vị trí cần có trên trục số. Vì thế không thể dùng công thức y hệt ở trên. Cần phải chỉnh sửa và biến tấu đi. Nhấp chuột vào đây để mở rộng...
Da vậy là em hiểu được đoạn đầu rồi ạ. Nhưng đoạn (Giờ vào>Giờ ra)*16 em vẫn chưa hiểu được ý tưởng của anh ạ. Em hiểu 16 là khoảng cách từ 6:00 đến 22:00 nhưng vẫn ko hiểu cách suy luận để lồng vào ạ. Em rất rất cảm ơn anh batman đã tận tình giải thích ạ. B

batman1

Thành viên gạo cội
Tham gia 8/9/14 Bài viết 5,774 Được thích 9,765
th_dungdn đã viết: Da vậy là em hiểu được đoạn đầu rồi ạ. Nhưng đoạn (Giờ vào>Giờ ra)*16 em vẫn chưa hiểu được ý tưởng của anh ạ. Em hiểu 16 là khoảng cách từ 6:00 đến 22:00 nhưng vẫn ko hiểu cách suy luận để lồng vào ạ. Em rất rất cảm ơn anh batman đã tận tình giải thích ạ. Nhấp chuột vào đây để mở rộng...
Một khi bạn chỉ nhập thời gian mà không nhập ngày thì phải có ý ngầm hiểu là nhân viên không làm quá 24 giờ liên tục. Vì ngược lại thì sẽ luôn có tình trạng không xác định. Vẫn biết là ca 3 là 22-6 nhưng nếu giờ vào ra tuần tự là 23, 5 thì giờ làm thực là bao nhiêu? Là 6? Là 30 (từ 23 giờ ngày x tới 5 giờ ngày x+2)? Vì thế nếu chỉ nhập giờ thì phải ngầm hiểu là nhân viên chỉ làm liên tục < 24 giờ. Với "ngầm hiểu" kia thì khi tính cho ca 3 bạn chỉ việc nhập C2, D2 thôi. Cần gì hiểu công thức? Cứ nhập dữ liệu là sẽ có kết quả, làm được việc. Cần gì phải hiểu tại sao 16 tại sao 6, 22, 24? Công thức tính cho ca 3, cứ tính cho ca 3 là dùng nó. Có phải biến tấu gì đâu mà cần phải hiểu? Người ta chỉ cần phải hiểu khi trong tương lai sẽ phải biến tấu công thức. Đằng này công thức là bất di bất dich cho ca 3. Công thức tính cho ca đêm thì như tôi đã viết thì phải chỉnh sửa công thức mà tôi diễn giải. Lý do thì tôi cũng đã viết rõ. Nếu mỗi công thức tôi lại phải giải thích cho bạn hiểu thì chết mất. Thôi thì bạn dùng được thì dùng, không dùng được thì bỏ. T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
batman1 đã viết: Một khi bạn chỉ nhập thời gian mà không nhập ngày thì phải có ý ngầm hiểu là nhân viên không làm quá 24 giờ liên tục. Vì ngược lại thì sẽ luôn có tình trạng không xác định. Vẫn biết là ca 3 là 22-6 nhưng nếu giờ vào ra tuần tự là 23, 5 thì giờ làm thực là bao nhiêu? Là 6? Là 30 (từ 23 giờ ngày x tới 5 giờ ngày x+2)? Vì thế nếu chỉ nhập giờ thì phải ngầm hiểu là nhân viên chỉ làm liên tục < 24 giờ. Với "ngầm hiểu" kia thì khi tính cho ca 3 bạn chỉ việc nhập C2, D2 thôi. Cần gì hiểu công thức? Cứ nhập dữ liệu là sẽ có kết quả, làm được việc. Cần gì phải hiểu tại sao 16 tại sao 6, 22, 24? Công thức tính cho ca 3, cứ tính cho ca 3 là dùng nó. Có phải biến tấu gì đâu mà cần phải hiểu? Người ta chỉ cần phải hiểu khi trong tương lai sẽ phải biến tấu công thức. Đằng này công thức là bất di bất dich cho ca 3. Công thức tính cho ca đêm thì như tôi đã viết thì phải chỉnh sửa công thức mà tôi diễn giải. Lý do thì tôi cũng đã viết rõ. Nếu mỗi công thức tôi lại phải giải thích cho bạn hiểu thì chết mất. Thôi thì bạn dùng được thì dùng, không dùng được thì bỏ. Nhấp chuột vào đây để mở rộng...
Công thức hay vậy phải dùng chứ sao bỏ được bác batman. Chỉ là em muốn học hỏi, rèn luyện cách suy nghĩ để được như bác thôi mà. Em đang thần tượng bác ngời ngời mà bác nói vậy em buồn quá :(( P

ppc0312

whom?
Tham gia 2/4/08 Bài viết 623 Được thích 318
th_dungdn đã viết: Công thức hay vậy phải dùng chứ sao bỏ được bác batman. Chỉ là em muốn học hỏi, rèn luyện cách suy nghĩ để được như bác thôi mà. Em đang thần tượng bác ngời ngời mà bác nói vậy em buồn quá :(( Nhấp chuột vào đây để mở rộng...
Buồn gì, trước khi hỏi thì phải đào sâu suy nghĩ, thắc mắc đâu, muốn hỏi lại thì nên trình bày lại sự hiểu biết của mình về vấn đề (công thức đó) rồi mới nhờ người khác giúp chỗ vướng đó. Đâu phải chỉ trông chờ người ta giải thích a-z , trực sẵn được (trừ khi ta là vua) B

batman1

Thành viên gạo cội
Tham gia 8/9/14 Bài viết 5,774 Được thích 9,765
th_dungdn đã viết: Công thức hay vậy phải dùng chứ sao bỏ được bác batman. Chỉ là em muốn học hỏi, rèn luyện cách suy nghĩ để được như bác thôi mà. Em đang thần tượng bác ngời ngời mà bác nói vậy em buồn quá :(( Nhấp chuột vào đây để mở rộng...
Thôi được. chỉ 1 lần này nữa thôi. Tôi diễn giải công thức cho giờ làm ca đêm. Nhắc lại: 1. công thức cho giờ làm ca ̣a-b với giờ vào giờ ra c-d, thỏa điều kiện a, b, c và d đều cùng ngày là s = MEDIAN(a; b; d) - MEDIAN(a; b; c) 2. Vì a, b, c và d cho dưới dạng thời gian không có ngày (không cho ngày) nên phải hiểu ngầm là khoảng cách giữa thời điểm c và thời điểm d trên trục thời gian phải < 1 (1 ngày = 24 tiếng được Excel lưu bằng giá trị 1). Ngược lại thì kết quả không xác định được. --------------- Ta dẫn giải công thức cho thời gian làm ca đêm. Ta xét 2 trường hợp. 1. Thời điểm bắt đầu làm C2 và thời điểm kết thúc D2 trong cùng ngày. Dễ thấy là nếu trong khoảng từ C2 tới D2 ta tô mầu xanh cho các đoạn rơi vào ca đêm (00:00:00 - 06:00:00 và 22:00:00 - 24:00:00) và tô mầu đỏ cho đoạn rơi vào ca ngày (06:00:00 - 22:00:00) thì tổng các đoạn mầu xanh và mầu đỏ có độ dài = D2-C2. Tức s + s1 = D2-C2 (s1 là khoảng thời gian rơi vào ca ngày 06:00:00 - 22:00:00 được tô mầu đỏ) => s = D2-C2-s1 = D2-C2-(MEDIAN("06:00:00"; "22:00:00"; D2) - MEDIAN("06:00:00"; "22:00:00"; C2)) => s = D2 - C2 - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) ' (A) Do thời điểm C2 và D2 cùng ngày nên D2 > C2, và D2 - C2 = MOD(D2-C2; 1) s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) 2. Thời điểm bắt đầu làm C2 và thời điểm kết thúc D2 ở 2 ngày liên tiếp. Ta chia đoạn (C2; D2) thành 2 đoạn (C2; "24:00:00") và (00:00:00-D2) Ta có s = <ca đêm đoạn 1> + <ca đêm đoạn 2> Ta dùng công thức (A) ở điểm 1 cho từng đoạn. <ca đêm đoạn 1> = "24:00:00" - C2 - MEDIAN("06:00:00"; "22:00:00"; "24:00:00") + MEDIAN("06:00:00"; "22:00:00"; C2) <ca đêm đoạn 1> = 1 - C2 - "22:00:00" + MEDIAN("06:00:00"; "22:00:00"; C2) <ca đêm đoạn 2> = D2 - "00:00:00" - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; "00:00:00") <ca đêm đoạn 2> = D2 - MEDIAN("06:00:00"; "22:00:00"; D2) + "06:00:00" s = <ca đêm đoạn 1> + <ca đêm đoạn 2> s = 1 - C2 - "22:00:00" + MEDIAN("06:00:00"; "22:00:00"; C2) + D2 - MEDIAN("06:00:00"; "22:00:00"; D2) + "06:00:00" s = 1 + D2 - C2 - "16:00:00" - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) ---------- Do có giả thiết ngầm là thời gian làm việc liên tục < 1 ngày nên C2 < D2 nếu thời điểm C2 và D2 cùng ngày, và C2 > D2 nếu thời điểm C2 và D2 ở 2 ngày liên tiếp. Do (C2>D2) trả về 0 (FALSE) cho thời điểm C2 và thời điểm D2 cùng ngày, và trả về 1 (TRUE) cho thời điểm C2 và thời điểm D2 ở 2 ngày khác nhau nên công thức cho trường hợp 1 và 2 có thể viết lại thành: 1. s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 * 2. s = 1 + D2 - C2 - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 Dễ thấy là với C2 > D2 (C2 và D2 ở 2 ngày liên tiếp) thì 1 + D2 - C2 = MOD(D2-C2; 1). Vậy s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 ** Từ * và ** ta thấy là giờ làm ca đêm s luôn là: s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 Công thức trên chính là công thức đầu tiên tôi cho bạn. Kết quả sẽ là như Excel lưu thời gian. Vd. "08:00:00" sẽ được lưu bằng số 0,33...33 (1/3) do 1 ngày = 24 giờ được lưu bằng số 1). Do bạn muốn kết quả bằng số kiểu 8 tiếng thì kết quả là 8 chứ không là 0,33...33 nên để có kết quả theo kiểu của bạn thì phải nhân kết quả ở trên với 24. Kết quả nhân với 24 chính là công thức thứ 2 mà tôi cho bạn. -------------- Lưu ý: công thức của tôi và của bạn HieuCD sẽ cho kết quả khác nhau ở một số trường hợp. Vd. giờ vào là "05:00:00" và giờ ra là "01:00:00" thì công thức của tôi trả về 4 (1 giờ từ "05:00:00" tới "06:00:00" của ngày bắt đầu và 3 giờ từ "22:00:00" tới "01:00:00" của ngày tiếp theo). Còn công thức của bạn HieuCD trả về 3. T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
batman1 đã viết: Thôi được. chỉ 1 lần này nữa thôi. Tôi diễn giải công thức cho giờ làm ca đêm. Nhắc lại: 1. công thức cho giờ làm ca ̣a-b với giờ vào giờ ra c-d, thỏa điều kiện a, b, c và d đều cùng ngày là s = MEDIAN(a; b; d) - MEDIAN(a; b; c) 2. Vì a, b, c và d cho dưới dạng thời gian không có ngày (không cho ngày) nên phải hiểu ngầm là khoảng cách giữa thời điểm c và thời điểm d trên trục thời gian phải < 1 (1 ngày = 24 tiếng được Excel lưu bằng giá trị 1). Ngược lại thì kết quả không xác định được. --------------- Ta dẫn giải công thức cho thời gian làm ca đêm. Ta xét 2 trường hợp. 1. Thời điểm bắt đầu làm C2 và thời điểm kết thúc D2 trong cùng ngày. Dễ thấy là nếu trong khoảng từ C2 tới D2 ta tô mầu xanh cho các đoạn rơi vào ca đêm (00:00:00 - 06:00:00 và 22:00:00 - 24:00:00) và tô mầu đỏ cho đoạn rơi vào ca ngày (06:00:00 - 22:00:00) thì tổng các đoạn mầu xanh và mầu đỏ có độ dài = D2-C2. Tức s + s1 = D2-C2 (s1 là khoảng thời gian rơi vào ca ngày 06:00:00 - 22:00:00 được tô mầu đỏ) => s = D2-C2-s1 = D2-C2-(MEDIAN("06:00:00"; "22:00:00"; D2) - MEDIAN("06:00:00"; "22:00:00"; C2)) => s = D2 - C2 - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) ' (A) Do thời điểm C2 và D2 cùng ngày nên D2 > C2, và D2 - C2 = MOD(D2-C2; 1) s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) 2. Thời điểm bắt đầu làm C2 và thời điểm kết thúc D2 ở 2 ngày liên tiếp. Ta chia đoạn (C2; D2) thành 2 đoạn (C2; "24:00:00") và (00:00:00-D2) Ta có s = <ca đêm đoạn 1> + <ca đêm đoạn 2> Ta dùng công thức (A) ở điểm 1 cho từng đoạn. <ca đêm đoạn 1> = "24:00:00" - C2 - MEDIAN("06:00:00"; "22:00:00"; "24:00:00") + MEDIAN("06:00:00"; "22:00:00"; C2) <ca đêm đoạn 1> = 1 - C2 - "22:00:00" + MEDIAN("06:00:00"; "22:00:00"; C2) <ca đêm đoạn 2> = D2 - "00:00:00" - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; "00:00:00") <ca đêm đoạn 2> = D2 - MEDIAN("06:00:00"; "22:00:00"; D2) + "06:00:00" s = <ca đêm đoạn 1> + <ca đêm đoạn 2> s = 1 - C2 - "22:00:00" + MEDIAN("06:00:00"; "22:00:00"; C2) + D2 - MEDIAN("06:00:00"; "22:00:00"; D2) + "06:00:00" s = 1 + D2 - C2 - "16:00:00" - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) ---------- Do có giả thiết ngầm là thời gian làm việc liên tục < 1 ngày nên C2 < D2 nếu thời điểm C2 và D2 cùng ngày, và C2 > D2 nếu thời điểm C2 và D2 ở 2 ngày liên tiếp. Do (C2>D2) trả về 0 (FALSE) cho thời điểm C2 và thời điểm D2 cùng ngày, và trả về 1 (TRUE) cho thời điểm C2 và thời điểm D2 ở 2 ngày khác nhau nên công thức cho trường hợp 1 và 2 có thể viết lại thành: 1. s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 * 2. s = 1 + D2 - C2 - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 Dễ thấy là với C2 > D2 (C2 và D2 ở 2 ngày liên tiếp) thì 1 + D2 - C2 = MOD(D2-C2; 1). Vậy s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 ** Từ *** ta thấy là giờ làm ca đêm s luôn là: s = MOD(D2-C2; 1) - MEDIAN("06:00:00"; "22:00:00"; D2) + MEDIAN("06:00:00"; "22:00:00"; C2) - (C2>D2)*16/24 Công thức trên chính là công thức đầu tiên tôi cho bạn. Kết quả sẽ là như Excel lưu thời gian. Vd. "08:00:00" sẽ được lưu bằng số 0,33...33 (1/3) do 1 ngày = 24 giờ được lưu bằng số 1). Do bạn muốn kết quả bằng số kiểu 8 tiếng thì kết quả là 8 chứ không là 0,33...33 nên để có kết quả theo kiểu của bạn thì phải nhân kết quả ở trên với 24. Kết quả nhân với 24 chính là công thức thứ 2 mà tôi cho bạn. -------------- Lưu ý: công thức của tôi và của bạn HieuCD sẽ cho kết quả khác nhau ở một số trường hợp. Vd. giờ vào là "05:00:00" và giờ ra là "01:00:00" thì công thức của tôi trả về 4 (1 giờ từ "05:00:00" tới "06:00:00" của ngày bắt đầu và 3 giờ từ "22:00:00" tới "01:00:00" của ngày tiếp theo). Còn công thức của bạn HieuCD trả về 3. Nhấp chuột vào đây để mở rộng...
Hồi đi học có phải bác học chuyên toán không bác? Thật ra em suy nghĩ công thức cả tuần rồi mới đăng đàn để hỏi. E cũng có lập công thức nhưng chủ yếu là dùng hàm if. Suy luận cũng kiểu nếu giờ ra và giờ vào cùng một ngày thì công thức như thế nào, nếu 2 giờ thuộc 2 ngày khác nhau thì sẽ chia ra 2 đoạn y như bác giải thích suy luận của bác ở trên. Em cũng có suy nghĩ là nếu giờ vào giờ ra rơi vào khung giờ ca đêm hoặc không rơi vào khung giờ ca đêm, nhưng thật sự là em không hề nghĩ được cái zụ đoạn chung như hướng suy nghĩ của bác, cũng hoàn toàn không biết đến hàn median cũng như ứng dụng của hàm này. Trước khi đăng đàn, em có dùng công thức if nhưng kết quả không đúng cho tất cả các trường hợp, công thức của em vừa dài vừa dở nên em ngại ko để vào file. Lần sau em xin rút kinh nghiệm, phải đưa trước hướng suy nghĩ của em để xin thêm ý kiến từ mọi người. Một lần nữa em xin cảm ơn bác Batman1 và bác HieuCD đã tận tình chỉ vẽ cho em. Chúc mọi người sức khoẻ và thành công ạ. Chúc cho diễn đàn của mình càng ngày càng hay và nhiều view. Nghi B

batman1

Thành viên gạo cội
Tham gia 8/9/14 Bài viết 5,774 Được thích 9,765
th_dungdn đã viết: Hồi đi học có phải bác học chuyên toán không bác? Nhấp chuột vào đây để mở rộng...
Tôi không bao giờ học chuyên toán nhưng cả đời đi học không bao giờ có vấn đề về Toán, Lý và Hóa. T

th_dungdn

Thành viên mới
Tham gia 14/5/12 Bài viết 21 Được thích 1
batman1 đã viết: Tôi không bao giờ học chuyên toán nhưng cả đời đi học không bao giờ có vấn đề về Toán, Lý và Hóa. Nhấp chuột vào đây để mở rộng...
Dạ. Hihiii. :clap2:@$@!^%@$@!^% H

HUONG MINJI

Thành viên mới
Tham gia 10/10/21 Bài viết 0 Được thích 0 Em muốn hỏi các anh chị cách tính cụ thể hơn nữa. Vì công ty em ca làm phụ thuộc vào đơn đặt hàng của khách nên cũng k có ca cụ thể, nh sếp em thì lại muốn tính lương chuẩn. giờ làm đêm theo luật sẽ được tính từ 22h-6h sáng ngày hôm sau. nhưng ví dụ như nhà em có ca dở dang ntn: làm từ 20h - 7h sáng hsau. Tổng thời gian làm việc là 11h, có 8h làm việc chính thức và 3h làm thêm. Nhưng trong 8h làm việc chính thức thì sẽ có 2h thuộc giờ làm việc ngày, 6h thuộc giờ làm việc đêm. Tương tự giờ làm thêm sẽ có 2h làm thêm trong khung giờ đêm, và 1h làm thêm giờ ngày ( vì làm ngày sẽ tính lương 100%, còn làm thêm ngày sẽ tính 150%. còn làm đêm sẽ tính lương 130%, còn làm thêm đêm là 180%). anh chị chỉ giúp em với ạ, anh chị xem giúp em như bảng em tính thủ công dưới ạ

File đính kèm

  • THẮC MẮC EXCEL TÍNH GIỜ CHẤM CÔNG.xlsx 10.2 KB · Đọc: 38
Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây. Web KT

Bài viết mới nhất

K Giúp về tạo thư mục lưu trong VBA
  • kazunoki
  • 20/10/19
  • Thành viên giúp nhau
Trả lời 3 Đọc 436 14 phút trước kazunoki K Maika8008
  • Đã giải quyết
[Chia sẻ] Dùng VBA trộn dữ liệu Excel sang file Word mẫu (tương tự chức năng Mail Merge)
    • Thích
    • Yêu thích
    • Cảm ơn
  • Maika8008
  • 6/6/21
  • Lập Trình với Excel
23 24 25 Trả lời 480 Đọc 38K 21 phút trước Hoàng Tuấn 868 H TranThanhPhong Hàm IF
    • Thích
  • TranThanhPhong
  • 3/5/14
  • Dự án: Công thức & Hàm 97-2019
Trả lời 5 Đọc 11K 51 phút trước phamchicong P L Tính tổng và đếm ỗ đã chọn
  • leduongpn
  • Hôm nay lúc 16:16
  • Hàm và công thức Excel
Trả lời 4 Đọc 81 Hôm nay lúc 21:05 thuytrangbp28 T hunganh.nguyen Xin giúp code tách dòng tổng thành những dòng chi tiết với giá trị là 1
  • hunganh.nguyen
  • 19/6/24
  • Hàm và công thức Excel
Trả lời 4 Đọc 135 Hôm nay lúc 18:41 hunganh.nguyen hunganh.nguyen Xem thêm… Chia sẻ: Facebook X (Twitter) Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Facebook

Giaiphapexcel.com

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2

Thành viên có số lượng bài viết cao nhất tháng

  • Hoàng Tuấn 868 134
  • VetMini 93
  • ptm0412 57
  • Phuocam 42
  • CHAOQUAY 36
  • cantl 32
  • huuthang_bd 32
  • soap1234 31
  • ongke0711 30
  • snow25 20
  • BuiQuangThuan 20
  • Hoàng Trọng Nghĩa 20
  • SA_DQ 20
  • befaint 17
  • Manhhung90 16
  • HUONGHCKT 16
  • le_vis 16
  • hoangtuaotrang_hp_vn 16
  • huhumalu 15
  • thuytrangbp28 15

Thành viên có điểm tương tác cao nhất tháng

  • VetMini 142
  • Hoàng Tuấn 868 127
  • Phuocam 101
  • ptm0412 70
  • huuthang_bd 70
  • CHAOQUAY 53
  • Phan Thế Hiệp 49
  • HUONGHCKT 45
  • BuiQuangThuan 40
  • ongke0711 39
  • HieuCD 35
  • SA_DQ 32
  • snow25 26
  • befaint 25
  • LmoovoenX 23
  • htin1997 19
  • gpe.vn 19
  • HeSanbi 19
  • cantl 17
  • huhumalu 15
  • Trang chủ
  • Thành viên giúp nhau
  • Thành viên giúp nhau
  • Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Back Top Bottom

Từ khóa » Công Thức Excel Tính Lương Ca đêm