ฉันกำลังมองหาสูตรที่สามารถดูค่าเซลล์ที่มีวันที่และส่งคืนวันจันทร์แรกที่จะเกิดขึ้นหลังจากวันที่นั้น
ตัวอย่าง (รูปแบบ MM / dd / yyyy):
10/22/2013 (Tuesday) would return 10/28/2013 (Monday)
10/28/2013 (Monday) would return 10/28/2013 (Monday)
ฉันกำลังมองหาสูตรที่สามารถดูค่าเซลล์ที่มีวันที่และส่งคืนวันจันทร์แรกที่จะเกิดขึ้นหลังจากวันที่นั้น
ตัวอย่าง (รูปแบบ MM / dd / yyyy):
10/22/2013 (Tuesday) would return 10/28/2013 (Monday)
10/28/2013 (Monday) would return 10/28/2013 (Monday)
คำตอบ:
ให้B2
เซลล์มีวันที่
=IF(WEEKDAY(B2)=2, B2, IF(WEEKDAY(B2)=1,B2+1, B2+9-WEEKDAY(B2)))
หรือ
=IF(WEEKDAY(B2,3)=0, B2, B2+7-WEEKDAY(B2,3))
ทางออกที่สวยงามอีกเล็กน้อยคือการเลื่อนแต่ละอินพุตด้วยจำนวนวันที่เหมาะสม
=B2+MOD(9-WEEKDAY(B2),7)
หากคุณต้องการที่จะฉลาดเราไม่จำเป็นต้องใช้วันธรรมดาเพราะเรารู้ว่ายุคนั้นล้มเหลวในวันเสาร์ (คำนวณวันธรรมดา (0) เพื่อตรวจสอบสิ่งนี้)
=B2+MOD(9-B2,7)
โซลูชันทั่วไปและสง่างามที่ใช้งานได้ในวันใดวันหนึ่งของสัปดาห์ (N-day):
Cell B2
: วันที่เปลี่ยนเป็น N-day ถัดไปของสัปดาห์ เซลล์B3
: N-day ถัดไปของสัปดาห์: Mon = 1, Tue = 2, ... ;
=B2+MOD(B3-WEEKDAY(B2,2),7)
สำหรับวันที่เฉพาะเจาะจงของสัปดาห์ในกรณีนี้วันจันทร์ (วัน = 1) สูตรสามารถเป็น 'ฮาร์ดโค้ด' ถึง
=B2+MOD(1-WEEKDAY(B2,2),7)
โปรดทราบว่าด้วยการตั้งค่าพารามิเตอร์ที่ 2 ของวันทำงานเป็น '2' weekday(B2,2)
จะส่งคืนวันในสัปดาห์ที่สอดคล้องกับ N-day ที่ต้องการใช้ในสูตรด้านบน (เซลล์ B1) เช่น Mon = 1, Tue = 2, ...
โซลูชันของ Franck นั้นสมบูรณ์แบบสำหรับวันจันทร์ แต่มันไม่ได้ผลสำหรับวันอื่น ๆ (ฉันทดสอบเฉพาะสูตรที่ 2) อย่างไรก็ตามสูตรต่อไปนี้สามารถใช้งานได้ในวันอื่น ให้ B2 คือวันที่และ B3 เป็นวัน (B3 จาก 1 ถึง 7 โดยที่วันอาทิตย์คือ 1):
=IF(WEEKDAY(B2,1)<B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))
หมายเหตุ: นี่จะค้นหาในวันถัดไปแม้ว่า B2 เป็นวันที่ร้องขอ แต่สูตรต่อไปจะกลับมาวันนี้ถ้า B2 เป็นวันที่ขอ:
=IF(WEEKDAY(B2,1)<=B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))