สารบัญ
บทช่วยสอนสั้นๆ นี้อธิบายการใช้ฟังก์ชัน Excel NETWORKDAYS และ WORKDAY เพื่อคำนวณวันทำงานด้วยพารามิเตอร์วันหยุดสุดสัปดาห์และวันหยุดที่กำหนดเอง
Microsoft Excel มีฟังก์ชันสองฟังก์ชันที่ออกแบบมาเป็นพิเศษสำหรับการคำนวณวันทำงาน - วันทำงาน และ NETWORKDAYS
ฟังก์ชัน วันทำงาน ส่งกลับวันที่ N วันทำการในอนาคตหรือในอดีต และคุณสามารถใช้เพื่อเพิ่มหรือลบวันทำงานในวันที่กำหนด
การใช้ฟังก์ชัน NETWORKDAYS คุณสามารถคำนวณจำนวนวันทำงานระหว่างวันที่สองวันที่คุณระบุได้
ใน Excel 2010 และสูงกว่า การแก้ไขที่มีประสิทธิภาพมากขึ้นของฟังก์ชันที่กล่าวมาข้างต้นจะพร้อมใช้งาน WORKDAY.INTL และ NETWORKDAYS.INTL ซึ่งให้คุณกำหนดได้ว่าวันไหนและกี่วันเป็นวันหยุดสุดสัปดาห์
และตอนนี้ มาดูแต่ละฟังก์ชันให้ละเอียดยิ่งขึ้นและดูว่าคุณสามารถใช้คำนวณวันทำงานใน แผ่นงาน Excel ของคุณ
ฟังก์ชัน Excel WORKDAY
ฟังก์ชัน Excel WORKDAY ส่งกลับวันที่ที่เป็นจำนวนวันทำงานที่กำหนด ก่อนหรือก่อนวันที่เริ่มต้น ไม่รวมวันหยุดสุดสัปดาห์และวันหยุดใดๆ ที่คุณระบุ
ฟังก์ชัน WORKDAY มีวัตถุประสงค์เพื่อคำนวณวันทำงาน เหตุการณ์สำคัญ และวันที่ครบกำหนดตามปฏิทินการทำงานมาตรฐาน โดยวันเสาร์และวันอาทิตย์จะเป็นวันหยุดสุดสัปดาห์
วันทำงานเป็นฟังก์ชันที่มีอยู่แล้วภายใน Excel 2007 - 365 ในเวอร์ชันก่อนหน้านี้ คุณต้องเปิดใช้งานการวิเคราะห์สิ่งที่จำเป็นชุดเล็ก ๆ และได้รับส่วนที่เหลือ ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบในบล็อกของเราในสัปดาห์หน้า!
ToolPak.เมื่อใช้ WORKDAY ใน Excel คุณต้องป้อนอาร์กิวเมนต์ต่อไปนี้:
WORKDAY(start_date, days, [holidays])อาร์กิวเมนต์ 2 ตัวแรกจำเป็นและอาร์กิวเมนต์สุดท้ายเป็นตัวเลือก :
- วันที่เริ่มต้น - วันที่เริ่มนับวันทำงาน
- วัน - จำนวนวันทำงานที่จะบวก / ลบ จาก start_date ตัวเลขบวกส่งคืนวันที่ในอนาคต ตัวเลขลบส่งคืนวันที่ในอดีต
- วันหยุด - รายการทางเลือกของวันที่ไม่ควรนับเป็นวันทำการ นี่อาจเป็นช่วงของเซลล์ที่มีวันที่ที่คุณต้องการแยกออกจากการคำนวณ หรือเป็นค่าคงที่อาร์เรย์ของเลขลำดับที่แสดงวันที่ก็ได้
ตอนนี้คุณทราบข้อมูลพื้นฐานแล้ว มาดูกันว่าคุณ สามารถใช้ฟังก์ชัน WORKDAY ในแผ่นงาน Excel ของคุณได้
วิธีใช้ WORKDAY เพื่อเพิ่ม/ลบวันทำการเป็นวันที่
ในการคำนวณวันทำงานใน Excel ให้ปฏิบัติตามกฎง่ายๆ เหล่านี้:
<6สมมติว่าคุณมีวันที่เริ่มต้นในเซลล์ A2 รายการวันหยุดในเซลล์ B2:B5 และคุณต้องการค้นหา วันที่ 30 วันทำการในอนาคตและที่ผ่านมา คุณสามารถทำได้โดยใช้สูตรต่อไปนี้:
เพื่อเพิ่มวันทำงาน 30 วันในวันที่เริ่มต้น โดยไม่รวมวันหยุดในB2:B5:
=WORKDAY(A2, 30, B2:B5)
เพื่อลบ 30 วันทำการจากวันที่เริ่มต้น ไม่รวมวันหยุดใน B2:B5:
=WORKDAY(A2, -30, B2:B5)
เพื่อคำนวณวันทำงานตาม ใน วันที่ปัจจุบัน ให้ใช้ฟังก์ชัน TODAY() เป็นวันที่เริ่มต้น:
หากต้องการเพิ่มวันทำงาน 30 วันให้เป็นวันที่ของวันนี้:
=WORKDAY(TODAY(), 30)
ถึง ลบ 30 วันทำการจากวันนี้:
=WORKDAY(TODAY(), -30)
หากต้องการระบุวันที่เริ่มต้นโดยตรงกับสูตร ให้ใช้ฟังก์ชัน DATE:
=WORKDAY(DATE(2015,5,6), 30)
The ภาพหน้าจอต่อไปนี้แสดงผลลัพธ์ของสูตรวันทำงานทั้งหมดเหล่านี้และอีกสองสามสูตร:
และตามปกติ คุณสามารถป้อนจำนวนวันทำงานเพื่อเพิ่ม / ลบออกจากวันที่เริ่มต้นใน บางเซลล์ แล้วอ้างอิงถึงเซลล์นั้นในสูตรของคุณ ตัวอย่างเช่น:
=WORKDAY(A2, C2)
โดยที่ A2 คือวันที่เริ่มต้น และ C2 คือจำนวนวันที่ไม่ใช่วันหยุดสุดสัปดาห์ที่อยู่หลัง (ตัวเลขที่เป็นลบ) หรือก่อนหน้า (ตัวเลขที่เป็นบวก) วันที่เริ่มต้นที่ไม่มีวันหยุด เพื่อยกเว้น
เคล็ดลับ ใน Excel 365 และ 2021 คุณสามารถใช้ WORKDAY ร่วมกับ SEQUENCE เพื่อสร้างชุดวันทำงาน
ฟังก์ชัน Excel WORKDAY.INTL
WORKDAY.INTL เป็นการปรับเปลี่ยน WORKDAY ที่มีประสิทธิภาพมากขึ้น ฟังก์ชันที่ทำงานร่วมกับ พารามิเตอร์วันหยุดสุดสัปดาห์ที่กำหนดเอง เช่นเดียวกับ WORKDAY จะส่งกลับวันที่ที่เป็นจำนวนวันทำงานที่ระบุในอนาคตหรือในอดีต แต่ให้คุณกำหนดได้ว่าวันใดในสัปดาห์ที่ควรถือเป็นวันหยุดสุดสัปดาห์
ฟังก์ชัน WORKDAY.INTL ได้รับการแนะนำในExcel 2010 และรุ่นอื่นๆ ไม่พร้อมใช้งานใน Excel รุ่นก่อนหน้า
ไวยากรณ์ของฟังก์ชัน Excel WORKDAY.INTL เป็นดังนี้:
WORKDAY.INTL(start_date, days, [weekend], [holidays])จำเป็นต้องมีอาร์กิวเมนต์สองรายการแรกและคล้ายกับของ WORKDAY:
วันที่เริ่มต้น - วันที่เริ่มต้น
วัน - จำนวนของ วันทำการก่อน (ค่าลบ) หรือหลัง (ค่าบวก) วันที่เริ่มต้น หากระบุอาร์กิวเมนต์ days
เป็นเลขฐานสิบ อาร์กิวเมนต์จะถูกตัดเป็นจำนวนเต็ม
อาร์กิวเมนต์สองตัวสุดท้ายเป็นตัวเลือก:
วันหยุดสุดสัปดาห์ - ระบุว่าวันธรรมดาใดควรเป็นวันธรรมดา นับเป็นวันหยุดสุดสัปดาห์ ซึ่งอาจเป็นตัวเลขหรือสตริงก็ได้ ดังที่แสดงด้านล่าง
หมายเลข | วันสุดสัปดาห์ |
1 หรือละไว้ | วันเสาร์ อาทิตย์ |
2 | วันอาทิตย์ วันจันทร์ |
3 | วันจันทร์ วันอังคาร |
4 | วันอังคาร วันพุธ |
5 | วันพุธ วันพฤหัสบดี |
6 | วันพฤหัสบดี วันศุกร์ |
7 | วันศุกร์ วันเสาร์ |
11 | วันอาทิตย์เท่านั้น |
12 | วันจันทร์เท่านั้น |
13 | เฉพาะวันอังคาร |
14 | เฉพาะวันพุธ |
15 | วันพฤหัสบดีเท่านั้น |
16 | วันศุกร์เท่านั้น |
17 | วันเสาร์เท่านั้น |
สตริงวันหยุดสุดสัปดาห์ - ชุดของเลข 0 เจ็ดตัวและเลข 1 เจ็ดตัวที่แทนเจ็ดวันในสัปดาห์เริ่มต้นด้วยวันจันทร์ 1 หมายถึงวันที่ไม่ทำงาน และ 0 หมายถึงวันทำงาน ตัวอย่างเช่น:
- "0000011" - วันเสาร์และวันอาทิตย์เป็นวันหยุดสุดสัปดาห์
- "1000001" - วันจันทร์และวันอาทิตย์เป็นวันหยุดสุดสัปดาห์
ตั้งแต่แรกเห็น สตริงวันหยุดสุดสัปดาห์อาจดูไม่จำเป็น แต่โดยส่วนตัวแล้วฉันชอบวิธีนี้มากกว่าเพราะคุณสามารถสร้างสตริงวันหยุดสุดสัปดาห์ได้ทันทีโดยไม่ต้องจำตัวเลขใดๆ
วันหยุด - รายการวันที่ที่เป็นตัวเลือก คุณต้องการแยกออกจากปฏิทินวันทำงาน นี่อาจเป็นช่วงของเซลล์ที่มีวันที่ หรือค่าคงที่อาร์เรย์ของค่าซีเรียลที่แสดงวันที่เหล่านั้น
การใช้ WORKDAY.INTL ใน Excel - ตัวอย่างสูตร
ปริมาณที่ค่อนข้างมาก ทฤษฎีที่เราเพิ่งพูดถึงอาจดูค่อนข้างซับซ้อนและสับสน แต่การลองใช้สูตรจะทำให้สิ่งต่างๆ ง่ายขึ้น
ในชุดข้อมูลของเรา โดยมีวันที่เริ่มต้นในเซลล์ A2 และรายการวันหยุดใน A5 :A8 ลองคำนวณวันทำงานด้วยวันหยุดสุดสัปดาห์ที่กำหนดเอง
หากต้องการ เพิ่ม 30 วันทำงานไปยังวันที่เริ่มต้น วันศุกร์และวันเสาร์จะนับเป็นวันหยุดสุดสัปดาห์และวันหยุดใน A5:A8 ไม่รวม:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
หรือ
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
ถึง ลบ 30 วันทำการจากวันที่เริ่มต้น ไม่รวมวันอาทิตย์และวันจันทร์เป็นวันหยุดสุดสัปดาห์และวันหยุดใน A5:A8 :
=WORKDAY.INTL(A2, -30, 2, A5:A8)
หรือ
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
หากต้องการเพิ่ม 10 วันทำการใน วันที่ปัจจุบัน วันอาทิตย์จะเป็นวันหยุดสุดสัปดาห์เพียงวันเดียว ไม่วันหยุด:
=WORKDAY.INTL(TODAY(), 10, 11)
หรือ
=WORKDAY.INTL(A2, 10, "0000001")
ในแผ่นงาน Excel สูตรอาจมีลักษณะดังนี้:
<14
หมายเหตุ ทั้งฟังก์ชัน Excel WORKDAY และ WORKDAY.INTL จะส่งกลับเลขลำดับที่แสดงวันที่ หากต้องการให้ตัวเลขเหล่านี้แสดงเป็นวันที่ ให้เลือกเซลล์ที่มีตัวเลขแล้วกด Ctrl+1 เพื่อเปิดกล่องโต้ตอบ จัดรูปแบบเซลล์ บนแท็บ ตัวเลข เลือก วันที่ ในรายการ ประเภท และเลือกรูปแบบวันที่ที่คุณต้องการ สำหรับขั้นตอนโดยละเอียด โปรดดูวิธีเปลี่ยนรูปแบบวันที่ใน Excel
ข้อผิดพลาด Excel WORKDAY และ WORKDAY.INTL
หากสูตร Excel WORKDAY หรือ WORKDAY.INTL ส่งกลับข้อผิดพลาด สาเหตุน่าจะมาจากข้อใดข้อหนึ่งต่อไปนี้:
# NUM! เกิดข้อผิดพลาดหาก:
- อาร์กิวเมนต์
start_date
และdays
รวมกันส่งผลให้วันที่ไม่ถูกต้อง หรืออาร์กิวเมนต์ -
weekend
ในฟังก์ชัน WORKDAY.INTL ไม่ถูกต้อง .
#VALUE! เกิดข้อผิดพลาดหาก:
-
start_date
หรือค่าใดๆ ในholidays
ไม่ใช่วันที่ที่ถูกต้อง หรือ -
days
อาร์กิวเมนต์ไม่ใช่ตัวเลข
ฟังก์ชัน NETWORKDAYS ของ Excel
ฟังก์ชัน NETWORKDAYS ใน Excel จะส่งกลับจำนวนวันทำงานระหว่างวันที่สองวัน ยกเว้นวันหยุดสุดสัปดาห์ และวันหยุดที่คุณเลือก ระบุ
ไวยากรณ์ของ Excel NETWORKDAYS ใช้งานง่ายและจดจำง่าย:
NETWORKDAYS(start_date, end_date, [holidays])อาร์กิวเมนต์สองรายการแรกเป็นข้อบังคับ และรายการที่สามคือไม่บังคับ:
- วันที่เริ่มต้น - วันที่เริ่มต้นที่จะเริ่มนับวันทำการ
- วันที่สิ้นสุด - วันสิ้นสุดระยะเวลาที่ คุณกำลังนับวันทำงาน
ทั้งวันที่เริ่มต้นและวันที่สิ้นสุดจะถูกนับในจำนวนวันทำงานที่ส่งคืน
- วันหยุด - รายการที่ไม่บังคับ ของวันหยุดที่ไม่ควรนับเป็นวันทำงาน
วิธีใช้ NETWORKDAYS ใน Excel - ตัวอย่างสูตร
สมมติว่าคุณมีรายการวันหยุดในเซลล์ A2:A5 วันที่เริ่มต้นในคอลัมน์ B วันที่สิ้นสุดในคอลัมน์ C และคุณต้องการทราบจำนวนวันทำงานในระหว่างวันที่เหล่านี้ สูตร NETWORKDAYS ที่เหมาะสมนั้นหาได้ง่าย:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
โปรดสังเกตว่าฟังก์ชัน NETWORKDAYS ของ Excel จะส่งกลับค่าบวกเมื่อวันที่เริ่มต้นน้อยกว่าวันที่สิ้นสุด และให้ค่าลบหาก วันที่สิ้นสุดเป็นวันที่ใหม่กว่าวันที่เริ่มต้น (ตามแถวที่ 5):
ฟังก์ชัน Excel NETWORKDAYS.INTL
เช่นเดียวกับ NETWORKDAYS ฟังก์ชัน NETWORKDAYS.INTL ของ Excel คำนวณจำนวนวันทำงานระหว่างวันที่สองวัน แต่ให้คุณระบุได้ว่าวันใดควรนับเป็นวันหยุดสุดสัปดาห์
ไวยากรณ์ของฟังก์ชัน NETWORKDAYS.INTL คล้ายกับ NETWORKDAYS' มาก ยกเว้นว่าจะมี [weekend ] พารามิเตอร์ที่ระบุว่าวันใดในสัปดาห์ที่ควรนับเป็นวันหยุดสุดสัปดาห์
NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] ) อาร์กิวเมนต์ weekend
สามารถยอมรับได้ทั้งตัวเลขหรือสตริง ตัวเลขและสตริงวันหยุดสุดสัปดาห์จะเหมือนกับในพารามิเตอร์ weekend
ของฟังก์ชัน WORKDAY.INTL
ฟังก์ชัน NETWORKDAYS.INTL มีอยู่ใน Excel 365 - 2010
การใช้ NETWORKDAYS.INTL ใน Excel - ตัวอย่างสูตร
ใช้รายการวันที่จากตัวอย่างที่แล้ว ลองคำนวณจำนวนวันทำงานระหว่างวันที่สองวันโดยให้วันอาทิตย์เป็นวันสุดสัปดาห์เท่านั้น สำหรับสิ่งนี้ คุณพิมพ์หมายเลข 11 ในอาร์กิวเมนต์ weekend
ของสูตร NETWORKDAYS.INTL หรือสร้างสตริงที่มี 0 หกตัวและ 1 หนึ่งตัว ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Or
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
ภาพหน้าจอต่อไปนี้พิสูจน์ว่าสูตรทั้งสองให้ผลลัพธ์ที่เหมือนกันทุกประการ
วิธีเน้นวันทำงานใน Excel
การใช้ ฟังก์ชัน WORKDAY และ WORKDAY.INTL ไม่เพียงแต่คำนวณวันทำงานในเวิร์กชีต Excel ของคุณเท่านั้น แต่ยังสามารถไฮไลต์ได้ตามที่ตรรกะทางธุรกิจของคุณต้องการ สำหรับสิ่งนี้ คุณต้องสร้างกฎการจัดรูปแบบตามเงื่อนไขด้วยสูตร WORKDAY หรือ WORKDAY.INTL
ตัวอย่างเช่น ในรายการวันที่ในคอลัมน์ B ให้เน้นเฉพาะวันที่ในอนาคตซึ่งอยู่ภายใน 15 วันทำการนับจากวันที่วันนี้ ไม่รวมวันหยุดสองวันในเซลล์ A2:A3 สูตรที่ชัดเจนที่สุดที่อยู่ในใจมีดังนี้:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))
ส่วนแรกของการทดสอบเชิงตรรกะจะตัดวันที่ในอดีตออก เช่น คุณตรวจสอบว่าวันที่เท่ากับหรือมากกว่าวันนี้หรือไม่ : $B2>วันนี้() และในส่วนที่สอง คุณยืนยันไม่ว่าวันที่ในอนาคตจะไม่เกิน 15 วันธรรมดา โดยไม่รวมวันหยุดสุดสัปดาห์และวันหยุดที่ระบุ: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
สูตรดูเหมือนถูกต้อง แต่เมื่อคุณสร้างกฎตามนั้น คุณจะรู้ว่าเน้นผิด วันที่:
ลองคิดดูว่าเหตุใดจึงเกิดขึ้น ปัญหาไม่ได้อยู่ที่ฟังก์ชัน WORKDAY อย่างที่บางคนอาจสรุปได้ ฟังก์ชั่นนั้นถูกต้อง แต่... จริงๆแล้วมันใช้ทำอะไร? จะส่งกลับวันที่ 15 วันทำการนับจากนี้ ไม่รวมวันหยุดสุดสัปดาห์ (วันเสาร์และวันอาทิตย์) และวันหยุดในเซลล์ A2:A3
เอาล่ะ กฎตามสูตรนี้ใช้ทำอะไร โดยเน้นวันที่ทั้งหมดที่เท่ากับหรือมากกว่าวันนี้และน้อยกว่าวันที่ส่งคืนโดยฟังก์ชัน WORKDAY คุณเห็น? วันที่ทั้งหมด! หากคุณไม่ต้องการระบายสีวันหยุดสุดสัปดาห์และวันหยุดนักขัตฤกษ์ คุณต้องบอก Excel อย่างชัดเจนว่าอย่าทำ ดังนั้นเราจึงเพิ่มเงื่อนไขอีกสองเงื่อนไขในสูตรของเรา:
- ฟังก์ชัน WEEKDAY เพื่อไม่รวมวันหยุดสุดสัปดาห์: WEEKDAY($B2, 2)<6
- ฟังก์ชัน COUNTIF เพื่อไม่รวมวันหยุด : COUNTIF($A$2:$A$3, $B2)=0
ดังที่แสดงในภาพหน้าจอด้านล่าง สูตรที่ปรับปรุงใหม่ทำงานได้อย่างสมบูรณ์:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
อย่างที่คุณเห็น ฟังก์ชัน WORKDAY และ WORKDAY.INTL ทำให้การคำนวณวันทำงานใน Excel ทำได้ง่ายและรวดเร็ว แน่นอน สูตรในชีวิตจริงของคุณน่าจะซับซ้อนกว่านี้ แต่การรู้พื้นฐานจะช่วยได้มาก เพราะคุณจำได้แค่