วิธีการคำนวณวันจันทร์ถัดไปหลังจากวันที่กำหนด?


11

ฉันกำลังมองหาสูตรที่สามารถดูค่าเซลล์ที่มีวันที่และส่งคืนวันจันทร์แรกที่จะเกิดขึ้นหลังจากวันที่นั้น

ตัวอย่าง (รูปแบบ MM / dd / yyyy):

10/22/2013 (Tuesday) would return 10/28/2013 (Monday)
10/28/2013 (Monday)  would return 10/28/2013 (Monday)

คำตอบ:



3

ทางออกที่สวยงามอีกเล็กน้อยคือการเลื่อนแต่ละอินพุตด้วยจำนวนวันที่เหมาะสม

=B2+MOD(9-WEEKDAY(B2),7)

หากคุณต้องการที่จะฉลาดเราไม่จำเป็นต้องใช้วันธรรมดาเพราะเรารู้ว่ายุคนั้นล้มเหลวในวันเสาร์ (คำนวณวันธรรมดา (0) เพื่อตรวจสอบสิ่งนี้)

=B2+MOD(9-B2,7)

1

โซลูชันทั่วไปและสง่างามที่ใช้งานได้ในวันใดวันหนึ่งของสัปดาห์ (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, ...


0

โซลูชันของ 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))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.