Bạn nói rằng bạn đang sử dụng công thức =U1-WEEKDAY(U1)+6
với ngày trong ô U1
là thứ bảy Để trả lời câu hỏi của bạn, bạn cần tìm ra những gì WEEKDAY(U1)
sẽ trở lại.
Excel WEEKDAY()
Hàm lấy một ngày và trả về một số trong khoảng 1-7 đại diện cho ngày trong tuần. Theo mặc định, TUẦN trả về 1 cho Chủ nhật và 7 cho Thứ Bảy. Do đó, trong trường hợp của bạn WEEKDAY(U1)
sẽ trả về 7. Điều này sẽ biến công thức của bạn thành phép tính U1-7+6
.
Một lĩnh vực đôi khi làm tôi bực mình là Excel không tuân theo quy tắc BODMAS thực sự . Nó tuân theo công thức từ trái sang phải trừ khi có dấu ngoặc. Nó sẽ tính toán mọi thứ trong ngoặc từ trái sang phải trước, sau đó tính toán phần còn lại từ trái sang phải. Nếu nó tuân theo BODMAS, nó sẽ trả về kết quả là U1-13
.
Trong Excel, công thức của bạn sẽ cho bạn kết quả là U1-1
(ngày hôm trước).
Nếu U1
là một ngày thứ tư, nó sẽ là U1-4+6
sẽ cung cấp cho bạn 2 ngày sau ngày U1
. Bạn có thấy những gì công thức đang làm?
Công thức tính ra ngày thứ Sáu trong tuần Chủ nhật-Thứ Bảy cho ngày được đưa ra trong U1
.
Nếu bạn muốn thứ Sáu trong tuần sau ngày U1
bạn có thể đặt công thức hiện tại trong ngoặc và thêm 7 vào công thức =(U1-WEEKDAY(U1)+6)+7
Sẽ có một vấn đề mặc dù với công thức này. Nếu bạn thay đổi ngày bắt đầu của mình thành Thứ Tư, ngày này sẽ chuyển ngày thanh toán đầu tiên sang Thứ Sáu trong tuần tiếp theo do đó thiếu một ngày thanh toán.
Nếu bạn muốn sử dụng công thức ban đầu của mình, bạn sẽ cần sử dụng một IF()
chức năng kiểm tra nếu U1
là thứ sáu hoặc trước khi đầu tiên.
=IF(WEEKDAY(U1)=<6,U1-WEEKDAY(U1)+6,(U1-WEEKDAY(U1)+6)+7
Một công thức hiệu quả hơn để sử dụng (ngắn và không có IF()
chức năng) là
= U1 + (7-TUẦN (U1,2) +5)
Các ,2
bên trong WEEKDAY()
Hàm thay đổi định dạng ngày trong tuần từ Chủ Nhật-Thứ Bảy sang Thứ Hai-Chủ Nhật với Thứ Hai = 1