เวลาคิดจำนวนวันลา วันทำงานในเดือน หรือกำหนดส่งงานแบบ “อีก 10 วันทำการ” เราต้องตัดเสาร์-อาทิตย์ และวันหยุดนักขัตฤกษ์ออก สูตร NETWORKDAYS ทำให้อัตโนมัติ แค่เตรียมตารางวันหยุดไทยไว้ให้มันอ่าน บทความนี้จะสอนตั้งแต่สร้างตารางวันหยุด ไปจนถึงสูตรที่ใช้ได้จริงในงานเงินเดือนและงานวางแผน
รูปแบบของสูตร
=NETWORKDAYS(วันเริ่ม, วันสิ้นสุด, [ช่วงวันหยุด]) — นับวันจันทร์–ศุกร์ แล้วหักวันในลิสต์วันหยุด
=NETWORKDAYS.INTL(วันเริ่ม, วันสิ้นสุด, [รหัสวันหยุดสุดสัปดาห์], [ช่วงวันหยุด]) — กำหนดเองได้ว่าวันไหนคือวันหยุดสุดสัปดาห์
ขั้นแรก: สร้างตารางวันหยุด
ใส่วันหยุดราชการลงคอลัมน์เดียว (แนะนำให้ทำเป็น ตาราง / Table ชื่อ Holiday จะได้ขยายเองเมื่อเพิ่มปี) ตัวอย่างวันหยุดคงที่
| วันที่ | วันหยุด |
| 1 ม.ค. 2026 | วันขึ้นปีใหม่ |
| 13–15 เม.ย. 2026 | สงกรานต์ |
| 5 ธ.ค. 2026 | วันคล้ายวันพระราชสมภพ ร.9 / วันพ่อ |
| 10 ธ.ค. 2026 | วันรัฐธรรมนูญ |
| 31 ธ.ค. 2026 | วันสิ้นปี |
วันหยุดที่อิงปฏิทินจันทรคติ (มาฆบูชา วิสาขบูชา อาสาฬหบูชา เข้าพรรษา) และวันหยุดชดเชย ต้องดูจากประกาศสำนักนายกรัฐมนตรีของแต่ละปี แล้วเพิ่มลงตารางเอง — ใส่วันหยุดชดเชยเป็นอีกแถวได้เลย
ตัวอย่างที่ 1: นับวันลาที่ใช้ไป (ไม่รวมวันหยุด)
=NETWORKDAYS(A2, B2, Holiday[วันที่])| A | B | C | |
|---|---|---|---|
| 1 | ลาตั้งแต่ | ถึงวันที่ | วันลา (วันทำการ) |
| 2 | 10/04/2026 | 17/04/2026 | 3 |
ช่วง 10–17 เม.ย. มี 8 วัน หัก เสาร์-อาทิตย์ (11–12 เม.ย.) และสงกรานต์ (13–15 เม.ย.) เหลือวันลาจริง 3 วัน NETWORKDAYS นับรวมทั้งวันเริ่มและวันสิ้นสุด
ตัวอย่างที่ 2: จำนวนวันทำงานในเดือน (สำหรับคิดเงินเดือน)
=NETWORKDAYS(EOMONTH(A2,-1)+1, EOMONTH(A2,0), Holiday[วันที่])| A | B | |
|---|---|---|
| 1 | เดือนอ้างอิง | วันทำงาน |
| 2 | 01/04/2026 | 19 |
EOMONTH หาวันสิ้นเดือน และ EOMONTH(A2,-1)+1 คือวันแรกของเดือน เมษายน 2026 มี 30 วัน หักเสาร์-อาทิตย์และสงกรานต์ เหลือประมาณ 19 วันทำงาน
ตัวอย่างที่ 3: กำหนดส่งงาน “อีก 10 วันทำการ”
=WORKDAY(A2, 10, Holiday[วันที่])| A | B | |
|---|---|---|
| 1 | วันที่รับงาน | ครบกำหนด |
| 2 | 08/04/2026 | 27/04/2026 |
WORKDAY นับไปข้างหน้า 10 วันทำการจากวันรับงาน โดยข้ามเสาร์-อาทิตย์และวันหยุดในตาราง
ตัวอย่างที่ 4: ร้านเปิดจันทร์–เสาร์ (หยุดแค่อาทิตย์)
=NETWORKDAYS.INTL(A2, B2, "0000001", Holiday[วันที่])| A | B | C | |
|---|---|---|---|
| 1 | ตั้งแต่ | ถึง | วันเปิดร้าน |
| 2 | 01/04/2026 | 30/04/2026 | 23 |
รหัส "0000001" คือ 7 หลักแทนวันจันทร์ถึงอาทิตย์ เลข 1 = หยุด ในที่นี้หยุดแค่วันอาทิตย์ ดูรหัสรูปแบบอื่นได้ที่ NETWORKDAYS.INTL
ข้อควรรู้
- อัปเดตตารางทุกปี — วันหยุดจันทรคติและวันหยุดชดเชยเปลี่ยนทุกปี ควรใส่ล่วงหน้าทั้งปีตามประกาศราชการ
- วันหยุดนอกช่วงที่คำนวณไม่มีผล — ใส่วันหยุดทั้งปีไว้ในตารางได้เลย สูตรจะหยิบเฉพาะที่อยู่ในช่วงวันเริ่ม-สิ้นสุด
- อยากได้จำนวนวันแบบนับทุกวัน — ใช้ DAYS แทน
- ถ้าไม่ทำเป็น Table — อ้างอิงช่วงแบบล็อก เช่น
$H$2:$H$40ด้วยหลัก Absolute Reference