DAYS นับจำนวนวันระหว่างสองวันที่ ตอบคำถามแบบ “เหลืออีกกี่วันจะถึงกำหนด” หรือ “เลยกำหนดมากี่วันแล้ว” จริงอยู่ว่าเอาวันที่มาลบกันตรงๆ ก็ได้ผลเหมือนกัน แต่ DAYS อ่านเข้าใจง่ายกว่าและไม่เจอปัญหาผลลัพธ์กลายเป็นรูปแบบวันที่
รูปแบบของสูตร DAYS
=DAYS(วันสิ้นสุด, วันเริ่มต้น)
ระวังลำดับ: ใส่วันสิ้นสุดก่อน วันเริ่มต้นทีหลัง (สลับกับที่เราพูดในภาษาไทย) ถ้าสลับลำดับ ผลจะติดลบ
ตัวอย่างที่ 1: เหลืออีกกี่วันจะถึงกำหนดส่ง
=DAYS(B2,TODAY())| A | B | C | |
|---|---|---|---|
| 1 | งาน | กำหนดส่ง | เหลือ (วัน) |
| 2 | รายงานประจำเดือน | 15/09/2026 | 17 |
| 3 | ต่อทะเบียนรถ | 30/09/2026 | 32 |
สมมติวันนี้คือ 29 ส.ค. 2026 TODAY() จะให้วันที่ปัจจุบันอัตโนมัติ DAYS จึงนับถอยหลังให้เองทุกวันที่เปิดไฟล์
ตัวอย่างที่ 2: DAYS ต่างจากการลบวันที่ตรงๆ
=B2-A2| A | B | C | |
|---|---|---|---|
| 1 | เช็คอิน | เช็คเอาต์ | จำนวนคืน |
| 2 | 01/08/2026 | 05/08/2026 | 04/01/1900 |
| 3 | 01/08/2026 | 05/08/2026 | 4 |
แถวที่ 2 =B2-A2 คำนวณได้ 4 แต่ Excel ดันจัดรูปแบบเซลล์เป็นวันที่ตามเซลล์ต้นทาง เลยโชว์เป็น 04/01/1900 ต้องไปเปลี่ยนรูปแบบเซลล์เป็น General หรือ Number เอง ส่วนแถวที่ 3 ใช้ =DAYS(B3,A3) ได้ 4 เป็นตัวเลขล้วนตั้งแต่แรก ไม่ต้องแก้รูปแบบ
ตัวอย่างที่ 3: เลยกำหนดกี่วัน
=IF(DAYS(TODAY(),B2)>0,DAYS(TODAY(),B2)&" วัน","ยังไม่ครบกำหนด")| A | B | C | |
|---|---|---|---|
| 1 | ใบแจ้งหนี้ | ครบกำหนดชำระ | สถานะ |
| 2 | INV-001 | 20/08/2026 | 9 วัน |
| 3 | INV-002 | 10/09/2026 | ยังไม่ครบกำหนด |
คราวนี้สลับลำดับเป็น DAYS(TODAY(), B2) เพื่อให้ค่าบวกหมายถึง “เลยมาแล้วกี่วัน” แล้วใช้ IF แยกกรณีที่ยังไม่ถึงกำหนด
เลือกใช้สูตรวันที่ให้ถูกงาน
| อยากได้ | ใช้สูตร |
| จำนวนวันแบบนับทุกวัน | DAYS |
| จำนวนวันทำการ (ตัดเสาร์-อาทิตย์ วันหยุด) | NETWORKDAYS.INTL |
| อายุเป็นปี/เดือน หรือช่วงห่างแบบละเอียด | DATEDIF |
| วันที่ในอนาคตหลังจากกี่วันทำการ | WORKDAY |
ข้อควรรู้
- รับข้อความที่เป็นวันที่ได้ —
=DAYS("2026-12-31","2026-01-01")ได้ 364 - ไม่รวมวันเริ่มต้น — DAYS นับ “ช่วงห่าง” ถ้าอยากได้จำนวนวันแบบรวมหัวรวมท้าย (เช่น จองห้อง 1–5 ส.ค. = 5 วัน) ให้
+1 - ปีบัญชีแบบ 360 วัน — งานการเงินบางแบบใช้
DAYS360ที่สมมติทุกเดือนมี 30 วัน