บทช่วยสอนนี้จะแสดงวิธี แทรก timestamp (วันเวลา) อัตโนมัติ ใน Excel เมื่อเราต้องติดตามกิจกรรม เราจะใช้ timestamp เช่น บันทึกเวลาที่พนักงานแต่ละคนมาถึงสำนักงาน การบันทึก timestamp ช่วยให้จัดการงานประจำวันได้อย่างมีประสิทธิภาพ เรามาดูวิธีแทรก timestamp อัตโนมัติใน Excel กัน
5 วิธีง่ายๆ ในการแทรก Timestamp อัตโนมัติใน Excel
บทความนี้ครอบคลุมทั้งวิธีแบบคงที่ (static) และแบบไดนามิก (dynamic) รวม 5 วิธี
1. ใช้ลัดแป้นพิมพ์ (Keyboard Shortcuts) แทรก Timestamp แบบคงที่
ลัดแป้นพิมพ์เป็นวิธีแบบคงที่สำหรับแทรก timestamp เร็วและง่าย
ขั้นตอน:
- เลือกเซลล์ C5 ที่ต้องการ timestamp
- กด Ctrl + ; จะได้ วันที่ปัจจุบัน
- เลือกเซลล์ C6 กด Ctrl + Shift + : จะได้ เวลาปัจจุบัน
- เลือกเซลล์ C7 กด (Ctrl + ;) + Space + (Ctrl + Shift + ;) จะได้ วันที่และเวลา รวมกัน
2. แทรก Timestamp อัตโนมัติด้วยสูตร (Formula) แบบไดนามิก
ใช้สูตร TODAY และ NOW ค่าจะอัปเดตอัตโนมัติตามวันที่/เวลาปัจจุบัน
2.1 ใช้ฟังก์ชัน TODAY
- เลือกเซลล์ C5 พิมพ์สูตร
=TODAY()>> Enter - คลิกขวาเซลล์ C5 >> Format Cells >> แท็บ Number >> Date >> เลือกแบบ 3-4-12 1:30 PM >> OK
- จะได้ timestamp วันที่และเวลาปัจจุบันในเซลล์ C5
2.2 ใช้ฟังก์ชัน NOW
- เลือกเซลล์ C5 พิมพ์สูตร
=NOW()>> Enter - จะได้ timestamp วันที่และเวลาปัจจุบันทันที
3. ป้อนข้อมูลในคอลัมน์ต่างกัน เพื่อแทรก Timestamp อัตโนมัติ
สมมติว่าต้องการบันทึกเวลาที่พนักงานเข้างาน พนักงานพิมพ์ชื่อในคอลัมน์แรก คอลัมน์ถัดไปจะแสดง timestamp และวันที่อัตโนมัติ ใช้ฟังก์ชัน IF และ NOW ร่วมกัน
ขั้นตอน:
- เซลล์ C5 พิมพ์สูตร:
=IF(B5<>"",IF(C5="",NOW(),C5),"") - กด Enter ลาก Fill Handle จาก C5 ถึง C8
- ไป File >> Options >> Formulas >> ติ๊ก Enable iterative calculation >> OK
- พิมพ์ชื่อพนักงานใน B5 >> จะได้ timestamp อัตโนมัติใน C5
- พิมพ์ชื่อคนอื่นๆ ใน B6, B7... จะได้ timestamp ตามลำดับ
🔎 การทำงานของสูตร:
- NOW(): คืนค่า timestamp ปัจจุบัน
- IF(C5=””,NOW(),C5),””): ถ้า C5 ว่าง ให้คืน timestamp ใหม่ ไม่ว่างให้คงค่าเดิม
- IF(B5<>””,...): ถ้า B5 มีข้อมูล ให้ทำงานตามเงื่อนไขข้างต้น
4. แทรก Timestamp อัตโนมัติด้วย Excel VBA
สำหรับผู้ใช้ Excel ระดับสูงที่คุ้นเคย VBA นี่คืออีกวิธีหนึ่ง
ขั้นตอน:
- คลิกขวาที่แท็บชีทชื่อ VBA >> View Code
- ในหน้าต่าง VBA ใส่รหัสต่อไปนี้:
Private Sub Worksheet_Change(ByVal Target As Range) Dim zInt As Integer Dim zStr As String Dim yzStr As String On Error Resume Next zStr = "B" yzStr = "C" If (Not Application.Intersect(Me.Range(zStr & ":" & zStr), Target) Is Nothing) Then zInt = Target.Row Me.Range(yzStr & zInt) = Format(Now(), "mm/dd/yyyy hh:mm:ss") End If End Sub
- กด Run (หรือ F5) >> สร้าง Macro ชื่อ VBA1 >> Run
- พิมพ์ชื่อในเซลล์ B5 >> จะได้ timestamp ใน C5 อัตโนมัติ
- พิมพ์ชื่อต่อในเซลล์ถัดไป จะได้ timestamp ตามลำดับ
5. แทรก Timestamp อัตโนมัติใน Excel ด้วย Custom Function (VBA)
วิธีนี้ใช้ VBA สร้าง Custom Function เอง
ขั้นตอน:
- ไปแท็บ Developer >> Visual Basic
- ใน Project Explorer คลิกขวาที่ชีทที่ต้องการ (เช่น Sheet6 (Custom)) >> Insert >> Module
- ใน Module ใส่รหัส:
Function TIMESTAMP(Ref As Range) If Ref.Value <> "" Then TIMESTAMP = Format(Now, "dd-mm-yyyy hh:mm:ss") Else TIMESTAMP = "" End If End Function
- กด Save
- ในเซลล์ C5 ใส่สูตร:
=TIMESTAMP(B5)>> Enter - ลาก Fill Handle จาก C5 ถึง C7
- พิมพ์ชื่อใน B5 >> ได้ timestamp ใน C5
- พิมพ์ชื่อต่อใน B6, B7 จะได้ timestamp ตามลำดับ
สรุป
บทความนี้เสนอ 5 วิธี แทรก timestamp อัตโนมัติใน Excel ตั้งแต่ลัดแป้นพิมพ์ สูตร VBA จนถึง Custom Function ดาวน์โหลดไฟล์ตัวอย่างมาฝึกปฏิบัติ หากมีคำถาม คอมเมนต์ด้านล่าง ทีมของเราจะตอบโดยเร็วที่สุด ติดตามโซลูชัน Excel น่าสนใจเพิ่มเติมในอนาคต
บทความที่เกี่ยวข้อง
- แทรกวันที่คงที่ (Static Date) ใน Excel (4 วิธีง่าย)
- แปลง Timestamp เป็น Date ใน Excel (7 วิธีง่าย)
- ลบ Timestamp ออกจาก Date ใน Excel (4 วิธีง่าย)
- Populate Excel Spreadsheet from a Web Form
- สร้าง Data Entry Form พร้อม Drop Down List ใน Excel (2 วิธี)