วิธีใช้วันที่และเวลาปัจจุบัน (TODAY / NOW) ใน Excel สูตรอัตโนมัติ
การจัดการข้อมูลที่ต้องอ้างอิงวันที่และเวลาปัจจุบันเป็นเรื่องจำเป็นในหลายงาน การใช้สูตรวันที่ Excel อย่างฟังก์ชัน TODAY() และ NOW() จะช่วยให้คุณอัปเดตข้อมูลเหล่านี้ได้โดยอัตโนมัติ ประหยัดเวลาและลดความผิดพลาดจากการพิมพ์ด้วยตนเองได้อย่างมีประสิทธิภาพ
Key takeaways
- TODAY(): ให้ผลลัพธ์เป็นวันที่ปัจจุบันเท่านั้น ไม่มีข้อมูลเวลา
- NOW(): ให้ผลลัพธ์เป็นทั้งวันที่และเวลาปัจจุบัน
- อัปเดตอัตโนมัติ: ค่าจากทั้งสองฟังก์ชันจะเปลี่ยนไปตามวันและเวลาจริงทุกครั้งที่ไฟล์ Excel มีการคำนวณใหม่ (เช่น เปิดไฟล์, แก้ไขเซลล์อื่น)
- ฟังก์ชัน Volatile: การคำนวณใหม่ทุกครั้งอาจส่งผลต่อประสิทธิภาพของไฟล์ที่มีขนาดใหญ่และซับซ้อน
- ทางเลือกแบบ Static: หากต้องการวันที่และเวลาที่ไม่เปลี่ยนแปลง ให้ใช้คีย์ลัด Ctrl + ; (สำหรับวันที่) และ Ctrl + Shift + ; (สำหรับเวลา)
ทำความรู้จักฟังก์ชัน TODAY และ NOW: ต่างกันอย่างไร?
ใน Microsoft Excel มีฟังก์ชันที่เกี่ยวข้องกับวันที่และเวลาอยู่หลายตัว แต่สองฟังก์ชันพื้นฐานที่ถูกใช้งานบ่อยที่สุดคือ TODAY() และ NOW() ซึ่งทั้งสองทำหน้าที่ดึงข้อมูลเวลาปัจจุบันของระบบมาแสดง แต่มีความแตกต่างที่สำคัญที่ผู้ใช้ต้องเข้าใจเพื่อเลือกใช้ให้ถูกกับงาน
ฟังก์ชัน TODAY()
ฟังก์ชันนี้จะส่งคืนค่าเป็น ‘หมายเลขประจำของวันที่’ (Serial Number) ของวันที่ปัจจุบัน โดยไม่สนใจเรื่องเวลา ไวยากรณ์ของสูตรนั้นเรียบง่ายมาก คือ:
=TODAY()
ฟังก์ชันนี้ไม่ต้องการอาร์กิวเมนต์หรือข้อมูลใดๆ ในวงเล็บ เหมาะสำหรับงานที่ต้องการแค่วันที่ เช่น การคำนวณอายุ, การติดตามวันครบกำหนด หรือการสร้างหัวรายงานที่ระบุวันที่ของวันนั้นๆ
ฟังก์ชัน NOW()
ส่วนฟังก์ชัน NOW() จะให้ข้อมูลที่ละเอียดกว่า โดยจะส่งคืนค่าเป็นหมายเลขประจำของวันและเวลาปัจจุบัน ไวยากรณ์ของสูตรก็คล้ายกัน คือ:
=NOW()
เช่นเดียวกับ TODAY() ฟังก์ชันนี้ก็ไม่ต้องการอาร์กิวเมนต์ใดๆ ในวงเล็บ เหมาะสำหรับงานที่ต้องการประทับเวลา (Timestamp) อย่างละเอียด เช่น การบันทึกเวลาที่แก้ไขข้อมูลล่าสุด หรือการติดตามเวลาที่เริ่มและสิ้นสุดกิจกรรม
วิธีใช้งานสูตร TODAY และ NOW ใน Excel
การใส่สูตรทั้งสองนี้ลงในเซลล์นั้นทำได้ง่ายๆ เพียงไม่กี่ขั้นตอน:
- เลือกเซลล์ที่คุณต้องการให้แสดงวันที่หรือเวลา
- พิมพ์เครื่องหมายเท่ากับ (=) ตามด้วยชื่อฟังก์ชัน เช่น =TODAY() หรือ =NOW()
- กดปุ่ม Enter บนคีย์บอร์ด
หลังจากกด Enter แล้ว Excel จะแสดงผลลัพธ์ทันที หากผลลัพธ์ที่แสดงไม่เป็นไปตามรูปแบบที่ต้องการ เช่น แสดงเป็นชุดตัวเลขแปลกๆ นั่นเป็นเพราะเซลล์อาจยังไม่ได้ถูกจัดรูปแบบให้แสดงผลเป็นวันที่หรือเวลา คุณสามารถแก้ไขได้โดย:
- คลิกขวาที่เซลล์นั้น แล้วเลือก ‘Format Cells…’ (จัดรูปแบบเซลล์)
- ในแท็บ ‘Number’ (ตัวเลข) ให้เลือกประเภท (Category) เป็น ‘Date’ (วันที่) หรือ ‘Time’ (เวลา)
- เลือกรูปแบบการแสดงผลที่คุณต้องการจากรายการทางด้านขวา แล้วกด OK
อ่านเพิ่ม: วิธีตั้งเวลาปิดคอม (Shutdown Timer) สั่งปิดอัตโนมัติเมื่อโหลดงานเสร็จ
ตัวอย่างการประยุกต์ใช้สูตรวันที่และเวลาอัตโนมัติ
ความสามารถที่แท้จริงของฟังก์ชันเหล่านี้คือการนำไปใช้ร่วมกับสูตรอื่นๆ เพื่อสร้างการคำนวณแบบไดนามิก
1. การคำนวณอายุ
คุณสามารถคำนวณอายุของบุคคลหรือสิ่งของได้อย่างง่ายดาย โดยนำวันที่ปัจจุบัน (จาก TODAY()) มาลบกับวันเกิดหรือวันที่เริ่มต้น สมมติว่าวันเกิดอยู่ในเซลล์ B2 คุณสามารถใช้สูตร:
=INT((TODAY()-B2)/365.25)
สูตรนี้จะคำนวณจำนวนวันที่ผ่านไปแล้วหารด้วย 365.25 (เพื่อเผื่อปีอธิกสุรทิน) และฟังก์ชัน INT จะปัดเศษทิ้งเพื่อให้ได้อายุเป็นปีเต็ม
2. การติดตามวันครบกำหนด (Due Date)
สำหรับงานบริหารโครงการ คุณสามารถสร้างคอลัมน์ ‘จำนวนวันที่เหลือ’ เพื่อติดตามงานที่ใกล้ครบกำหนด สมมติว่าวันครบกำหนดอยู่ในเซลล์ C2 สามารถใช้สูตร:
=C2-TODAY()
ผลลัพธ์ที่ได้จะเป็นจำนวนวันที่เหลือก่อนถึงกำหนด หากผลลัพธ์เป็นค่าติดลบ หมายความว่างานนั้นเลยกำหนดมาแล้ว คุณยังสามารถใช้ Conditional Formatting เพื่อใส่สีให้กับเซลล์ตามเงื่อนไข เช่น ให้เป็นสีแดงเมื่อค่าติดลบ
3. การสร้างหัวรายงานแบบไดนามิก
เพื่อให้รายงานของคุณดูเป็นปัจจุบันเสมอ คุณสามารถสร้างหัวข้อที่อัปเดตวันที่อัตโนมัติได้โดยใช้การเชื่อมข้อความเข้ากับฟังก์ชัน TODAY() ดังนี้:
="รายงานสรุปยอดขาย ณ วันที่ " & TEXT(TODAY(), "d mmmm yyyy")
ผลลัพธ์ที่ได้จะเป็นข้อความ เช่น ‘รายงานสรุปยอดขาย ณ วันที่ 15 ตุลาคม 2567’ ซึ่งวันที่นี้จะเปลี่ยนไปทุกวัน
อ่านเพิ่ม: วิธีทำ Portfolio (Resume) ยื่นสมัครงาน ด้วย Canva สวยๆ แบบมืออาชีพ
ข้อควรระวัง: ฟังก์ชัน Volatile และทางเลือกอื่น
สิ่งสำคัญที่ต้องทราบคือ TODAY() และ NOW() เป็นฟังก์ชันประเภท ‘Volatile’ ซึ่งหมายความว่า Excel จะทำการคำนวณสูตรเหล่านี้ใหม่ทุกครั้งที่มีการเปลี่ยนแปลงใดๆ เกิดขึ้นในเวิร์กชีต ไม่ว่าการเปลี่ยนแปลงนั้นจะเกี่ยวข้องกับสูตรหรือไม่ก็ตาม
ในไฟล์งานขนาดเล็ก การคำนวณใหม่นี้อาจไม่สร้างปัญหา แต่สำหรับไฟล์ที่มีขนาดใหญ่มาก มีสูตรซับซ้อนหลายพันเซลล์ การใช้ฟังก์ชัน Volatile จำนวนมากอาจทำให้โปรแกรมทำงานช้าลงอย่างเห็นได้ชัด
ทางเลือก: การใส่วันที่และเวลาแบบคงที่ (Static)
หากคุณต้องการเพียงประทับวันที่หรือเวลา ณ ขณะที่ป้อนข้อมูล และไม่ต้องการให้มันเปลี่ยนแปลงอีกในอนาคต การใช้คีย์ลัดเป็นทางเลือกที่ดีกว่า:
- Ctrl + ; (เครื่องหมายอัฒภาค) : เพื่อใส่วันที่ปัจจุบันแบบคงที่
- Ctrl + Shift + ; : เพื่อใส่เวลาปัจจุบันแบบคงที่
การใช้คีย์ลัดเหล่านี้จะเหมือนกับการพิมพ์ข้อมูลลงไปตรงๆ ค่าที่ได้จะไม่เปลี่ยนแปลงเมื่อเปิดไฟล์ในวันถัดไป
| คุณสมบัติ | ฟังก์ชัน TODAY() / NOW() | คีย์ลัด (Ctrl+;) |
|---|---|---|
| การอัปเดต | อัตโนมัติ (เปลี่ยนแปลงทุกครั้งที่คำนวณใหม่) | ไม่อัปเดต (ค่าคงที่) |
| ประเภทข้อมูล | สูตร (Formula) | ค่า (Value) |
| ผลกระทบต่อประสิทธิภาพ | อาจทำให้ไฟล์ขนาดใหญ่ช้าลง (Volatile) | ไม่มี |
| เหมาะสำหรับ | การคำนวณแบบไดนามิก, รายงานที่ต้องการข้อมูลปัจจุบันเสมอ | การประทับเวลา, การบันทึกข้อมูล ณ เวลาที่กรอก |
โดยสรุป การเลือกใช้ระหว่างฟังก์ชันอัตโนมัติและคีย์ลัดขึ้นอยู่กับวัตถุประสงค์ของงาน หากต้องการค่าที่อ้างอิงกับเวลาจริงเสมอให้ใช้ TODAY() หรือ NOW() แต่หากต้องการบันทึกค่า ณ เวลาที่ทำงาน ให้เลือกใช้คีย์ลัดเพื่อประสิทธิภาพที่ดีกว่า
คำถามที่พบบ่อย (FAQ)
ทำไมวันที่ในสูตร TODAY() ถึงเปลี่ยนไปทุกครั้งที่เปิดไฟล์?
เพราะฟังก์ชัน TODAY() ถูกออกแบบมาเพื่อดึงวันที่ปัจจุบันของระบบคอมพิวเตอร์มาแสดงผลเสมอ ทุกครั้งที่คุณเปิดไฟล์หรือมีการคำนวณใหม่ในชีต Excel จะสั่งให้ฟังก์ชันนี้ทำงานใหม่และอัปเดตเป็นวันที่ล่าสุด
อยากให้เวลาที่ใส่ไม่เปลี่ยนแปลง ต้องทำอย่างไร?
หากคุณต้องการบันทึกเวลาแบบถาวรที่ไม่เปลี่ยนแปลง ให้ใช้คีย์ลัดแทนการใช้สูตร โดยกด Ctrl + Shift + ; (กดปุ่ม Control, Shift, และเครื่องหมายอัฒภาคพร้อมกัน) เพื่อใส่เวลาปัจจุบันแบบคงที่
สามารถใช้ TODAY() คำนวณหาอายุได้หรือไม่?
ได้ครับ สามารถทำได้โดยนำวันที่ปัจจุบันที่ได้จาก TODAY() ไปลบกับวันเกิด แล้วนำผลลัพธ์ที่ได้ (ซึ่งเป็นจำนวนวัน) ไปหารด้วย 365.25 เพื่อแปลงเป็นจำนวนปี ตัวอย่างสูตรคือ =INT((TODAY()-A1)/365.25) โดยที่ A1 คือเซลล์ของวันเกิด
ฟังก์ชัน NOW() แสดงผลเป็นตัวเลขแปลกๆ แก้ไขอย่างไร?
ตัวเลขที่เห็นคือ ‘Serial Number’ ซึ่งเป็นวิธีที่ Excel ใช้เก็บข้อมูลวันที่และเวลา คุณสามารถแก้ไขการแสดงผลได้โดยการคลิกขวาที่เซลล์นั้น เลือก ‘Format Cells’ แล้วไปที่แท็บ ‘Number’ จากนั้นเลือก Category เป็น ‘Date’ หรือ ‘Time’ และเลือกรูปแบบที่ต้องการ
