Tôi sẽ giả sử cột A là một giá trị ngày thực, được định dạng để hiển thị tên ngày. Điều đó có thể được thực hiện với một định dạng tùy chỉnh DDD dd/mm
.
Giờ nghỉ lễ cần xác định xem cột A có phải là Chủ nhật không. Điều đó có thể được thực hiện với WEEKDAY()
chức năng, trả về 1
cho Chủ nhật.
Bạn cũng cần bao gồm các ngày lễ, mà Excel không phục vụ nguyên bản vì ngày lễ của mỗi quốc gia là khác nhau. Bạn có thể thiết lập một danh sách các ngày lễ trên một trang tính khác và đặt cho danh sách đó một tên phạm vi (giả sử Holidays
). Sau đó, tính toán của bạn cần xác định xem cột A có xảy ra trong phạm vi đó không. Sử dụng VLOOKUP()
. VLOOKUP
có một cách giải quyết cụ thể ở chỗ nó sẽ trả về #N/A
nếu không tìm thấy giá trị, vì vậy bạn cần kiểm tra lỗi.
Do đó, ngày là chủ nhật nếu WEEKDAY(A13)=1
và ngày lễ nếu VLOOKUP(A13,Holidays,1,FALSE)
không phải là lỗi.
Tế bào I13
sẽ cần phải chứa một điều kiện kết hợp hai thử nghiệm này. Bạn chỉ có thể thêm chúng lại với nhau miễn là danh sách ngày lễ của bạn không chứa Chủ nhật.
=IF(WEEKDAY(A13)=1,F13,0) + IF(ISERROR(VLOOKUP(A13,Holidays,1,FALSE)),0,F13)
Lưu ý rằng tôi đã sử dụng F13
ở đây, tổng số giờ, vì không có khả năng làm việc trong kỳ nghỉ sẽ đủ điều kiện để làm thêm giờ và phí bảo hiểm ngày lễ, và tôi nghi ngờ rằng làm thêm giờ là một phép tính đơn giản TimeOut - TimeIn - Breaks - DailyTimeToWork
(là một hằng số được đặt ở nơi khác). Vì câu hỏi không xác định quy tắc kinh doanh chính xác, bạn gần như chắc chắn sẽ cần phải điều chỉnh các đề xuất này.