สารบัญ
บทความนี้แสดงวิธีประทับเวลาใน excel เมื่อเซลล์เปลี่ยนแปลง คุณอาจต้องติดตามการป้อนข้อมูลในเซลล์ของคอลัมน์ใดคอลัมน์หนึ่ง ตัวอย่างเช่น คุณสงวนคอลัมน์ B เพื่อป้อนข้อมูล ตอนนี้คุณต้องการการประทับเวลาในเซลล์ที่อยู่ติดกันในคอลัมน์ C เมื่อเซลล์ได้รับการปรับปรุงในคอลัมน์ B บทความนี้จะช่วยให้คุณดำเนินการดังกล่าวได้อย่างมีประสิทธิภาพ 2 วิธี
ดาวน์โหลดสมุดงานแบบฝึกหัด
คุณ สามารถดาวน์โหลดสมุดงานแบบฝึกได้จากปุ่มดาวน์โหลดด้านล่าง
การประทับเวลาใน Excel.xlsm
2 วิธีในการแทรกการประทับเวลาใน Excel เมื่อเซลล์เปลี่ยนแปลง
1. ใช้ IF, AND, NOW และฟังก์ชันอื่นๆ เพื่อแทรก Timestamp ใน Excel
ทำตามขั้นตอนด้านล่างเพื่อรับการประทับเวลาโดยใช้สูตรเมื่อเซลล์เปลี่ยนแปลง
📌 ขั้นตอน
- กดครั้งแรก ALT+F+T เพื่อเปิด ตัวเลือก Excel จากนั้นไปที่แท็บ สูตร ถัดไป ทำเครื่องหมายที่ช่องทำเครื่องหมาย เปิดใช้งานการคำนวณซ้ำ จากนั้น ตั้งค่า การวนซ้ำสูงสุด เป็น 1 หลังจากนั้น ให้คลิก ตกลง
- ตอนนี้ ป้อนสูตรต่อไปนี้ในเซลล์ C5 . จากนั้นลากไอคอน Fill Handle เพื่อคัดลอกสูตรไปยังเซลล์ด้านล่าง
=IF(AND(B5"",D5B5),NOW(),IF(B5="","",C5))
- จากนั้น ป้อนสูตรต่อไปนี้ในเซลล์ D5 จากนั้นลากไอคอน Fill Handle ไปยังเซลล์ด้านล่างตามเดิม
=IF(B5="","",IF(OR(C5="",AND(ISNUMBER(D5),B5=D5)),D5,B5))
- ตอนนี้ เริ่มป้อนค่าในเซลล์ใน คอลัมน์ B หลังจากนั้นคุณจะได้ผลลัพธ์ดังต่อไปนี้ ที่นี่ คอลัมน์ D เป็นคอลัมน์ตัวช่วย คุณสามารถซ่อนได้โดยคลิกขวาหลังจากเลือกคอลัมน์
- อีกทางหนึ่ง คุณสามารถป้อนสูตรต่อไปนี้ในเซลล์ C5 เพื่อให้ได้ผลลัพธ์เดียวกัน
=IF(B5"",IF(C5="",NOW(),C5),"")
- คุณอาจต้องเปลี่ยนรูปแบบของ เซลล์ใน คอลัมน์ C เลือกคอลัมน์โดยคลิกหมายเลขคอลัมน์ที่ด้านบน จากนั้นกด CTRL+1 เพื่อเปิดกล่องโต้ตอบ จัดรูปแบบเซลล์ ตอนนี้ คลิกที่รูปแบบตัวเลข กำหนดเอง ถัดไป ป้อน d-mmm-yyyy hh:mm:ss AM/PM ในฟิลด์ ประเภท สุดท้าย คลิกตกลง
การแบ่งสูตร:
สูตรในเซลล์ C5:
➤ IF(B5=””,””,C5))
ฟังก์ชัน IF ไม่คืนค่าใดๆ ถ้าเซลล์ B5 ว่างเปล่า มิฉะนั้น ส่งกลับค่าเดียวกันที่เก็บไว้ใน C5 .
➤ NOW()
ฟังก์ชัน NOW ส่งกลับค่าปัจจุบัน วันที่และเวลา
➤ AND(B5””,D5B5)
ฟังก์ชัน AND ส่งกลับ TRUE ถ้าทั้งคู่ อาร์กิวเมนต์เป็นจริง เช่น เซลล์ B5 ไม่ว่างเปล่า และ เซลล์ B5 และ D5 ไม่มีค่าเท่ากัน
➤ IF(AND(B5””,D5B5),NOW(),IF(B5=””,””,C5))
หากฟังก์ชัน AND ส่งกลับ TRUE จากนั้น ฟังก์ชัน IF ส่งกลับวันที่และเวลาปัจจุบันที่ได้รับจาก ฟังก์ชัน NOW มิฉะนั้นจะส่งกลับผลลัพธ์ได้รับจากอาร์กิวเมนต์ที่มี ฟังก์ชัน IF .
สูตรในเซลล์ D5:
➤ ISNUMBER(D5)
ฟังก์ชัน ISNUMBER ส่งคืน TRUE ถ้าเซลล์ D5 มีตัวเลข มิฉะนั้น จะคืนค่า เท็จ .
➤ AND(ISNUMBER(D5),B5=D5)
ฟังก์ชัน AND ส่งคืน TRUE ถ้าเซลล์ D5 มีตัวเลข และเซลล์ B5 และ D5 มีค่าเท่ากัน มันจะคืนค่า FALSE มิฉะนั้น
➤ OR(C5=””,AND(ISNUMBER(D5),B5=D5))
The ฟังก์ชัน OR ส่งคืน TRUE หากอาร์กิวเมนต์ตัวใดตัวหนึ่งเป็นจริง เช่น เซลล์ C5 ว่างเปล่า หรือฟังก์ชัน AND ส่งคืน TRUE . จะส่งกลับ FALSE ถ้าอาร์กิวเมนต์ทั้งหมดเป็นเท็จ
➤ IF(OR(C5=”",AND(ISNUMBER(D5),B5=D5)),D5 ,B5)
ฟังก์ชัน IF ส่งกลับค่าเดียวกันที่เก็บไว้ในเซลล์ D5 ถ้าฟังก์ชัน OR ส่งกลับ TRUE . มิฉะนั้น จะส่งกลับค่าของเซลล์ B5 .
➤ IF(B5=””,””,IF(OR(C5=””),AND(ISNUMBER(D5 ),B5=D5)),D5,B5))
ฟังก์ชัน IF ไม่ส่งคืนค่าใดๆ หากเซลล์ B5 ว่างเปล่า มิฉะนั้น จะส่งคืนผลลัพธ์ที่ได้รับจากอาร์กิวเมนต์ที่มี ฟังก์ชัน IF
อ่านเพิ่มเติม: วิธีแทรกการประทับเวลาของ Excel เมื่อเซลล์เปลี่ยนแปลงโดยไม่มี VBA (3 วิธี)
การอ่านที่คล้ายกัน
- วิธีแทรกวันที่แบบคงที่ใน Excel (4 วิธีง่ายๆ)
- Excel VBA: แทรกการประทับเวลาเมื่อเรียกใช้มาโคร
- วิธีแทรกตราประทับวันที่ของ Excel เมื่อเซลล์ในแถวถูกแก้ไข
- แปลง Unix Timestamp เป็นวันที่ใน Excel (3 วิธีการ)
2. ใช้โค้ด VBA เพื่อแทรกการประทับเวลาใน Excel เมื่อเซลล์เปลี่ยนแปลง
คุณยังสามารถรับการประทับเวลาใน excel เมื่อเซลล์เปลี่ยนแปลงโดยใช้ VBA ทำตามขั้นตอนด้านล่างเพื่อดำเนินการดังกล่าว
📌 ขั้นตอน
- ขั้นแรก ให้คลิกขวาที่แท็บแผ่นงานเป้าหมาย จากนั้น เลือก ดูโค้ด การดำเนินการนี้จะเปิดโมดูลโค้ดสำหรับเวิร์กชีตนั้นๆ
- ถัดไป คัดลอกโค้ดต่อไปนี้โดยใช้ปุ่มคัดลอกที่มุมขวาบน
3049
- หลังจากนั้น วางโค้ดที่คัดลอกไว้บนโมดูลว่างตามที่แสดงด้านล่าง
- ถัดไป บันทึก เอกสารเป็น สมุดงานที่เปิดใช้งานมาโคร ตอนนี้ เริ่มป้อนข้อมูลในเซลล์ในคอลัมน์ B จากนั้นคุณจะได้ผลลัพธ์เหมือนกับก่อนหน้านี้
VBA คำอธิบายโค้ด:
แผ่นงานย่อยส่วนตัว_การเปลี่ยนแปลง (ByVal Target As Range)
Dim CellCol, TimeCol, Row, Col As Integer
Dim DpRng, Rng As Range
การประกาศตัวแปรที่จำเป็น
CellCol = 2
การป้อนข้อมูล คอลัมน์
TimeCol = 3
คอลัมน์ประทับเวลา
Row = Target.Row
Col = Target.Column
จัดเก็บหมายเลขแถวและคอลัมน์ของเซลล์ที่เลือก
หากแถว <= 4 แล้วออกย่อย
การเปลี่ยนแปลงใดๆ ภายในแถว 4 อันดับแรกจะไม่สร้างการประทับเวลา
การประทับเวลา = รูปแบบ(ตอนนี้ “DD-MM-YYYY HH:MM:SS AM/PM”)
การประทับเวลาจะเป็นรูปแบบนี้ เปลี่ยนตามต้องการ
ถ้า Target.Text “” แล้วก็
ถ้า Col = CellCol แล้วก็
เซลล์(แถว, TimeCol) = การประทับเวลา
สร้างการประทับเวลาหากเซลล์ที่เลือกว่างเปล่า
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ถัดไป
ละเว้น หากเกิดข้อผิดพลาดขึ้น
ตั้งค่า DpRng = Target.Dependents
สำหรับแต่ละ Rng ใน DpRng
หาก Rng.Column = CellCol จากนั้น
เซลล์ (Rng.Row, TimeCol) = การประทับเวลา
สร้างการประทับเวลาสำหรับช่วงของเซลล์ถ้าไม่ว่างเปล่า
อ่านเพิ่มเติม: วิธีแทรกรายการข้อมูลประทับเวลาใน Excel โดยอัตโนมัติ (5 วิธี)
สิ่งที่ควรจำ
- คุณต้องใช้การกำหนดเอง จัดรูปแบบสำหรับเซลล์ในคอลัมน์ B เพื่อให้ได้การประทับเวลาที่มีรูปแบบถูกต้อง
- สูตรสำรองจะทำงานเฉพาะเมื่อป้อนข้อมูลในเซลล์ว่างเท่านั้น
- ที่นี่ การป้อนข้อมูลและคอลัมน์ประทับเวลาเป็นเรื่องยาก เข้ารหัสในรหัส VBA คุณต้องแก้ไขโค้ดตามชุดข้อมูลของคุณ
สรุป
ตอนนี้คุณรู้วิธีประทับเวลาใน excel เมื่อเซลล์เปลี่ยนแปลง คุณมีคำถามหรือข้อเสนอแนะเพิ่มเติมหรือไม่? โปรดใช้ส่วนความคิดเห็นด้านล่างสำหรับสิ่งนั้น คุณยังสามารถเยี่ยมชมบล็อก ExcelWIKI ของเราเพื่อสำรวจเพิ่มเติมเกี่ยวกับ excel อยู่กับเราและเรียนรู้ต่อไป