คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

DATEDIF

วันที่และเวลาระดับกลางทุกเวอร์ชัน

อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด

DATEDIF คืออะไร

นับจำนวนปี เดือน หรือวันเต็มระหว่างสองวันที่ เช่น อายุงานหรืออายุ

ใช้เมื่อไหร่

  • คำนวณอายุงานของพนักงานเพื่อคิดสวัสดิการหรือรางวัลอายุงาน
  • ทำหนังสือรับรองที่ต้องระบุอายุงานเป็น ปี เดือน วัน
  • นับจำนวนเดือนของสัญญาเช่าหรือสัญญาบริการ

รูปแบบสูตร

=DATEDIF(start_date, end_date, unit)

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
start_dateจำเป็นวันเริ่มต้นของช่วง เช่น วันเริ่มงานหรือวันเกิด
end_dateจำเป็นวันสิ้นสุดของช่วง ต้องไม่อยู่ก่อน start_date
unitจำเป็นสิ่งที่ต้องการนับ ใส่ใน "..." เช่น "Y" "M" "D" "YM" "MD" "YD"

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

นับอายุงานถึงวันที่ใน I4 แล้วนับคนที่ครบ 5 ปี

D5
=DATEDIF(C5,$I$4,"Y")
ช่วงวันที่ C5 = 16/5/2012 ถึง I4 = 31/12/2025 · unit "Y" (ปีเต็ม)
แถวABCDEF
4รหัสชื่อ-นามสกุลวันเริ่มงานอายุงาน (ปี)
5E001วิไลวรรณ ศรีสมบูรณ์16/5/201213
6E002ธนพล แก้วประเสริฐ1/8/20169
7E003กัญญารัตน์ มีชัย31/1/20196
8E004ประเสริฐ ทองมา31/12/20205
9E005ณัฐธิดา พรหมวงศ์1/1/20214
10E006อภิชาติ สุขเจริญ30/3/20232
11E007ศิริพร จันทร์หอม29/1/20241
12E008ภูริพัฒน์ ใจงาม16/6/20250
13
14
15
16
17
18
19
C5
ช่องกรอกและผลลัพธ์
จำนวนคนที่อายุงานครบ 5 ปี I5

พิมพ์วันที่แบบ วัน/เดือน/ปี ค.ศ. เช่น 5/12/2025

ขั้นตอนการคำนวณ (3)
คลิกช่องสีเขียวมะนาวในตารางเพื่อดูสูตรของแถวนั้น · คลิกตัวเลขเพื่อแก้ค่า · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 อายุงานเป็นปี” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: DATEDIF(C5,$I$4,"Y") นับปีเต็มตั้งแต่วันเริ่มงานใน C5 ถึงวันที่ใน I4
  • ลองเปลี่ยน I4 เป็น 1/1/2026 ณัฐธิดา (E005) จะครบ 5 ปีพอดี จำนวนคนที่ครบ 5 ปีเพิ่มเป็น 5 คน
  • ระวัง: "Y" นับเฉพาะปีที่ครบจริง ณัฐธิดาเริ่มงาน 1 ม.ค. 2021 ณ 31 ธ.ค. 2025 ยังขาด 1 วัน จึงได้ 4 ไม่ใช่ 5

ตัวอย่างทั้งหมด 4 แบบ

  1. 1อายุงานเป็นปีเต็ม · นับอายุงานถึงวันที่ใน I4 แล้วนับคนที่ครบ 5 ปี
  2. 2อายุงานแบบ ปี เดือน วัน · ต่อผลของ "Y", "YM" และ "MD" เป็นข้อความเดียวด้วยเครื่องหมาย &
  3. 3เทียบผล unit ทั้ง 6 แบบ · สูตรเดียวในคอลัมน์ C อ้าง unit จากคอลัมน์ A และวันที่จาก I4 กับ I5
  4. 4MD คลาดเมื่อเริ่มวันที่ 29–31 แก้ด้วย EDATE · คอลัมน์ D ใช้ "MD" ส่วน E หาวันครบเดือนล่าสุดด้วย EDATE แล้ว F นับวันที่เหลือจากวันนั้น

ข้อผิดพลาดที่พบบ่อย

#NUM!สาเหตุ: start_date อยู่หลัง end_dateแก้: สลับลำดับวันที่ หรือตรวจว่ากรอกวันที่ผิดช่อง
#VALUE!สาเหตุ: วันที่เป็นข้อความที่ Excel อ่านเป็นวันที่ไม่ได้แก้: ใช้วันที่จริง หรือสร้างด้วย DATE
"MD" ได้ค่าติดลบ 0 หรือจำนวนวันที่คลาดสาเหตุ: วันเริ่มเป็นวันที่ 29–31 ซึ่งมากกว่าวันที่ของวันสิ้นสุด และเดือนก่อนวันสิ้นสุดไม่มีวันที่นั้น Excel จึงทดวันเกินแก้: ใช้ =end_date-EDATE(start_date,DATEDIF(start_date,end_date,"M")) แทน
#NAME?สาเหตุ: สะกดชื่อผิด เช่น DATEDIFFแก้: พิมพ์ DATEDIF ให้ครบเอง Excel ไม่แสดงชื่อนี้ในรายการแนะนำตอนพิมพ์

เคล็ดลับจากห้องเรียน

นับถึงวันนี้ใช้ TODAY() แทนช่องวันที่ เช่น =DATEDIF(C5,TODAY(),"Y") ผลจะเปลี่ยนทุกวัน
ถ้าต้องการแค่จำนวนวัน ลบวันที่กันตรง ๆ ก็ได้ เช่น =I4-C5
ต่อข้อความด้วย & เช่น =DATEDIF(C5,I4,"Y")&" ปี "&DATEDIF(C5,I4,"YM")&" เดือน"

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
DATEDIF

DATEDIF ใช้ได้ทุกเวอร์ชันที่ยังใช้กันอยู่ จึงไม่ต้องมีสูตรทางเลือก

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
DATEDIFนับปีหรือเดือนเต็ม เช่น อายุงาน=DATEDIF(C5,I4,"Y")
ลบวันที่ตรง ๆต้องการแค่จำนวนวัน=I4-C5
DAYSจำนวนวัน ใส่วันสิ้นสุดก่อนวันเริ่ม=DAYS(I4,C5)
YEARFRACจำนวนปีแบบมีทศนิยม เช่น 4.5 ปี=YEARFRAC(C5,I4)
EDATEหาวันครบรอบ เช่น ครบทดลองงาน 4 เดือน=EDATE(C5,4)

ใน Power BI ใช้อะไร

ลำดับ argument เหมือนกัน (วันเริ่ม, วันสิ้นสุด, หน่วย) แต่ DATEDIFF นับจำนวนครั้งที่ข้ามขอบของหน่วย เช่น 31 ม.ค. ถึง 1 ก.พ. ได้ 1 เดือน ขณะที่ DATEDIF ได้ 0 หน่วยเป็นคำสงวน เช่น MONTH ไม่ใส่เครื่องหมายคำพูด และได้ค่าติดลบเมื่อวันเริ่มอยู่หลังวันสิ้นสุด

ไฟล์ฝึก DATEDIF

9Expert-DATEDIF-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 26 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 อายุงานเป็นปี2 ปี เดือน วัน3 เทียบ unit4 MD คลาด ใช้ EDATEแบบฝึกหัดเฉลยสรุปย่อ

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1อายุงานเป็นเดือนเต็มของพนักงานแถว 8 ถึงวันที่ในช่อง C7
  2. ข้อ 2จำนวนวันตั้งแต่วันเริ่มงานของพนักงานแถว 13 ถึงวันที่ในช่อง C8
  3. ข้อ 3เดือนที่เหลือหลังหักปีเต็ม (YM) ของพนักงานแถว 7 ถึงวันที่ในช่อง C9
  4. ข้อ 4อายุงานของพนักงานแถว 11 ถึงวันที่ในช่อง C10 แสดงแบบ "2 ปี 9 เดือน" (ต่อด้วย " ปี " และ " เดือน")
  5. ข้อ 5พนักงานแถว 10 อายุงานครบ 5 ปีหรือยัง ณ วันที่ในช่อง C11 แสดง ครบ 5 ปี หรือ ยังไม่ครบ

วิดีโอประกอบ

คลิปเรื่อง DATEDIF จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

แบบทดสอบ 3 ข้อ

1. เริ่มงาน 1 ม.ค. 2021 นับถึง 31 ธ.ค. 2025 ด้วย DATEDIF แบบ "Y" ได้เท่าไร

2. ถ้า start_date อยู่หลัง end_date จะได้อะไร

3. อยากได้จำนวนเดือนที่เหลือหลังหักปีเต็ม ใช้ unit ใด

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม