Donna cần ghi nhật ký các hoạt động diễn ra trong ngày tại trung tâm điều phối của cô ấy. Khi một cuộc gọi đến qua radio, cô ấy cần ghi lại ai, cái gì, tại sao, v.v. Cô ấy cũng cần ghi lại thời gian (ở định dạng 24 giờ) mà cuộc gọi đến. Donna hiện đang làm tất cả những điều này trên giấy. Cô ấy muốn tạo một trang tính mà cô ấy có thể nhập vào và có dấu thời gian tự động điền ngay sau khi cô ấy nhập văn bản vào ô bên cạnh nó trong hàng đó. Khi ô bên cạnh nó trống, cô ấy muốn ô dấu thời gian của mình để trống. Bằng cách này, cô ấy có thể tiết kiệm thời gian từ việc kiểm tra đồng hồ để ghi lại thời gian.

Khi tiếp cận vấn đề này, giả sử rằng bạn muốn dấu thời gian đi vào cột A và bạn sẽ nhập “ai, cái gì, tại sao” và thông tin khác bắt đầu từ cột B. Cách đơn giản nhất để thực hiện điều này là sử dụng phím tắt tích hợp của Excel để nhập thời gian hiện tại: nhấn Shift + Ctrl +; (đó là dấu chấm phẩy). Với điều kiện ô được định dạng để hiển thị thời gian ở định dạng 24 giờ, bạn sẽ thấy thời gian hiện tại như ý muốn.

Nếu bạn muốn một cách tiếp cận tự động hơn, bạn có thể nghĩ rằng bạn có thể sử dụng một công thức đơn giản trong cột A, chẳng hạn như sau:

=IF(B2<>"", NOW(), "")

Mặc dù điều này sẽ nhập thời gian vào cột A nếu ô tương ứng trong cột B có chứa nội dung nào đó, nhưng nó sẽ không cho kết quả khả quan vì cách hoạt động của hàm NOW. Hãy nhớ rằng hàm luôn trả về thời gian hiện tại. Do đó, bất cứ khi nào trang tính được tính toán lại, nội dung của ô B2 sẽ được kiểm tra. Nếu có thứ gì đó ở đó, thì hàm NOW được gọi, trả về thời gian tính toán lại hiện tại.

Điều này có nghĩa là thời gian hiển thị trong ô cột A chứa công thức này sẽ luôn thay đổi; nó sẽ không phải là một dấu thời gian thực sự.

Tuy nhiên, bạn có thể làm cho công thức trong cột A phức tạp hơn một chút, theo cách này:

=IF(B2<>"", IF(A2="",NOW(),A2), "")

Lần đầu tiên bạn nhập mã này, có thể bạn sẽ gặp lỗi vì công thức là hình tròn. Nói cách khác, công thức tham chiếu đến ô mà công thức được đặt. (Trong trường hợp này, công thức đi vào ô A2 và cũng tham chiếu đến ô A2.) Để làm cho công thức này hoạt động đúng, bạn cần làm theo các bước sau:

  1. Hiển thị hộp thoại Tùy chọn Excel. (Trong Excel 2007, hãy nhấp vào nút Office và sau đó nhấp vào Tùy chọn Excel. Trong Excel 2010 hoặc các phiên bản mới hơn, hiển thị tab Tệp của dải băng và sau đó nhấp vào Tùy chọn.)

  2. Nhấp vào Công thức ở phía bên trái của màn hình. (Xem Hình 1.)

  3. Đảm bảo rằng hộp kiểm Bật tính toán lặp lại được chọn.

  4. Bấm OK.

Bây giờ, bất cứ khi nào bạn đặt thứ gì đó vào ô B2, thời gian sẽ được nhập tự động vào ô A2. Tuy nhiên, thời gian chỉ được đặt ở đó nếu trước đó ô A2 trống. Nếu nó không phải (nghĩa là nó đã chứa một thời gian), thì nội dung hiện tại của ô A2 vẫn ở nguyên vị trí.

Nếu bạn không muốn cho phép tham chiếu vòng tròn (bằng cách bật tính toán lặp lại), thì cách tốt nhất là thông qua macro.

Bạn có thể sử dụng sự kiện Worksheet_Change để tự động nhập thời gian vào cột A bất cứ khi nào có nội dung nào đó được nhập vào cột B.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rInt As Range     Dim rCell As Range     Dim tCell As Range

Set rInt = Intersect(Target, Range("B:B"))

If Not rInt Is Nothing Then         For Each rCell In rInt             Set tCell = rCell.Offset(0, -1)

If IsEmpty(tCell) Then                 tCell = Now                 tCell.NumberFormat = "mmm d, yyyy hh:mm"

End If         Next     End If End Sub

Để thiết lập macro, bấm chuột phải vào tab trang tính và chọn Mã Chế độ xem. Sau đó, bạn có thể đặt macro vào cửa sổ mã được hiển thị. (Điều này đặt macro trong mô-đun ThisWorksheet, được yêu cầu vì nó là một trình xử lý sự kiện được thực thi bất cứ khi nào có điều gì đó trong trang tính thay đổi.)

Macro sẽ kiểm tra để đảm bảo rằng một cái gì đó thực sự đang được nhập vào cột B. Nếu vậy, thì biến tCell được đặt thành ô tương ứng trong cột A. Nếu chưa có gì trong ô đó, thì ngày và giờ hiện tại được đặt ở đó . Nếu bạn chỉ muốn thời gian, hãy thay đổi phần trong cùng của macro thành phần này:

tCell = Time                 tCell.NumberFormat = "hh:mm"

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (13233) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.