Mục lục
Bài viết này minh họa cách đánh dấu thời gian trong excel khi một ô thay đổi. Bạn có thể cần theo dõi các mục nhập dữ liệu trong các ô của một cột cụ thể. Ví dụ: bạn đã dành riêng cột B để nhập dữ liệu. Bây giờ, bạn muốn có dấu thời gian trong một ô liền kề trong cột C khi một ô được cập nhật trong cột B. Bài viết này sẽ giúp bạn thực hiện điều đó theo 2 cách hiệu quả.
Tải xuống Sách bài tập thực hành
Bạn có thể tải xuống sổ làm việc thực hành từ nút tải xuống bên dưới.
Dấu thời gian trong Excel.xlsm
2 cách để chèn dấu thời gian trong Excel khi ô thay đổi
1. Sử dụng hàm IF, AND, NOW và các hàm khác để chèn dấu thời gian trong Excel
Làm theo các bước bên dưới để lấy dấu thời gian bằng công thức khi một ô thay đổi.
📌 Các bước
- Đầu tiên nhấn ALT+F+T để mở Tùy chọn Excel . Sau đó chuyển đến tab Công thức . Tiếp theo, đánh dấu vào hộp kiểm Bật tính toán lặp lại . Sau đó, đặt Số lần lặp tối đa thành 1. Sau đó, nhấp vào OK.
- Bây giờ, hãy nhập công thức sau vào ô C5 . Sau đó, kéo biểu tượng Fill Handle để sao chép công thức vào các ô bên dưới.
=IF(AND(B5"",D5B5),NOW(),IF(B5="","",C5))
- Sau đó, nhập công thức sau vào ô D5 . Tiếp theo, kéo biểu tượng Fill Handle vào các ô bên dưới như trước đó.
=IF(B5="","",IF(OR(C5="",AND(ISNUMBER(D5),B5=D5)),D5,B5))
- Bây giờ, hãy bắt đầu nhập giá trị vào các ô trong cột B .Sau đó, bạn sẽ nhận được kết quả như sau. Ở đây, cột D là cột trợ giúp. Bạn có thể ẩn nó bằng cách nhấp chuột phải sau khi chọn cột.
- Hoặc, bạn chỉ cần nhập công thức sau vào ô C5 để có kết quả tương tự.
=IF(B5"",IF(C5="",NOW(),C5),"")
- Bạn có thể cần phải thay đổi định dạng của các ô trong cột C . Chọn cột bằng cách nhấp vào số cột ở trên cùng. Sau đó nhấn CTRL+1 để mở hộp thoại Định dạng ô . Bây giờ, nhấp vào định dạng số Tùy chỉnh . Tiếp theo, nhập d-mmm-yyyy hh:mm:ss AM/PM vào trường Type . Cuối cùng, nhấp vào OK.
Phân tích công thức:
Công thức trong ô C5:
➤ IF(B5=””,””,C5))
Hàm IF không trả về gì nếu ô B5 trống. Mặt khác, trả về cùng một giá trị được lưu trữ trong C5 .
➤ NOW()
Hàm NOW trả về giá trị hiện tại ngày và giờ.
➤ AND(B5””,D5B5)
Hàm AND trả về TRUE nếu cả hai đối số là đúng tức là ô B5 không trống và ô B5 và D5 không có cùng giá trị.
➤ IF(AND(B5””,D5B5),NOW(),IF(B5=””,””,C5))
If Hàm AND trả về TRUE , sau đó hàm IF trả về ngày và giờ hiện tại thu được từ hàm NOW . Ngược lại, nó trả về kết quảthu được từ đối số chứa Hàm IF .
Công thức trong Ô D5:
➤ ISNUMBER(D5)
Hàm ISNUMBER trả về TRUE nếu ô D5 chứa một số. Ngược lại, nó trả về Sai .
➤ AND(ISNUMBER(D5),B5=D5)
Hàm AND trả về TRUE nếu ô D5 chứa một số và các ô B5 và D5 có cùng giá trị. Nó trả về FALSE nếu không.
➤ OR(C5=””,AND(ISNUMBER(D5),B5=D5))
The Hàm OR trả về TRUE nếu bất kỳ đối số nào là đúng, tức là ô C5 trống hoặc hàm AND trả về TRUE . Nó trả về FALSE nếu tất cả các đối số đều sai.
➤ IF(OR(C5=””,AND(ISNUMBER(D5),B5=D5)),D5 ,B5)
Hàm IF trả về cùng một giá trị được lưu trong ô D5 nếu Hàm OR trả về TRUE . Ngược lại, nó trả về giá trị của ô B5 .
➤ IF(B5=””,””,IF(OR(C5=””,AND(ISNUMBER(D5 ),B5=D5)),D5,B5))
Hàm IF không trả về gì nếu ô B5 trống. Mặt khác, nó trả về kết quả thu được từ đối số chứa hàm IF .
Đọc thêm: Cách chèn dấu thời gian trong Excel khi ô thay đổi mà không cần VBA (3 cách)
Bài đọc tương tự
- Cách chèn ngày tĩnh trong Excel (4 phương pháp đơn giản)
- Excel VBA: Chèn dấu thời gianKhi Macro đang chạy
- Cách chèn dấu ngày trong Excel khi các ô trong hàng được sửa đổi
- Chuyển đổi dấu thời gian Unix thành ngày trong Excel (3 Phương pháp)
2. Áp dụng mã VBA để chèn dấu thời gian trong Excel khi ô thay đổi
Bạn cũng có thể lấy dấu thời gian trong excel khi một ô thay đổi bằng VBA. Hãy làm theo các bước bên dưới để có thể thực hiện điều đó.
📌 Các bước
- Đầu tiên, nhấp chuột phải vào tab trang tính đích. Sau đó, chọn Xem mã . Thao tác này sẽ mở mô-đun mã cho trang tính cụ thể đó.
- Tiếp theo, sao chép đoạn mã sau bằng cách sử dụng nút sao chép ở góc trên bên phải.
5825
- Sau đó, dán mã đã sao chép vào mô-đun trống như hình bên dưới.
- Tiếp theo, lưu tài liệu dưới dạng sổ làm việc hỗ trợ macro . Bây giờ, hãy bắt đầu nhập dữ liệu vào các ô trong cột B. Sau đó, bạn sẽ nhận được kết quả giống như trước đó.
VBA Giải thích mã:
Thay đổi bảng tính phụ riêng tư (Mục tiêu ByVal dưới dạng phạm vi)
Dim CellCol, TimeCol, Row, Col As Integer
Dim DpRng, Rng As Range
Khai báo các biến cần thiết.
CellCol = 2
Nhập dữ liệu cột.
TimeCol = 3
Cột dấu thời gian.
Hàng = Đích.Hàng
Col = Target.Column
Lưu số hàng và số cột của ô đã chọn.
If Row <= 4 Then ExitPhụ
Mọi thay đổi trong 4 hàng trên cùng sẽ không tạo dấu thời gian.
Dấu thời gian = Định dạng(Hiện tại, “DD-MM-YYYY HH:MM:SS AM/PM”)
Dấu thời gian sẽ được định dạng theo cách này. Thay đổi nó theo yêu cầu.
Nếu Target.Text “” Then
If Col = CellCol Then
Cells(Row, TimeCol) = Timestamp
Tạo dấu thời gian nếu ô được chọn trống.
On Error Resume Next
Bỏ qua bất kỳ lỗi nào nếu xảy ra.
Đặt DpRng = Target.Dependents
Cho mỗi Rng trong DpRng
Nếu Rng.Column = CellCol Then
Cells(Rng.Row, TimeCol) = Dấu thời gian
Tạo dấu thời gian cho một dải ô nếu không trống.
Đọc thêm: Cách tự động chèn các mục nhập dữ liệu dấu thời gian trong Excel (5 phương pháp)
Những điều cần nhớ
- Bạn cần sử dụng tùy chỉnh định dạng cho các ô trong cột B để có dấu thời gian được định dạng đúng.
- Công thức thay thế chỉ hoạt động khi dữ liệu được nhập vào các ô trống.
- Ở đây, mục nhập dữ liệu và cột dấu thời gian rất khó được mã hóa trong mã VBA. Bạn cần sửa đổi mã dựa trên tập dữ liệu của mình.
Kết luận
Bây giờ bạn đã biết cách đánh dấu thời gian trong excel khi một ô thay đổi. Bạn có bất kỳ câu hỏi hoặc đề xuất nào khác không? Vui lòng sử dụng phần bình luận bên dưới cho điều đó. Bạn cũng có thể truy cập blog ExcelWIKI của chúng tôi để khám phá thêm về excel. Ở lại với chúng tôi và tiếp tục học hỏi.