ฟังก์ชันวันที่และเวลา — DATEDIF, EOMONTH, WORKDAY, NETWORKDAYS

1. วันที่ใน Excel ไม่ใช่แค่ตัวเลขธรรมดา

บทความที่แล้ว เราเพิ่งไขความลับของฟังก์ชันข้อความกันไป คราวนี้ผมจะพาคุณมาดูอีกมิติหนึ่งที่คนทำงานไทยเจอทุกวัน นั่นคือ วันที่และเวลา ครับ

ลองนึกภาพดูนะครับ อยากรู้ว่าพนักงานคนนี้อายุงานกี่ปีแล้ว อยากรู้ว่าบิลครบกำหนดชำระตรงกับสิ้นเดือนพอดีหรือเปล่า หรืออยากรู้ว่างานนี้ถ้าเริ่มวันจันทร์แล้วต้องใช้เวลากี่วันทำการถึงจะเสร็จก่อนเสาร์-อาทิตย์ งานพวกนี้ล้วนแต่นับวันเป็นหลัก แต่ถ้าคุณนับด้วยมือหรือคิดในใจทีละแถว รับรองพลาดแน่ และยิ่งข้อมูลเยอะก็ยิ่งพัง

ที่สำคัญคือ Excel ไม่ได้มองวันที่เป็นแค่ตัวหนังสือ แต่มันแปลงวันที่ทุกวันให้เป็น serial number — ตัวเลขที่ใช้คำนวณได้จริง เช่น 1 มกราคม 1900 คือเลข 1 และเพิ่มขึ้นวันละ 1 ตัวเลขนี้แหละที่ทำให้เราบวก ลบ เปรียบเทียบวันได้ดั่งตัวเลขทั่วๆ ไป

ชุดฟังก์ชันที่เราจะใช้กันวันนี้มีดังนี้ครับ

  • TODAY / NOW เรียกวันที่และเวลาปัจจุบัน
  • DATEDIF นับอายุเป็นปี เดือน วัน
  • EOMONTH หาวันสิ้นเดือน
  • EDATE เลื่อนเดือนไปข้างหน้าหรือข้างหลัง
  • WORKDAY บวกวันทำการ ข้ามเสาร์-อาทิตย์
  • NETWORKDAYS นับจำนวนวันทำการระหว่างสองวัน
  • YEAR / MONTH / DAY / DATE แยกและประกอบวันเดือนปี

ให้เปิดไฟล์ตัวอย่าง แล้วทำตามไปด้วยกันจะดีมากเลยครับ ผมจัดไว้ 3 ชีท เริ่มจากวางแผนงานด้วย WORKDAY ไปนับอายุงานด้วย DATEDIF และปิดท้ายที่งวดบิลกับ EOMONTH ผมเตรียมตัวอย่างให้ครบทั้งการบวกวัน การนับวันระหว่างช่วง และการจัดการงวด เพื่อให้คุณเห็นภาพการประยุกต์ใช้งานจริงในแต่ละสายงาน

💡 เคล็ดลับ: ก่อนใช้ฟังก์ชันวันที่ อย่าลืมตั้ง Format Cells ของเซลล์ปลายทางเป็นวันที่ให้ถูกต้อง (เช่น dd/mm/yyyy) ไม่งั้นคุณจะเห็นตัวเลขยาวๆ อย่าง 46000 โผล่มาทั้งที่มันคือวันที่จริงๆ ครับ

📌 ข้อควรจำ: วันที่ในตัวอย่างนี้เป็นปี ค.ศ. 2026 ตามที่ใช้ในไฟล์จริง ถ้าคุณจะเอาไปใช้กับปีอื่น แค่แก้ค่าวันเริ่มให้ตรง ก็ได้คำตอบที่ถูกต้องเองครับ

2. WORKDAY — บวกวันทำการแบบข้ามเสาร์-อาทิตย์

เริ่มที่ชีท WORKDAY NETWORKDAYS ครับ ครึ่งบนคือตารางวางแผนงานที่ต้องรู้ว่าถ้าเริ่มงานวันนี้ จะกำหนดส่งวันไหนโดยข้ามเสาร์-อาทิตย์

โครงสร้างคือแต่ละงานมี วันที่เริ่ม, จำนวนวันทำการที่ต้องใช้ และให้ Excel คำนวณ วันกำหนดส่ง ให้อัตโนมัติด้วยสูตร

=WORKDAY(B3,C3-1)

WORKDAY รับสองพารามิเตอร์หลัก คือวันเริ่มต้นกับจำนวนวันทำการที่อยากบวกไป แล้วมันจะข้ามวันเสาร์-อาทิตย์ให้เลย ที่ผมใส่ C3-1 เพราะอยากให้วันเริ่มนับเป็นวันทำงานวันแรกด้วย เช่น งาน A เริ่มจันทร์ที่ 5 มกราคม 2026 ใช้ 10 วันทำการ ผลลัพธ์คือศุกร์ที่ 16 มกราคม 2026 พอดี

คอลัมน์สุดท้ายผมเพิ่มสูตรเช็คว่าวันที่ได้ตรงกับเสาร์-อาทิตย์หรือเปล่า

=IF(WEEKDAY(D3,2)>5,"เสาร์/อาทิตย์","วันทำการ")

WEEKDAY โหมดตัวที่ 2 คือการนับจันทร์เป็น 1 ไปจนถึงอาทิตย์เป็น 7 ถ้าเลขเกิน 5 แปลว่าเสาร์หรืออาทิตย์ ใช้คู่กันเป็นการการันตีว่าวันกำหนดส่งไม่ตกวันหยุดสุดสัปดาห์

งานวันที่เริ่มวันทำการวันกำหนดส่ง
งาน A ทำรายงาน05/01/20261016/01/2026
งาน B ติดตั้งระบบ19/01/2026828/01/2026
งาน C ตรวจ QA02/02/20261520/02/2026
งาน D ปรับเว็บ16/02/2026520/02/2026

ทุกแถวจบที่วันศุกร์ ไม่มีตัวไหนตกเสาร์-อาทิตย์เลย นี่คือความแม่นยำที่การนับด้วยมือทำไม่ได้ครับ

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

⚠️ ข้อควรระวัง: WORKDAY ข้ามเฉพาะเสาร์-อาทิตย์เท่านั้น ถ้าบริษัทมีวันหยุดประจำปี (เช่น วันสงกรานต์) ให้ใส่เป็นพารามิเตอร์ตัวที่สาม เช่น =WORKDAY(B3,C3-1,วันหยุดทั้งช่วง) โดยช่วงวันหยุดคือช่องที่คุณพิมพ์วันหยุดไว้ครับ

3. NETWORKDAYS — นับจำนวนวันทำการระหว่างสองวัน

กลับมาที่ครึ่งล่างของชีทเดิมครับ คราวนี้คนละทางกัน คือเรามีวันเริ่มกับวันสิ้นสุดอยู่แล้ว และอยากรู้ว่าระหว่างสองวันนั้นมี วันทำการ กี่วัน

=NETWORKDAYS(B10,C10)

ตัวอย่างงาน E เริ่ม 2 มีนาคม 2026 ถึง 31 มีนาคม 2026 ถ้านับตามปฏิทินรวมวันเสาร์-อาทิตย์คือ 30 วัน แต่ NETWORKDAYS จะตอบจำนวนวันจันทร์ถึงศุกร์ในช่วงนั้นให้ทันที ต่างจากคอลัมน์ จำนวนวันปฏิทิน ที่ผมคิดด้วยสูตรตรงๆ

=C10-B10+1

บวก 1 เพราะให้รวมวันแรกกับวันสุดท้ายเข้าไปด้วย เอาเลขสองตัวนี้เทียบกัน คุณจะเห็นภาพชัดว่างานหนึ่งช่วงสูญเสียวันไปกับเสาร์-อาทิตย์กี่วัน ซึ่งนำไปประมาณกำลังคนหรือตัดสินใจเรื่องตารางกะได้ดีมาก

จุดที่ทำให้ NETWORKDAYS เป็นมือโปรอีกขั้นคือการรับ วันหยุดเป็นพารามิเตอร์ตัวที่สาม เหมือน WORKDAY เลยครับ ถ้าบริษัทมีวันหยุดยาวช่วงเทศกาล คุณแค่พิมพ์วันหยุดเหล่านั้นไว้ที่ไหนสักแห่งแล้วอ้างอิงเข้าไป เช่น

=NETWORKDAYS(B10,C10,ช่วงวันหยุด)

Excel จะลบวันหยุดเหล่านั้นออกจากจำนวนวันทำการให้อัตโนมัติ ทำให้ตัวเลขที่ได้ตรงกับความจริงขององค์กร ไม่ใช่แค่ข้ามเสาร์-อาทิตย์แบบคร่าวๆ ครับ

💡 เคล็ดลับ: ให้ WORKDAY และ NETWORKDAYS ทำงานคู่กันเป็นคู่หู — WORKDAY ตอบโจทย์ จบเมื่อไหร่ ส่วน NETWORKDAYS ตอบโจทย์ ทำงานจริงกี่วัน ใช้ควบคู่กันตลอดงานวางแผนเลยครับ

4. DATEDIF — นับอายุและอายุงานให้ละเอียด

เลื่อนมาที่ชีท DATEDIF อายุงาน ครับ โจทย์นี้ตรงใจฝ่ายบุคคลเลย คืออยากรู้ว่าพนักงานทำงานนานเท่าไหร่เป็น ปี เดือน และวัน

DATEDIF เป็นฟังก์ชันพิเศษที่ไม่ขึ้นในรายการช่วยแนะนำของ Excel ถ้าพิมพ์เองถึงจะเห็น แต่ทำงานได้แม่นยำมาก โครงสร้างคือ

=DATEDIF(วันเริ่ม, วันสิ้นสุด, "หน่วย")

หน่วยมีสามแบบที่ใช้บ่อย

  • "y" ได้จำนวนปีเต็ม
  • "ym" ได้เดือนที่เหลือหลังจากนับปีแล้ว (ไม่รวมปี)
  • "md" ได้วันที่เหลือหลังจากนับเดือนแล้ว

ตัวอย่างแถวแรก สมชายเริ่มงาน 15 มีนาคม 2020 อ้างอิงวันที่ 9 สิงหาคม 2026

ชื่อวันที่เริ่มงานปีเดือนวัน
สมชาย15/03/20206425
อนุชา01/11/2019698
วิภา20/07/20224020
สุดา09/05/2018830

สมชายนับปีได้ 6 แต่เดือนกับวันแยกออกมาต่างหาก เอามารวมกันเป็นประโยคอ่านง่ายได้ด้วยเครื่องหมาย &

="อายุงาน "&D3&" ปี "&E3&" เดือน "&F3&" วัน"

ได้ผลลัพธ์เป็น อายุงาน 6 ปี 4 เดือน 25 วัน ซึ่งใช้ทำสรุปอายุงานหรือประกาศพนักงานประจำปีได้เลยครับ

ที่สำคัญ DATEDIF จะคืนตัวเลข ปี แล้วก็เดือน แล้วก็วัน แยกเป็นสามคอลัมน์อิสระ ดังนั้นคุณจึงจัดเรียงหรือใช้เป็นเงื่อนไขได้ตามใจ เช่น เอาเฉพาะคนที่อายุงานครบ 5 ปีขึ้นไปมากรองดู ถ้าอยากได้แค่แถวนั้นก็จับ DATEDIF ไปไว้ในฟิลเตอร์หรือ IF ได้ทันที เพราะมันคือตัวเลขธรรมดาที่เอาไปเปรียบเทียบได้ไม่ต่างจากตัวเลขอื่นในชีท

📌 ข้อควรจำ: หน่วย "ym" ต้องคิดจากเศษของปี และ "md" ต้องคิดจากเศษของเดือน หลักคือคิดปีก่อน แล้วค่อยเอาเศษมาคิดเดือน แล้วค่อยเอาเศษมาคิดวัน ไม่งั้นตัวเลขจะซ้ำซ้อนกันครับ

5. EOMONTH และ EDATE — ขยับเดือนให้เป็นงวด

มาที่ชีทสุดท้าย EOMONTH งวด ครับ เรื่องนี้ตรงใจฝ่ายบัญชีและฝ่ายขายที่สุด นั่นคือการจัดการงวดบิล

EOMONTH คือหาวันสิ้นเดือน โดยระบุว่าเลื่อนไปอีกกี่เดือน

=EOMONTH(B3,0)

ได้วันสิ้นเดือนของเดือนเดียวกับวันที่ตั้งบิล เช่น บิล INV-001 ตั้ง 10 มกราคม 2026 ก็จะได้ 31 มกราคม 2026 ส่วน

=EOMONTH(B3,1)
=EOMONTH(B3,2)

คือสิ้นเดือนหน้าและอีกสองเดือนถัดไป เหมาะกับการตัดรอบชำระเป็นงวดๆ ส่วน EDATE ต่างกันตรงที่ได้วันเดียวกันของเดือนที่เลื่อนไป ไม่ใช่วันสิ้นเดือน เช่น

=EDATE(B3,12)

คือวันครบรอบ 1 ปีพอดี ได้ 10 มกราคม 2027 ซึ่งนิยมใช้นับวันครบสัญญาหรือหมดอายุการรับประกัน

เลขที่วันที่ตั้งบิลสิ้นเดือนนี้สิ้นเดือนหน้าครบงวด 3 เดือนครบ 1 ปี
INV-00110/01/202631/01/202628/02/202631/03/202610/01/2027
INV-00218/02/202628/02/202631/03/202630/04/202618/02/2027
INV-00305/03/202631/03/202630/04/202631/05/202605/03/2027
INV-00423/04/202630/04/202631/05/202630/06/202623/04/2027

สังเกตว่า EOMONTH จัดการเดือนที่มี 28, 30 หรือ 31 วันให้ได้ถูกต้องเอง ไม่ต้องมานั่งคิดว่าเดือนไหนกี่วันครับ เรื่องนี้แหละที่ทำให้ Excel ชนะการนับมือไปเลย

อีกจุดที่ผมชอบคือเอา EOMONTH ไปจับกับ IF เพื่อตัดสินใจ เช่น ถ้าบิลนี้ครบกำหนดชำระก่อนสิ้นเดือนก็ให้โชว์ว่า ทันรอบ ไม่เช่นนั้นบอกว่า รอรอบหน้า เรียกง่ายๆ ว่าเอางวดมาประกอบเป็นเงื่อนไขอัตโนมัติ ลดการเปิดไฟล์มาดูทีละใบด้วยตาตัวเอง ส่วนใครทำงานด้านสินเชื่อหรือผ่อนชำระก็ใช้ EOMONTH หาวันส่งงวดถัดไปได้สบายๆ

⚠️ ข้อควรระวัง: ถ้า EOMONTH ไปเจอค่าเป็นข้อความแทนที่จะเป็นวันที่จริง จะได้ error เท่านั้น ให้เก็บวันเป็นค่า date เสมอ แล้วค่อยจัดรูปแบบการแสดงผลทีหลังครับ

6. TODAY และ NOW — วันที่ที่อัปเดตเองทุกวัน

ส่วนล่างสุดของชีท EOMONTH ครับ ผมใส่วันที่แบบอัปเดตอัตโนมัติไว้ให้ลองดู

  • TODAY() คืนวันที่ปัจจุบันของเครื่อง
  • NOW() คืนทั้งวันและเวลาปัจจุบัน
  • EOMONTH(TODAY(),0) หาวันสิ้นเดือนของเดือนปัจจุบันอัตโนมัติ

จุดเด่นคือค่าเหล่านี้เปลี่ยนเองทุกวันเมื่อคุณเปิดไฟล์ใหม่ เหมาะทำแดชบอร์ดนับถอยหลังวันครบกำหนด หรือสรุปว่าเหลือเวลากี่วันถึงสิ้นเดือน โดยไม่ต้องแก้สูตรเลย ยิ่งถ้าจับคู่กับ DATEDIF ก็ถามคำถามแบบ มีคนเหลือเวลาอีกกี่วันถึงจะครบอายุงาน 1 ปี หรือถ้าจับคู่กับ NETWORKDAYS ก็ได้คำตอบ มีวันทำงานจริงเหลือกี่วันก่อนสิ้นเดือน ซึ่งเป็นตัวเลขที่หลายคนอยากได้แต่ไม่อยากคำนวณมือ

ผมลองผูกเป็นสถานการณ์จริงให้ดูครับ เช่น อยากรู้วันสุดท้ายที่ควรโอนเงินให้ทันรอบเดือน

=EOMONTH(TODAY(),0)

ร่วมกับข้อมูลบิลในชีทนี้ คุณเขียนสรุปได้เลยว่าวันไหนถึงกำหนด แล้ว Excel จะคำนวณใหม่ให้ทุกครั้งที่เปิดไฟล์

ผมยกตัวอย่างการประยุกต์ง่ายๆ ว่า ถ้าอยากให้แถวที่หมดกำหนดแล้วเปลี่ยนสี หรือให้เซลล์โชว์คำว่า ล่วงเลย เมื่อวันนี้ผ่านกำหนดไปแล้ว ก็จับ TODAY() ไปเทียบกับวันที่ครบกำหนดในเงื่อนไขได้ทันที ค่านี้มองเป็นเข็มนาฬิกาที่เดินหน้าเองทุกวัน ใช้ทำตัวเตือนในแดชบอร์ดได้แบบไม่มีเงื่อนไขผูกมัด และยังเอาไปเชื่อมกับ NETWORKDAYS เพื่อบอกได้อีกว่าเลยกำหนดมาแล้วกี่วันทำการ เพื่อแก้ปัญหาได้เร็วขึ้น

📌 ข้อควรจำ: TODAY และ NOW เป็นฟังก์ชัน volatile แปลว่ามันคำนวณใหม่ทุกครั้งที่ไฟล์ถูกเปิดหรือแก้ไข ดังนั้นใช้ในงานที่ต้องการความเป็นปัจจุบันเป็นหลัก ถ้าต้องการยึดค่าวันที่ตายตัว ให้พิมพ์วันที่เองแทนครับ

7. แยกส่วนวัน เดือน ปี — YEAR / MONTH / DAY

นอกจากฟังก์ชันหาวันส่งและวันสิ้นเดือนแล้ว บางงานเราก็แค่อยาก แยกวันที่ ออกมาดูเป็นตัวเลขธรรมดา เช่น อยากรู้ว่าบิลนี้เป็นเดือนอะไร หรืออยากจัดป้ายปีกำกับรายงาน ลองใช้ชุดฟังก์ชันนี้ดูครับ

  • YEAR(วันที่) ได้ปีเป็นตัวเลข เช่น 2026
  • MONTH(วันที่) ได้เดือนเป็นตัวเลข 1–12
  • DAY(วันที่) ได้วันเป็นตัวเลข 1–31
  • DATE(ปี, เดือน, วัน) ประกอบร่างวันใหม่จากตัวเลขสามตัว

ในตัวอย่างบิลถ้าอยากแยกปีของวันที่ตั้งบิลออกมา

=YEAR(B3)

ได้ 2026 ส่วนถ้าอยากประกอบวันที่สรุปขึ้นเอง เช่น สร้างวันที่ 5 เดือนถัดไปโดยไม่ลืมข้ามปี

=DATE(YEAR(B3),MONTH(B3)+1,5)

ฟังก์ชัน DATE เก่งตรงที่มันเลื่อนเดือนให้อัตโนมัติ ถ้าเดือนเกิน 12 มันก็ข้ามปีให้เอง ไม่ต้องมานั่งเขียนเงื่อนไขซับซ้อน เป็นอีกหนึ่งตัวช่วยที่คนทำรายงานใช้บ่อยครับ

ตัวอย่างที่พบบ่อยคือ การตั้งหัวข้อรายงานที่อยากให้ขึ้นเดือนและปีอัตโนมัติตามข้อมูล เช่น อยากให้หัวข้อเปลี่ยนเป็น พฤษภาคม 2026 ทุกครั้งที่เจอวันที่ในเดือนนั้น คุณก็แค่ใช้ MONTH กับ YEAR จับคู่กับ TEXT ประกอบเป็นคำไทยอ่านง่ายได้ โดยไม่ต้องไปแก้หัวข้อด้วยมือทีละเดือนเลยครับ

💡 เคล็ดลับ: YEAR, MONTH, DAY ดีกว่าการใช้ TEXT ตัด เพราะผลลัพธ์เป็นตัวเลขจริง นำไปใช้ต่อในเงื่อนไข เปรียบเทียบ หรือสร้างคอลัมน์ pivot ได้ทันที ต่างจากผลลัพธ์ข้อความที่ต้องแปลงอีกขั้นครับ

📌 ข้อควรจำ: ฟังก์ชันแยกส่วนพวกนี้ต้องการวันที่จริง ถ้าคุณส่งค่าเป็นข้อความ ฟังก์ชันอาจตีความไม่ตรงหรือ error ให้เก็บไว้เป็น date เสมอ แล้วค่อยแต่งรูปแบบทีหลัง

8. สถานการณ์งานจริง — ประยุกต์รวมกันทั้งชุด

สถานการณ์ที่ 1: ฝ่ายบุคคลสรุปอายุงาน

อยากได้รายงานอายุงานของพนักงานทั้งบริษัทเป็น ปี เดือน วัน โดยให้อัปเดตตามวันที่ปัจจุบัน ใช้ DATEDIF คู่กับ TODAY() เป็นวันสิ้นสุด ประกอบด้วยเครื่องหมาย & เป็นประโยคอ่านง่าย ส่งหัวหน้าได้เลยโดยไม่ต้องแก้สูตรทุกครั้ง

สถานการณ์ที่ 2: ฝ่ายขายวางแผนส่งงาน

ลูกค้าสั่งงานช่วงกลางสัปดาห์ อยากรู้ว่าจะส่งได้ช้าสุดวันไหน โดยไม่ให้ตกเสาร์-อาทิตย์ ใช้ WORKDAY พร้อมระบุวันหยุดบริษัทในพารามิเตอร์ตัวที่สาม แล้วใช้ WEEKDAY เช็คอีกรอบเพื่อความมั่นใจ

สถานการณ์ที่ 3: ฝ่ายบัญชีตัดรอบบิล

บิลทุกใบต้องครบกำหนดชำระภายในสิ้นเดือนถัดไป ใช้ EOMONTH หาวันสิ้นเดือนของแต่ละงวด และใช้ EDATE นับวันครบรอบสัญญา ประกอบกับ TODAY() เพื่อนับวันเหลือถึงกำหนดแบบอัตโนมัติ

สถานการณ์ที่ 4: ฝ่ายผลิตเช็กรอบการตัดสต็อก

ทีมผลิตอยากรู้วันสุดท้ายของแต่ละเดือนเพื่อตัดรอบสต็อก และอยากรู้ว่าเหลือวันทำการกี่วันก่อนตัดรอบ ใช้ EOMONTH(TODAY(),0) หาวันสิ้นเดือน แล้วใช้ NETWORKDAYS(TODAY(),EOMONTH(TODAY(),0)) นับจำนวนวันทำงานที่เหลือเพื่อวางแผนโหลดงานได้อย่างแม่นยำ

9. สรุป

มาถึงตรงนี้คุณคงเห็นแล้วว่าฟังก์ชันวันที่และเวลาไม่ได้ยากและทรงพลังมากครับ

  • TODAY / NOW ดึงวันที่เวลาปัจจุบันที่อัปเดตเอง
  • WORKDAY บวกวันทำการ ข้ามเสาร์-อาทิตย์
  • NETWORKDAYS นับวันทำงานจริงระหว่างสองวัน
  • DATEDIF นับอายุเป็นปี เดือน วัน อย่างละเอียด
  • EOMONTH หาวันสิ้นเดือน เหมาะกับงวดและการตัดรอบ
  • EDATE เลื่อนเดือนเพื่อนับวันครบรอบ
  • YEAR / MONTH / DAY แยกส่วนวันเดือนปีออกมาเป็นตัวเลข

จุดสำคัญที่อยากฝากไว้คือ วันที่ใน Excel เป็น serial number ที่คำนวณได้จริงเสมอ ดังนั้นให้จัดรูปแบบการแสดงผลให้ถูกต้อง อย่าลืมระบุวันหยุดประจำปีให้ WORKDAY กับ NETWORKDAYS เพื่อความแม่นยำ และถ้าเจอค่าที่ดูเหมือนวันที่แต่คำนวณไม่ได้ ให้ลองเช็คว่ามันเป็นข้อความหรือเปล่า เพราะนี่คือต้นเหตุหลักของ error ด้านวันที่ในงานจริงครับ

ถ้ายัง งงงง แนะนำให้เปิดไฟล์ตัวอย่าง แล้วไล่เล่นทั้ง 3 ชีทดูนะครับ เริ่มจาก WORKDAY NETWORKDAYS วางแผนงาน ข้ามไป DATEDIF อายุงาน นับอายุพนักงาน และปิดท้ายที่ EOMONTH งวด จัดการงวดบิลกับวันที่ครบรอบ ลองเปลี่ยนวันเริ่มและจำนวนวันทำการในตาราง แล้วดูว่าวันกำหนดส่งขยับตามยังไง จะเห็นพลังของฟังก์ชันกลุ่มนี้ทันที

บทความหน้าเราจะได้รู้จัก Dynamic Arrays — FILTER, SORT, UNIQUE, SEQUENCE ที่จะเปลี่ยนวิธีกรองและจัดข้อมูลของคุณไปตลอดกาล เจอกันครับ! 😊

📖 อ่านต่อ: ถ้าอยากทบทวนการจัดการข้อมูลแบบเต็มๆ แวะไปดู “Excel สำหรับทำงาน” ได้เลยครับ ส่วนใครที่เพิ่งผ่านบทความฟังก์ชันข้อความมาก็ลองกลับไปอ่าน LEFT, RIGHT, MID เพื่อตกแต่งวันที่ให้เป็นข้อความอ่านง่ายได้อีกช่องทางหนึ่งนะครับ

Similar Posts

  • ฟังก์ชันข้อความ — LEFT/RIGHT/MID, TRIM, TEXTJOIN, TEXT

    1. เมื่อข้อมูลข้อความไม่ยอมอยู่ในรูปที่เราอยากได้ บทความที่แล้วเราคุยเรื่อง SUMIFS และเพื่อนๆ ที่ช่วยสรุปตัวเลข คราวนี้ผมจะพาคุณมาลุยอีกฝั่งที่คนทำงานเจอทุกวันครับ นั่นคือ ข้อมูลที่เป็นตัวอักษร ลองนึกภาพงานจริงดูนะครับ รหัสสินค้าที่ต้องแยกปีออกมา ชื่อลูกค้าที่ก๊อปมาจากระบบเก่าแล้วมีช่องว่างเกินเต็มไปหมด หรือรายงานที่อยากให้ตัวเลขแสดงเป็น 12,500 บาท แทนที่จะเป็น 12500 เฉยๆ งานพวกนี้แก้ทีละเซลล์ไม่ไหวแน่นอน ประเด็นคือ Excel ไม่ได้เก็บแค่ตัวเลข ข้อมูลส่วนใหญ่ในองค์กรเป็นข้อความ — รหัส ชื่อ ที่อยู่ อีเมล หมายเลขโทรศัพท์ ถ้าเราไม่มีเครื่องมือจัดการข้อความที่มือโปร เราจะต้องนั่งก๊อป-วาง-แก้ด้วยมือจนมือเจ็บ ข้อผิดพลาดก็หลุดง่าย ชุดเครื่องมือที่เราจะใช้วันนี้มีดังนี้ครับ เปิดไฟล์ตัวอย่าง แล้วทำตามไปด้วยกันนะครับ ผมเตรียมไว้ 3 ชีท ไล่จากการตัดข้อความ ไปการรวมข้อความ และปิดท้ายด้วยการจัดรูปแบบ 💡 เคล็ดลับ: ผลลัพธ์ของฟังก์ชันกลุ่มนี้เป็น ข้อความ เสมอ ต่อให้หน้าตาเหมือนตัวเลขก็ตาม ถ้าจะเอาไปบวกลบต่อ ให้ครอบด้วยฟังก์ชัน VALUE หรือนำมาคูณด้วย 1 ก่อนเสมอครับ 📌 ข้อควรจำ:…

  • Remove Duplicates — ลบข้อมูลซ้ำไม่ให้เหลือซ้ำ

    1. ข้อมูลซ้ำซ้อน — ปัญหาเงียบที่ทำลายความน่าเชื่อถือ คุณเคยเจอสถานการณ์แบบนี้ไหมครับ… กำลังจะส่งรายงานยอดขายประจำเดือนให้หัวหน้า สรุปตัวเลขเสร็จทุกอย่าง พอหัวหน้าดูกลับบอกว่า “ยอดรวมมันเกินความจริงไปนะ” — คุณก็งง เพราะสูตร SUM ก็ถูกต้องทุกอย่าง สุดท้านพบว่า ข้อมูลในตารางมีรายการซ้ำ บางออเดอร์ถูกบันทึกซ้ำ 2-3 รอบ ส่งผลให้ยอดรวมบวมเกินจริง หรืออีกสถานการณ์หนึ่ง: คุณกำลังจะทำ Mail Merge ส่งอีเมลถึงลูกค้าทุกคน แต่ดันส่งซ้ำไปหาคนเดิม เพราะฐานข้อมูลลูกค้ามีชื่อซ้ำกัน — รับรองว่าลูกค้าหงุดหงิดแน่ๆ ปัญหา ข้อมูลซ้ำ (Duplicate Data) เป็นปัญหาที่เจอบ่อยที่สุดในการทำงานกับข้อมูลครับ ไม่ว่าจะเป็นข้อมูลพนักงาน รายการสินค้า ฐานข้อมูลลูกค้า หรือแม้แต่ข้อมูลในระบบบัญชี — เมื่อข้อมูลซ้ำปุ๊บ ความน่าเชื่อถือของรายงานคุณก็หายไปปั๊บ ในบทความนี้ผมจะพาคุณไปรู้จักกับวิธีจัดการข้อมูลซ้ำแบบหมดจด ตั้งแต่คลิกเดียวจบ ไปจนถึงเทคนิคขั้นสูงที่มืออาชีพใช้กันครับ เปิดไฟล์ตัวอย่างมาดูกันก่อนเลยครับ — ผมเตรียมข้อมูลให้คุณลองเล่นด้วยตัวเองทุกตัวอย่าง ที่ชีทต่างๆ มีข้อมูลซ้ำแฝงอยู่ให้คุณลองค้นหาและจัดการดู 2. Remove Duplicates พื้นฐาน — คลิกเดียวหายซ้ำ…

  • Excel คืออะไร? ทำไม First Jobber ต้องรู้

    เคยเบื่อไหมเวลาได้ยินคำว่า Excel? บอกตามตรงนะครับ — เราไม่แปลกใจเลยถ้าชื่อ Excel ทำให้คุณเบื่อหูหรือขี้เกียจจนอยาก SCROLL ผ่านไปก่อนที่จะเริ่มอ่านด้วยซ้ำ 😅 ทั้งๆ ที่บางคนอาจยังไม่รู้จริงๆ ด้วยซ้ำว่า Excel ใช้ทำอะไรได้บ้าง เป็นเพราะความเชื่อผิดๆ ที่เราได้ยินกันบ่อยมากๆ: แต่เดี๋ยวก่อน… ลองคิดถึงคำถามนี้ดูครับ ในวันที่คุณเริ่มงานวันแรก หัวหน้าส่งอีเมลมาว่า “ช่วยทำไฟล์ Excel สรุปยอดขายเดือนนี้ให้หน่อย” — แล้วคุณจะทำยังไง? ตกใจไหม? กลัวกดผิดแล้วพัง? หรือไม่รู้ด้วยซ้ำว่าต้องกดตรงไหน? เราลองมาเปลี่ยนความคิดกันใหม่ดีกว่า — คิดว่า Excel ก็เหมือนกับ “กระดาษกราฟ + เครื่องคิดเลข + AI ช่วยคิด” อยู่ในที่เดียวกันครับ ตัวอย่าง: สมมติว่าคุณขายเสื้อผ้าออนไลน์ — แต่ละวันมีออเดอร์เข้ามา 50 รายการ ถ้าจดด้วยกระดาษคุณจะบ้าแน่ๆ ปากกาหมดหลายด้าม ตัวเลขผิดนิดหน่อยก็ต้องลบแล้วเขียนใหม่ แต่ถ้าใช้ Excel แปะข้อมูลลงในตาราง — คอลัมภ์แรกเป็นชื่อลูกค้า,…

  • Excel คืออะไร? เปิดครั้งแรกต้องรู้อะไรบ้าง

    เคยเปิด Excel แล้วมึนกับช่องสี่เหลี่ยมเต็มจอไหมครับ? ไม่ต้องกลัว — บทความนี้จะพามือใหม่รู้จัก Excel ตั้งแต่เริ่ม ว่าแต่ละส่วนคืออะไร กดตรงไหนก่อน เซฟยังไง ให้พร้อมทำงานทันที Excel คืออะไรใน 1 ประโยค? บอกให้สั้นที่สุดเลยนะครับ — Excel คือโปรแกรมตารางคำนวณ (Spreadsheet) ที่เอาไว้จดข้อมูล คำนวณตัวเลข ทำกราฟ และสรุปผล ให้เราไม่ต้องมานั่งคิดด้วยเครื่องคิดเลขหรือทำรายงานด้วยมืออีกต่อไป คนส่วนใหญ่เข้าใจว่า Excel คือ “โปรแกรมสี่เหลี่ยมๆ ที่ใช้ทำบัญชี” ซึ่งก็ไม่ผิดครับ แต่มันทำได้มากกว่านั้นเยอะ เปิด Excel ครั้งแรก — จะเจออะไรบ้าง? ถ้าคุณเพิ่งเปิด Excel ขึ้นมาครั้งแรก สิ่งแรกที่เห็นคือ หน้าจอสีขาวๆ มีตารางสี่เหลี่ยมเต็มไปหมด ซึ่งนี่คือ Worksheet หรือแผ่นงานนั่นเองครับ มาดูส่วนประกอบหลักๆ ที่ต้องรู้จักกัน: 1. Ribbon — แถบเครื่องมือชุดใหญ่ Ribbon คือแถบด้านบนสุดของ…

  • IF Function สำหรับมือใหม่ — ใช้เงื่อนไขตัดสินใจใน Excel

    1. ถ้า… แล้ว… ไม่งั้น… — วิธีคิดของคนทำงาน ในชีวิตประจำวันเราตัดสินใจโดยใช้เงื่อนไขตลอดเวลา: ใน Excel ก็มีฟังก์ชันที่ทำงานแบบนี้เหมือนกันครับ — มันชื่อว่า IF Function IF คือฟังก์ชันที่ให้ Excel ตรวจสอบเงื่อนไข แล้วตัดสินใจว่าจะแสดงค่าอะไรออกมา โดยคุณเป็นคนกำหนดกฏเกณฑ์เอง IF Function ช่วยให้คุณ: มะ! เปิดไฟล์ตัวอย่างแล้วทำไปพร้อมกันเลยครับ — มีชีทตัวอย่างให้ลองทำตามทุกหัวข้อ จะได้เห็นภาพว่า IF ทำงานยังไงบ้าง! 2. IF Function คืออะไร? โครงสร้างพื้นฐาน IF Function มีโครงสร้างง่ายมากครับ: 3 ส่วนสำคัญของ IF: ส่วน ความหมาย ตัวอย่าง Logical_test เงื่อนไขที่ต้องการตรวจสอบ B2 >= 80 Value_if_true ค่าที่จะแสดงถ้าเงื่อนไขเป็นจริง “ผ่าน” Value_if_false ค่าที่จะแสดงถ้าเงื่อนไขเป็นเท็จ “ไม่ผ่าน”…

  • กันข้อผิดพลาด — IFERROR, IFNA, ISERROR + ตรวจสูตร

    1. อย่าให้ error มาทำลายรายงานของคุณ บทความที่แล้วเราสร้างสูตรอ้างอิงขั้นสูงแบบ INDIRECT, OFFSET, ADDRESS กันไป คราวนี้ผมอยากพาคุณมาดูอีกด้านที่คนใช้ Excel ปฏิเสธไม่ได้ว่าต้องเจอ นั่นคือ error หรือข้อผิดพลาด ครับ ไม่ว่าสูตรจะสวยแค่ไหน พอกลับมาเปิดไฟล์ทีไรเห็น #DIV/0! โผล่เป็นพรืด หรือ VLOOKUP ตอบ #N/A เพราะพิมพ์รหัสผิดแค่ตัวเดียว ความมั่นใจในไฟล์ก็วูบลงไปเลย ลองนึกภาพนะครับ ว่าคุณเป็นเจ้าของร้านค้าชุมชนที่ใช้ Excel คำนวณกำไรต่อหน่วยของสินค้ารายวัน สินค้าบางตัวเพิ่งสั่งมาวันนี้ยังไม่ได้ตั้งราคาขาย ต้นทุนโผล่ขึ้นมาแล้วตารางก็เด้ง #DIV/0! ขึ้นมาจนดูไม่เป็นระเบียบ หรือฝ่ายขายพิมพ์รหัสสินค้าผิดไปหนึ่งตัวแล้ว VLOOKUP ก็ตอบ #N/A จนลูกค้าสงสัยว่าไฟล์พังรึเปล่า ที่จริงแล้วมันไม่ใช่เรื่องผิดปกติเลยครับ แต่มันคือหน้าที่ของเราที่จะทำให้ไฟล์ทนทานต่อสถานการณ์แบบนี้ได้ ชุดฟังก์ชันที่เราจะใช้วันนี้มีดังนี้ครับ เปิดไฟล์ตัวอย่าง แล้วทำไปด้วยกันนะครับ ผมจัดไว้ 3 ชีท เริ่มจาก IFERROR DIV0 กัน error จากการหาร ข้ามไป IFNA…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.