Nhờ giúp đỡ code tra cứu lịch trực.

Liên hệ QC

Ngày mai trời lại sáng

Thành viên thường trực
Tham gia
4/7/21
Bài viết
339
Được thích
139
Chào các bạn, hiện mình đang sử dụng công thức để tra cứu lịch trực qua bảng phụ.
Nhờ các bạn giúp đỡ code tra cứu thay cho công thức và bảng phụ trong file kèm với.
Xin cảm ơn
 

File đính kèm

  • Lich.xlsx
    17.1 KB · Đọc: 16
Upvote 0
Tuần trước là thứ 7 (01/10/2022) hay là ngày trước đó: Chủ nhật (02/10/2022)

Và kết quả mẫu của bạn khẳng định là đúng?
Vâng đúng theo quy luật mình đã đề cập đó ạ "cứ hết 1 tuần là A,B,C sẽ đổi ca theo trình tự: Từ ca3 sang ca2, từ ca2 sang ca1 , từ ca1 sang ca3"
Bài đã được tự động gộp:

Mình đang nghĩ nó phải ra như hình chứ nhỉ.View attachment 282183
Nếu theo như kết quả màu đỏ thì C đang ca3 (tuần trước) , bước sang tuần mới tiếp theo lại ca1 thì không thể được.
Vì ca3 là ca đêm nếu chuyển luôn sang ca1 thì sẽ làm liên tục 2ca (16h) không có thời gian nghỉ ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Vâng đúng theo quy luật mình đã đề cập đó ạ "cứ hết 1 tuần là A,B,C sẽ đổi ca theo trình tự: Từ ca3 sang ca2, từ ca2 sang ca1 , từ ca1 sang ca3"
Bạn thử cho mình xin kết quả đến tháng 12/2022 được không. Để mình test
Thêm 1 cái nữa. Xét 1/10 là thứ 7 của tuần 1. Thì 2/10 sẽ là tuần tiếp theo rồi chứ nhỉ
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử cho mình xin kết quả đến tháng 12/2022 được không. Để mình test
Thêm 1 cái nữa. Xét 1/10 là thứ 7 của tuần 1. Thì 2/10 sẽ là tuần tiếp theo rồi chứ nhỉ

Xin lỗi hôm nay mình không ngồi máy.
Kết quả đến tháng 12/2022 thì chỉ cần kéo thêm dữ liệu trong file kèm tại bài 1 xuống cho hết năm là có ạ.
Xét 1/10 là t7 2/10 sẽ là chủ nhật vẫn là tuần của 1/10 tính từ thứ 2 trở đi mới là tuần tiếp theo ạ.
Cảm ơn bạn nhiều.
 
Upvote 0
Vâng đúng theo quy luật mình đã đề cập đó ạ "cứ hết 1 tuần là A,B,C sẽ đổi ca theo trình tự: Từ ca3 sang ca2, từ ca2 sang ca1 , từ ca1 sang ca3"
Bài đã được tự động gộp:


Nếu theo như kết quả màu đỏ thì C đang ca3 (tuần trước) , bước sang tuần mới tiếp theo lại ca1 thì không thể được.
Vì ca3 là ca đêm nếu chuyển luôn sang ca1 thì sẽ làm liên tục 2ca (16h) không có thời gian nghỉ ạ.
Trong khi chờ các giải pháp khác tốt hơn, hãy thử xem code củ chuối này.
 

File đính kèm

  • Lich.xlsm
    29.7 KB · Đọc: 10
Upvote 0
Bạn có thực sự cần code VBA không?
Nếu không thì dùng công thức này tại G5 là đủ:
Mã:
=INDEX(CHOOSE(MOD(INT(($G$3-DATE(2021,12,27))/7),3)+1,{"A","B","C"},{"B","C","A"},{"C","A","B"}),COLUMNS($A:A))
Copy sang H và I

P/S: Mình vẫn để bảng phụ để bạn hiểu cách công thức hoạt động. Delete đi nếu muốn.
Bài đã được tự động gộp:

Trong công thức có ngày 27/12/2021, tức là ngày thứ 2, bắt đầu của chuỗi "A,B,C" và bạn có thể tra cứu lịch sử từ ngày này đến hiện tại.
Muốn tra cứu xa hơn thì bạn lùi ngày này lại theo bội số của 21, VD: bội số 100: 27/12/2021 - 21*100 = 28/03/2016
Nếu ngày này đủ xa rồi thì bạn thay ngày nào vào thành: DATE(2016,03,28) để tra cứu từ ngày này.
 

File đính kèm

  • Lich.xlsx
    71.9 KB · Đọc: 11
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Có bài này em cần code vba chạy là ra kết quả tra cứu mà không dùng bảng phụ luôn ạ.
Bỏ bảng phụ đi nhé. Mình để tạm cho bạn dễ hình dung công thức vận hành thế nào thôi.
Nếu để trong code mất công chạy code, bấm nút linh tinh mất công.
Trừ phi bạn muốn tích hợp và code có sẵn thì bên nguyên công thức đó bỏ vô thôi.
 
Upvote 0

File đính kèm

  • Lich.xlsm
    103.7 KB · Đọc: 11
Upvote 0
Web KT

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

Back
Top Bottom