บทความ DATE Excel / Google Sheets

DATE Excel / Google Sheets — คำนวณวันที่ อายุ วันสิ้นเดือนด้วยสูตร

พี่โยไอที
11 เมษายน 2026 · อัปเดต 13 ตุลาคม 2026
10 นาที
DATE Excel / Google Sheets — คำนวณวันที่ อายุ วันสิ้นเดือนด้วยสูตร

Cheat Sheet สูตร Google Sheets ฟรี

รวมสูตรที่ใช้บ่อย พร้อมตัวอย่าง อธิบายเข้าใจง่าย เปิดดูได้ตลอดขณะทำงาน

ฝ่ายบุคคลต้องคิดอายุงาน วันครบทดลองงาน วันต่อสัญญา ทุกเดือน — ถ้านับด้วยปฏิทิน พลาดวันเดียวก็กระทบเงินเดือนและสิทธิ์ของพนักงาน

บทความนี้รวมสูตรวันที่ที่ใช้ในงานจริง: DATE, DATEDIF, EDATE, EOMONTH และวิธีจัดการปี พ.ศ. ที่ทำให้สูตรวันที่ของคนไทยพังบ่อยที่สุด ทุกตัวอย่างตรวจในไฟล์ Google Sheets ภาษาไทยจริงแล้ว

เข้าใจก่อน: วันที่ใน Sheets คือตัวเลข

ทุกวันที่ถูกเก็บเป็นจำนวนวันนับจากวันตั้งต้น (13/10/2026 เก็บเป็น 46308) สิ่งที่เห็นเป็น "13/10/2026" เป็นแค่รูปแบบการแสดงผล นี่คือเหตุผลที่เอาวันที่มาบวกลบกันได้ — วันที่ + 30 = อีก 30 วันข้างหน้า และ วันที่ − วันที่ = จำนวนวันที่ห่างกัน

อยากได้อะไรสูตรหมายเหตุ
สร้างวันที่จากปี เดือน วัน=DATE(2026,10,13)ปีต้องเป็น ค.ศ.
ดึงปี / เดือน / วัน=YEAR(A2) · =MONTH(A2) · =DAY(A2)ได้เป็นตัวเลข
อายุ / อายุงานเป็นปีเต็ม=DATEDIF(A2,TODAY(),"Y")"M" = เดือน, "D" = วัน
อีก N เดือนข้างหน้า=EDATE(A2,3)วันเดียวกันของ 3 เดือนถัดไป
วันสุดท้ายของเดือน=EOMONTH(A2,0)1 = เดือนหน้า, -1 = เดือนก่อน
อีก N วันทำการ=WORKDAY(A2,10)ข้ามเสาร์-อาทิตย์

ตัวอย่าง 1: อายุงาน · ครบทดลองงาน · ครบรอบสัญญา

ตัวอย่าง: อายุงาน · ครบทดลองงาน 119 วัน · ครบรอบสัญญา · ปี พ.ศ.
ภาพหน้าจอ Google Sheets: ตัวอย่าง: อายุงาน · ครบทดลองงาน 119 วัน · ครบรอบสัญญา · ปี พ.ศ.

ภาพจากไฟล์ Google Sheets จริง · เปิดไฟล์ตัวอย่างนี้ (ดูอย่างเดียว — ไฟล์ → ทำสำเนา เพื่อลองแก้)

ดูเป็นตาราง (ก๊อปตัวเลขได้)
ABCDEF
1ชื่อวันเริ่มงานอายุงานครบ 119 วันครบ 1 ปีปีที่เริ่ม (พ.ศ.)
2สมชาย15/03/20197 ปี 6 เดือน12/07/201915/03/20202562
3วิภา01/08/20260 ปี 2 เดือน28/11/202601/08/20272569
4มานพ10/01/20242 ปี 9 เดือน08/05/202410/01/20252567
5
6วันนี้13/10/2026

สูตรในช่องสีฟ้า (ช่วงเช่น C2:C4 = พิมพ์ที่ช่องแรกแล้วลากลง):

  • C2:C4=DATEDIF(B2,$B$6,"Y")&" ปี "&DATEDIF(B2,$B$6,"YM")&" เดือน"
  • D2:D4=B2+119
  • E2:E4=EDATE(B2,12)
  • F2:F4=YEAR(B2)+543

ในไฟล์จริงช่อง B6 ใส่ =TODAY() แทนวันที่ตายตัว อายุงานจะขยับเองทุกวัน · Google Sheets จัดรูปแบบผลของ B2+119 และ EDATE เป็นวันที่ให้เอง แต่ใน Excel ผลของ EDATE จะออกมาเป็นตัวเลข เช่น 43905 ต้องตั้งรูปแบบเซลล์เป็นวันที่เอง

  1. 1

    อายุงานแบบ "7 ปี 6 เดือน"

    DATEDIF ตัว "Y" ให้ปีเต็ม ตัว "YM" ให้เดือนที่เหลือหลังหักปีเต็มแล้ว เอามาต่อกันด้วย &
  2. 2

    ครบทดลองงาน

    บวกจำนวนวันตรง ๆ ได้เลย =B2+119 เพราะวันที่คือตัวเลข
  3. 3

    ครบรอบเป็นเดือน/ปี

    ใช้ EDATE แทนการบวก 365 วัน เพราะปีอธิกสุรทิน (มี 29 ก.พ.) จะทำให้คลาดไป 1 วัน

ตัวอย่าง 2: วันสิ้นเดือน วันแรกของเดือน ชื่อวัน

ใช้บ่อยกับรอบบิล รอบเงินเดือน และรายงานสรุปรายเดือน:

ตัวอย่าง: วันสิ้นเดือน วันแรกของเดือน จำนวนวัน และชื่อวัน
ภาพหน้าจอ Google Sheets: ตัวอย่าง: วันสิ้นเดือน วันแรกของเดือน จำนวนวัน และชื่อวัน

ภาพจากไฟล์ Google Sheets จริง · เปิดไฟล์ตัวอย่างนี้ (ดูอย่างเดียว — ไฟล์ → ทำสำเนา เพื่อลองแก้)

ดูเป็นตาราง (ก๊อปตัวเลขได้)
AB
1อยากได้ผลลัพธ์
2วันที่ตั้งต้น13/10/2026
3วันสิ้นเดือนนี้31/10/2026
4วันแรกของเดือนนี้01/10/2026
5จำนวนวันในเดือนนี้31
6วันสิ้นเดือนถัดไป30/11/2026
7วันที่จาก ปี เดือน วัน29/02/2028
8ชื่อวันวันอังคาร

สูตรในช่องสีฟ้า (ช่วงเช่น C2:C4 = พิมพ์ที่ช่องแรกแล้วลากลง):

  • B3=EOMONTH(B2,0)
  • B4=EOMONTH(B2,-1)+1
  • B5=DAY(EOMONTH(B2,0))
  • B6=EOMONTH(B2,1)
  • B7=DATE(2028,2,29)
  • B8=TEXT(B2,"dddd")

EOMONTH(วันที่, 0) = สิ้นเดือนนี้ · 1 = สิ้นเดือนหน้า · -1 = สิ้นเดือนที่แล้ว (บวก 1 วันจึงได้วันแรกของเดือนนี้) · ชื่อวันที่ได้เป็นภาษาไทยเพราะไฟล์ตั้งภาษาเป็นไทย ถ้าไฟล์เป็นภาษาอังกฤษจะได้ Tuesday

DATE ฉลาดกว่าที่คิด: ใส่เดือน 13 จะกลายเป็นมกราคมปีถัดไป ใส่วันที่ 0 จะได้วันสุดท้ายของเดือนก่อน — แต่เพื่อให้อ่านสูตรง่าย ใช้ EOMONTH ดีกว่า

ปัญหาของคนไทย: วันที่เป็นปี พ.ศ.

เอกสารไทยมักพิมพ์ปีเป็น พ.ศ. เมื่อพิมพ์ 15/03/2562 ลงชีต Sheets จะรับเป็นวันที่จริง — แต่เป็นปี ค.ศ. 2562 สูตรทุกตัวยังทำงานโดยไม่มี error ทำให้ไม่มีใครรู้ว่าอายุงานผิด จนกว่าจะเห็นค่าติดลบ:

ตัวอย่าง: วันที่พิมพ์เป็นปี พ.ศ. — Sheets เข้าใจเป็นปี ค.ศ. 2562
ภาพหน้าจอ Google Sheets: ตัวอย่าง: วันที่พิมพ์เป็นปี พ.ศ. — Sheets เข้าใจเป็นปี ค.ศ. 2562

ภาพจากไฟล์ Google Sheets จริง · เปิดไฟล์ตัวอย่างนี้ (ดูอย่างเดียว — ไฟล์ → ทำสำเนา เพื่อลองแก้)

ดูเป็นตาราง (ก๊อปตัวเลขได้)
ABCD
1วันที่ที่พิมพ์ไว้ปีที่ Sheets อ่านได้แปลงเป็น ค.ศ.อายุงาน ณ 13/10/2026
215/03/2562256215/03/20197
301/08/2569256901/08/20260

สูตรในช่องสีฟ้า (ช่วงเช่น C2:C4 = พิมพ์ที่ช่องแรกแล้วลากลง):

  • B2:B3=YEAR(A2)
  • C2:C3=DATE(YEAR(A2)-543,MONTH(A2),DAY(A2))
  • D2:D3=DATEDIF(C2,DATE(2026,10,13),"Y")

ทดสอบในไฟล์ภาษาไทยจริง: พิมพ์ 15/03/2562 แล้ว Sheets รับเป็นวันที่ก็จริง แต่เป็นปี ค.ศ. 2562 (อีก 500 กว่าปีข้างหน้า) — ถ้าเอาไปลบกับ TODAY() จะได้ค่าติดลบมหาศาล ต้องแปลงด้วยคอลัมน์ C ก่อน

ข้อมูลเก่าเป็น พ.ศ. ไปแล้ว

ทำคอลัมน์ช่วยด้วยสูตรแปลงในคอลัมน์ C แล้วใช้คอลัมน์ใหม่คำนวณ (หรือก๊อป → วางแบบพิเศษ → วางค่าเท่านั้น ทับของเดิม)

อยากให้ผู้อ่านเห็น พ.ศ. แต่เก็บเป็น ค.ศ.

เก็บวันที่เป็น ค.ศ. ไว้คำนวณ แล้วทำช่องแสดงผล =DAY(A2)&"/"&MONTH(A2)&"/"&(YEAR(A2)+543) สำหรับพิมพ์บนเอกสาร

วันที่ชิดซ้าย = เป็นข้อความ

ก๊อปมาจากระบบอื่นแล้วสูตรได้ #VALUE! ลอง =DATEVALUE(A2) แปลงข้อความเช่น "15/03/2019" กลับเป็นวันที่ (ทดสอบแล้วในไฟล์ภาษาไทย)

ข้อผิดพลาดอื่นที่เจอบ่อย

วันกับเดือนสลับกัน (3 ตุลาคม กลายเป็น 10 มีนาคม)

ไฟล์ตั้งภาษา (Locale) เป็นสหรัฐฯ ซึ่งเรียงเดือนก่อนวัน — ไฟล์ → การตั้งค่า → ภาษา เลือกประเทศไทย แล้วพิมพ์วันที่ใหม่

DATEDIF ขึ้น #NUM!

วันเริ่มต้องมาก่อนวันสิ้นสุดเสมอ ถ้าสลับลำดับจะ error — ตรวจว่าไม่ได้มีวันที่ปี พ.ศ. ปนอยู่

ผลการลบวันที่ออกมาเป็นวันที่

ช่องผลลัพธ์ติดรูปแบบวันที่มา เปลี่ยนเป็น รูปแบบ → ตัวเลข → ตัวเลข

อยากได้ระบบพนักงานที่คิดอายุงานและวันลาให้เอง?

เทมเพลตฟรี "ตารางเวลาทำงานพนักงาน" มีโครงจัดตาราง คำนวณเวลา และติดตามการลาพร้อมใช้ — ก๊อปไปแล้วเพิ่มคอลัมน์อายุงานด้วยสูตรในบทความนี้
ดูเทมเพลตฟรีทั้งหมด

คำถามที่ถามบ่อย

คำนวณอายุงานเป็นปีและเดือนยังไง?

ใช้ =DATEDIF(วันเริ่มงาน,TODAY(),"Y")&" ปี "&DATEDIF(วันเริ่มงาน,TODAY(),"YM")&" เดือน" จะได้ข้อความเช่น 7 ปี 6 เดือน

หาวันสิ้นเดือนยังไง?

ใช้ =EOMONTH(วันที่,0) ถ้าอยากได้สิ้นเดือนหน้าเปลี่ยน 0 เป็น 1 และวันแรกของเดือนคือ =EOMONTH(วันที่,-1)+1

วันที่เป็น พ.ศ. คำนวณผิด แก้ยังไง?

Sheets อ่าน 15/03/2562 เป็นปี ค.ศ. 2562 ให้แปลงด้วย =DATE(YEAR(A2)-543,MONTH(A2),DAY(A2)) แล้วใช้ผลลัพธ์คำนวณต่อ

บวกเดือนให้วันที่ยังไง?

ใช้ =EDATE(วันที่,จำนวนเดือน) เช่น =EDATE(A2,12) คือวันเดียวกันของปีถัดไป อย่าบวก 30 หรือ 365 เพราะแต่ละเดือนมีวันไม่เท่ากัน

DATEDIF มีใน Google Sheets ไหม?

มี และใช้เหมือนใน Excel ทุกอย่าง แม้ Excel จะไม่แสดง DATEDIF ในรายการแนะนำสูตรก็ตาม

ถ้าบทความนี้มีประโยชน์ ช่วยแชร์ให้เพื่อนๆ ด้วย

อยากสร้างระบบจริงด้วย Google Sheets?

คู่มือฉบับสมบูรณ์ สอนสร้างระบบ step-by-step ตั้งแต่เริ่มต้นจนใช้งานได้จริง พร้อมเทมเพลตและไฟล์ตัวอย่างครบ

ดาวน์โหลดทันทีหลังชำระเงิน ไม่มีค่าสมัครรายเดือน

อยากได้ระบบแบบนี้ แต่ไม่มีเวลาทำเอง?

รับทำระบบ Google Sheets ตามงานจริงของคุณ — บัญชี สต็อก ลงเวลา แจ้งเตือนเข้า LINE และ Apps Script อัตโนมัติ ทักมาเล่าปัญหาได้เลย ประเมินให้ฟรี

ทัก LINE ปรึกษาฟรี

บทความที่เกี่ยวข้อง

เครื่องมือแนะนำ