Thep Excel

NETWORKDAYS.INTLหาวันทำงาน (กำหนดวันหยุดได้)

คำนวณจำนวนวันทำการระหว่างสองวัน โดยสามารถกำหนดว่าวันไหนเป็นวันหยุดสุดสัปดาห์ได้เอง (มีประโยชน์กับประเทศต่างๆ ที่มีเวลาทำงานแตกต่างกัน เช่น ดูไบอาทิตย์-จันทร์ หรือ มาเลเซีย ศุกร์-เสาร์) รองรับทั้งรูปแบบตัวเลข (1-7, 11-17) และรูปแบบข้อความ (7 ตัวอักษร) สำหรับความยืดหยุ่นสูงสุด

fx
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])

ความนิยม5/10
ความยาก5/10
ประโยชน์8/10

อัปเดต 2 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
start_date Date วันที่เริ่ม
end_date Date วันที่สิ้นสุด
[weekend]ไม่บังคับ Number/Text 1 รหัสหรือข้อความที่ระบุว่าวันไหนเป็นวันหยุดสุดสัปดาห์ (Default = 1 หรือ “0000011” = เสาร์-อาทิตย์)

📌 รูปแบบตัวเลข (Numeric Codes):

🔹 หยุด 2 วัน (Codes 1-7):
1 = เสาร์-อาทิตย์ (Default, ปกติไทย, ตะวันตก) {1,7}
2 = อาทิตย์-จันทร์ {7,1}
3 = จันทร์-อังคาร {1,2}
4 = อังคาร-พุธ {2,3}
5 = พุธ-พฤหัสบดี {3,4}
6 = พฤหัสบดี-ศุกร์ {4,5}
7 = ศุกร์-เสาร์ (ตะวันออกกลาง, ดูไบ, ซาอุดีอาระเบีย) {6,7}

🔹 หยุด 1 วัน (Codes 11-17):
11 = อาทิตย์เท่านั้น {7}
12 = จันทร์เท่านั้น {1}
13 = อังคารเท่านั้น {2}
14 = พุธเท่านั้น {3}
15 = พฤหัสบดีเท่านั้น {4}
16 = ศุกร์เท่านั้น {5}
17 = เสาร์เท่านั้น {6}

📌 รูปแบบข้อความ (String Format – 7 ตัวอักษร):
ระบุวันหยุดเป็น “0” (ทำงาน) หรือ “1” (หยุด) ตามลำดับ จันทร์-อาทิตย์
ตัวอย่าง:
“0000011” = หยุดเสาร์-อาทิตย์ (เทียบเท่า Code 1)
“1000001” = หยุดจันทร์และอาทิตย์ (แยกกัน, หยุดไม่ติดต่อกัน)
“0000111” = หยุดศุกร์-เสาร์-อาทิตย์ (หยุด 3 วัน)
“0010001” = หยุดพุธและอาทิตย์ (custom schedule)

💡 เทคนิค: ใช้ IF หรือ CHOOSE เพื่อเลือก weekend code ตามประเทศ

[holidays]ไม่บังคับ Range/Array – ช่วงวันที่ที่เป็นวันหยุดนักขัตฤกษ์

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

ฟังก์ชัน NETWORKDAYS.INTL ใน Excel ช่วยคำนวณจำนวนวันทำการระหว่างสองวัน โดยกำหนดวันหยุดสุดสัปดาห์ได้เอง ต่างจาก NETWORKDAYS ธรรมดาที่ล็อกวันหยุดไว้ที่เสาร์-อาทิตย์เท่านั้น

ที่มีประโยชน์คือรองรับทั้งรหัสตัวเลข (1-7 สำหรับหยุด 2 วัน, 11-17 สำหรับหยุด 1 วัน) และรูปแบบข้อความ 7 ตัวอักษรที่กำหนดวันหยุดเองแบบไม่ต้องติดกันก็ได้ ทำให้รองรับตารางงานของแทบทุกประเทศและทุกกะการทำงาน

ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยตอนทำโปรเจกต์ที่มีทีมงานอยู่คนละประเทศ เช่น ทีมไทยหยุดเสาร์-อาทิตย์ แต่ทีมดูไบหยุดศุกร์-เสาร์ ต้องคำนวณ deadline หรือ SLA ให้ตรงปฏิทินทำงานจริงของแต่ละฝ่าย ไม่ใช่ปฏิทินไทยอย่างเดียว

Examples

ตัวอย่างที่ 1: นับวันทำงานปกติไทย (หยุดเสาร์-อาทิตย์)NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 1)

นับวันทำงานตั้งแต่ 1-31 มกราคม 2025 โดยกำหนดรหัส 1 (หยุดเสาร์-อาทิตย์) ซึ่งเป็นค่า Default ตัวอักษรเทียบเท่า "0000011" ทั้งเดือน ม.ค. มี 31 วัน เสาร์ 4 วัน อาทิตย์ 4 วัน รวมวันหยุดสุดสัปดาห์ 8 วัน ดังนั้นวันทำงาน = 31 – 8 = 23 วัน

fx
=NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 1)

ผลลัพธ์23
ตัวอย่างที่ 2: นับวันทำงานตะวันออกกลาง (หยุดศุกร์-เสาร์)NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 7)

นับวันทำงานสำหรับโครงการในดูไบหรือซาอุดีอาระเบีย โดยใช้รหัส 7 (หยุดศุกร์-เสาร์) ตัวอักษรเทียบเท่า "0000110" สำหรับ Jan 2025 มี ศุกร์ 5 วัน เสาร์ 4 วัน รวม 9 วัน ดังนั้นวันทำงาน = 31 – 9 = 22 วัน (ต่างจากหยุดเสาร์-อาทิตย์ 1 วัน เพราะเปลี่ยนวันอาทิตย์ที่เคยหยุดให้กลับมาทำงาน แล้วย้ายไปหยุดศุกร์แทน)

fx
=NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 7)

ผลลัพธ์22
ตัวอย่างที่ 3: นับวันทำงาน 6 วัน/สัปดาห์ (หยุดอาทิตย์เท่านั้น)NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 11)

นับวันทำงานโดยหยุดเพียงอาทิตย์เท่านั้น (รหัส 11) ทำงานจันทร์-เสาร์ 6 วัน/สัปดาห์ ตัวอักษรเทียบเท่า "0000001" สำหรับ Jan 2025 มี อาทิตย์ 4 วัน ดังนั้นวันทำงาน = 31 – 4 = 27 วัน เหมาะสำหรับโรงงาน โพสต์, หรือบริษัทที่ทำงานวันอาทิตย์

fx
=NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 11)

ผลลัพธ์27
ตัวอย่างที่ 4: นับวันทำงาน Custom Schedule (หยุดพุธและอาทิตย์แยก)NETWORKDAYS.INTL("2025-01-01", "2025-01-31", "0010001")

นับวันทำงานสำหรับพนักงานที่หยุดพุธและอาทิตย์ (ไม่ติดต่อกัน) โดยใช้รูปแบบข้อความ "0010001" (ตำแหน่งที่ 1=จันทร์ ถึง 7=อาทิตย์ โดย 1=หยุด 0=ทำงาน) ในเดือน ม.ค. 2025 มีพุธ 5 วัน (1, 8, 15, 22, 29) และอาทิตย์ 4 วัน รวมวันหยุด 9 วัน = 31 – 9 = 22 วันทำงาน

fx
=NETWORKDAYS.INTL("2025-01-01", "2025-01-31", "0010001")

ผลลัพธ์22
ตัวอย่างที่ 5: นับวันทำงาน 4 วัน/สัปดาห์ (หยุดศุกร์-เสาร์-อาทิตย์)NETWORKDAYS.INTL("2025-01-01", "2025-01-31", "0000111")

นับวันทำงานสำหรับบริษัททดลอง 4 วัน/สัปดาห์ โดยหยุดศุกร์-เสาร์-อาทิตย์ (3 วัน/สัปดาห์) ใช้รูปแบบข้อความ "0000111" ในเดือน ม.ค. 2025 มี ศุกร์ 5 วัน เสาร์ 4 วัน อาทิตย์ 4 วัน รวม 13 วัน ดังนั้นวันทำงาน = 31 – 13 = 18 วัน

fx
=NETWORKDAYS.INTL("2025-01-01", "2025-01-31", "0000111")

ผลลัพธ์18
ตัวอย่างที่ 6: นับวันทำงาน + วันหยุดนักขัตฤกษ์NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 1, {"2025-01-14","2025-01-20","2025-01-28"})

นับวันทำงานพร้อมหักวันหยุดนักขัตฤกษ์ รหัส 1 (หยุดเสาร์-อาทิตย์) บวกวันหยุด 3 วัน (14 ม.ค., 20 ม.ค., 28 ม.ค.) ผลลัพธ์ = 23 วัน (base) – 3 วัน (holidays) = 20 วัน หมายเหตุ: ถ้าวันหยุดตรงกับวันหยุดสุดสัปดาห์ ระบบจะนับครั้งเดียวเท่านั้น

fx
=NETWORKDAYS.INTL("2025-01-01", "2025-01-31", 1, {"2025-01-14","2025-01-20","2025-01-28"})

ผลลัพธ์20

FAQs

NETWORKDAYS.INTL ต่างจาก NETWORKDAYS ธรรมดายังไง?+

NETWORKDAYS ล็อกวันหยุดสุดสัปดาห์ไว้ที่เสาร์-อาทิตย์เท่านั้น ปรับเปลี่ยนไม่ได้ ส่วน NETWORKDAYS.INTL เพิ่มอาร์กิวเมนต์ [weekend] ให้กำหนดวันหยุดสุดสัปดาห์เองได้ทั้งแบบรหัสตัวเลขและรูปแบบข้อความ เหมาะกับงานข้ามประเทศที่ปฏิทินทำงานไม่เหมือนกัน

ใส่ weekend เป็นข้อความที่ไม่ครบ 7 ตัวอักษรจะเกิดอะไรขึ้น?+

Excel จะคืนค่า #VALUE! ทันที รูปแบบข้อความต้องมีความยาวเป๊ะ 7 ตัวอักษร (แทนวันจันทร์ถึงอาทิตย์ตามลำดับ) และมีแต่เลข 0 กับ 1 เท่านั้น ถ้าใช้ตัวอักษรอื่นหรือความยาวไม่ครบก็ error เหมือนกัน

ใส่รหัส weekend เป็นตัวเลขที่ไม่อยู่ในลิสต์ (เช่น 8 หรือ 20) จะเกิดอะไรขึ้น?+

จะได้ error #NUM! เพราะ Excel รู้จักเฉพาะรหัส 1-7 (หยุด 2 วันติดกัน) และ 11-17 (หยุด 1 วัน) เท่านั้น ถ้าจำรหัสไม่ได้ให้ใช้รูปแบบข้อความ 7 ตัวอักษรแทนจะปลอดภัยกว่า

ถ้า start_date มากกว่า end_date ผลลัพธ์จะเป็นยังไง?+

จะได้ผลลัพธ์เป็นจำนวนลบ เช่น นับจาก 31 ม.ค. ถึง 1 ม.ค. จะได้ค่าติดลบของจำนวนวันทำงานในช่วงนั้น ควรเช็คลำดับวันที่ก่อนเสมอ หรือครอบด้วย ABS ถ้าต้องการค่าสัมบูรณ์

ถ้ากำหนด weekend ให้หยุดครบทั้ง 7 วัน (เช่น "1111111") จะเป็นยังไง?+

จะได้ error #NUM! เพราะไม่มีวันทำงานเหลือให้นับเลยสักวัน ต้องเหลืออย่างน้อย 1 วันในสัปดาห์ที่เป็นวันทำงานเสมอ

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ NETWORKDAYS.INTL จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้NETWORKDAYS.INTLDate and Time
Date and Time (6)
DATE

DATE สร้างวันที่จากตัวเลขปี เดือน วัน แยกกัน รองรับการบวก/ลบเดือนที่เกิน 12 หรือค่าลบ และปรับวันที่ให้อัตโนมัติ เหมาะสำหรับสร้างวันที่จากสูตรหรือใช้ในเงื่อนไข SUMIFS COUNTIFS AVERAGEIFS

DAYS

ส่งกลับจำนวนวันระหว่างวันที่สองวัน (จบ – เริ่ม) คำนวณผลต่างของวันที่อย่างง่ายดาย

NETWORKDAYS

NETWORKDAYS นับจำนวนวันทำงานทั้งหมด (ไม่นับเสาร์-อาทิตย์) ระหว่างวันที่สองวัน และสามารถหักวันหยุดนักขัตฤกษ์ออกได้ เหมาะสำหรับคำนวณระยะเวลาโปรเจกต์, ลาของพนักงาน, หรือเดือนวันทำงาน

TODAY

TODAY คืนค่า Serial Number ของวันที่ปัจจุบันตามเวลาของเครื่องคอมพิวเตอร์ โดยเวลาจะเป็น 0:00:00 เสมอ
.
ที่เจ๋งคือฟังก์ชันนี้เป็นประเภท Volatile ที่จะคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงใดๆ ในชีท ที่ต้องระวังคือไม่เหมาะกับการบันทึกวันที่ทำรายการ (Transaction Date) ที่ต้องการให้คงที่ครับ เพราะมันจะเปลี่ยนทุกครั้งที่เปิดไฟล์

WORKDAY

WORKDAY คำนวณวันที่ทำงานที่อยู่ถัดไป/ย้อนหลังจากวันที่เริ่มต้น โดยหักวันหยุดสุดสัปดาห์ (เสาร์-อาทิตย์) และวันหยุดพิเศษที่ระบุออก

WORKDAY.INTL

คำนวณหาวันที่หลังจากนับไป n วันทำการ โดยสามารถกำหนดว่าวันไหนเป็นวันหยุดสุดสัปดาห์ได้ (เหมาะสำหรับการค้นหาวันกำหนด deadline, วันนัดหมาย, วันส่งมอบสินค้า ในประเทศต่างๆ ที่มีวันทำงานแตกต่างกัน) รองรับทั้งรูปแบบตัวเลข (1-7, 11-17) และรูปแบบข้อความ (7 ตัวอักษร) สำหรับความยืดหยุ่นสูงสุด

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่