ฟังก์ชัน DATEDIF

นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Windows SharePoint Services 3.0

คำนวณจำนวนวัน เดือน หรือปีระหว่างวันที่สองวัน

คำเตือน

  • Excel มีฟังก์ชัน DATEDIF เพื่อสนับสนุนเวิร์กบุ๊กที่เก่ากว่าจาก Lotus 1-2-3 ฟังก์ชัน DATEDIF อาจคํานวณผลลัพธ์ที่ไม่ถูกต้องภายใต้สถานการณ์บางอย่าง โปรดดูส่วนปัญหาที่ทราบแล้วของบทความนี้สําหรับรายละเอียดเพิ่มเติม
  • เคล็ด ลับ: ถ้าคุณต้องการค้นหาจํานวนวันระหว่างวันที่สองวัน ให้ลบวันที่หลังจากวันที่ก่อนหน้า วิธีนี้ใช้ได้ผลเนื่องจากวันที่ถูกจัดเก็บเป็นตัวเลขใน Excel

ไวยากรณ์

DATEDIF(start_date,end_date,unit)

อาร์กิวเมนต์ คำอธิบาย
start_date
จำเป็น
วันที่ที่แสดงถึงวันที่แรก หรือวันที่เริ่มต้นของรอบระยะเวลาที่กําหนด อาจใส่วันที่เป็นสตริงข้อความภายในเครื่องหมายอัญประกาศ (ตัวอย่างเช่น "2001/1/30") เป็นเลขลําดับ (ตัวอย่างเช่น 36921 ซึ่งแทนวันที่ 30 มกราคม 2544 ถ้าคุณกําลังใช้ระบบวันที่แบบ 1900) หรือเป็นผลลัพธ์ของสูตรหรือฟังก์ชันอื่นๆ (ตัวอย่างเช่น DATEVALUE("2001/1/30"))
end_date
จำเป็น
วันที่ที่แสดงถึงวันสุดท้ายหรือวันที่สิ้นสุดของรอบระยะเวลา
Unit ชนิดของข้อมูลที่คุณต้องการส่งกลับ โดยที่:หน่วย****ส่งกลับ"Y"จํานวนปีแบบเต็มในช่วงเวลา" M"จํานวนเดือนเต็มในช่วงเวลา" D"จํานวนวันในช่วงเวลา" MD"ความแตกต่างระหว่างวันใน start_date กับ end_date เดือนและปีของวันที่จะถูกละเว้น
สำคัญ: เราไม่แนะนําให้ใช้อาร์กิวเมนต์ "MD" เนื่องจากมีข้อจํากัดที่ทราบแล้ว ดูที่ส่วนปัญหาที่ทราบด้านล่าง" YM"ความแตกต่างระหว่างเดือนใน start_date กับ end_date วันและปีของวันที่จะถูกละเว้น"YD"ความแตกต่างระหว่างวันของ start_date และ end_date ปีของวันที่จะถูกละเว้น

ข้อสังเกต

  • วันที่จะถูกจัดเก็บเป็นเลขลําดับต่อเนื่องเพื่อให้สามารถใช้ในการคํานวณได้ ตามค่าเริ่มต้น 1 มกราคม 1900 จะเป็นเลขลําดับ 1 และวันที่ 1 มกราคม 2551 เป็นเลขลําดับ 39448 เนื่องจากเป็น 39,447 วันหลังจากวันที่ 1 มกราคม 2443
  • ฟังก์ชัน DATEDIF มีประโยชน์ในสูตรที่คุณต้องการคำนวณหาอายุ
  • ถ้า start_date มากกว่า end_date ผลลัพธ์จะถูก #NUM!

ตัวอย่าง

Start_date End_date สูตร คำอธิบาย (ผลลัพธ์)
1/1/2001 1/1/2003 =DATEDIF(start_date,end_date,"Y") สองปีเต็มในช่วงเวลา (2)
6/1/2001 8/15/2002 =DATEDIF(start_date,end_date,"D") 440 วันระหว่าง June 1, 2001 และ August 15, 2002 (440)
6/1/2001 8/15/2002 =DATEDIF(start_date,end_date,"YD") 75 วันระหว่าง June 1 และ August 15 ไม่สนใจส่วนที่เป็นปีของวันที่ (75)

ปัญหาที่ทราบแล้ว

อาร์กิวเมนต์ "MD" อาจส่งผลให้เกิดจํานวนลบ ศูนย์ หรือผลลัพธ์ที่ไม่ถูกต้อง ถ้าคุณกําลังพยายามคํานวณวันที่เหลือหลังจากเดือนที่เสร็จสมบูรณ์ล่าสุด นี่คือวิธีแก้ไขปัญหาชั่วคราว:

=DATEDIF(D17,E17,md) และผลลัพธ์: 5 สูตรนี้ลบวันแรกของเดือนสิ้นสุด (1/5/2559) จากวันที่สิ้นสุดเดิมในเซลล์ E17 (6/5/2559) นี่คือวิธีการ: ก่อนอื่น ฟังก์ชัน DATE จะสร้างวันที่ 5/1/2016 ซึ่งจะสร้างโดยใช้ปีในเซลล์ E17 และเดือนในเซลล์ E17 จากนั้น 1 จะแสดงวันแรกของเดือน ผลลัพธ์สำหรับฟังก์ชัน DATE คือ 5/1/2016 จากนั้น เราจะลบจากวันที่สิ้นสุดดั้งเดิมในเซลล์ E17 ซึ่งก็คือ 5/6/2016 5/6/2016 ลบ 5/1/2016 คือ 5 วัน

ต้องการความช่วยเหลือเพิ่มเติมไหม

คุณสามารถสอบถามผู้เชี่ยวชาญใน ชุมชนด้านเทคนิคของ Excel หรือรับการสนับสนุนใน ชุมชนได้เสมอ