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

ข้อสังเกต

  • วันที่จะถูกจัดเก็บเป็นเลขลําดับต่อเนื่องเพื่อให้สามารถนํามาใช้ในการคํานวณได้ ตามค่าเริ่มต้น วันที่ 1 มกราคม 1900 จะมีเลขลําดับเป็น 1 และวันที่ 1 มกราคม 2008 จะมีเลขลําดับเป็น 39448 เนื่องจากอยู่หลังจากวันที่ 1 มกราคม 1900 เป็นเวลา 39,447 วัน
  • ฟังก์ชัน 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 สูตรนี้จะลบวันแรกของเดือนสิ้นสุด (5/1/2016) จากวันที่สิ้นสุดดั้งเดิมในเซลล์ E17 (5/6/2016) นี่คือวิธีการ: ก่อนอื่น ฟังก์ชัน DATE จะสร้างวันที่ 5/1/2016 ซึ่งจะสร้างโดยใช้ปีในเซลล์ E17 และเดือนในเซลล์ E17 จากนั้น 1 จะแสดงวันแรกของเดือน ผลลัพธ์สำหรับฟังก์ชัน DATE คือ 5/1/2016 จากนั้น เราจะลบจากวันที่สิ้นสุดดั้งเดิมในเซลล์ E17 ซึ่งก็คือ 5/6/2016 5/6/2016 ลบ 5/1/2016 คือ 5 วัน

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

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