Khi nhập ngày tháng vào trang tính, Excel cung cấp khá nhiều vĩ độ cho cách bạn nhập chúng. Một lĩnh vực mà vĩ độ được cấp là khi nó bao gồm một năm. Nếu bạn bao gồm một năm (chẳng hạn như 3/2/08), điều đó thật tuyệt. Nếu bạn không bao gồm một năm (chẳng hạn như 3/2), thì Excel sẽ thêm một cách hữu ích năm hiện tại vào những gì bạn đang nhập.

Hầu hết thời gian đây không phải là một vấn đề. Tuy nhiên, nó có thể là một vấn đề đối với những người nhập ngày tháng “xoay quanh” năm ngoái. Ví dụ, nhiều người nhập ngày của một hoặc hai tháng trước vào trang tính của họ. Trong hầu hết các tháng, điều này không phải là vấn đề, bởi vì một hoặc hai tháng qua cùng năm với tháng hiện tại. Tuy nhiên, nó có thể là một vấn đề trong tháng Giêng và tháng Hai, khi bạn có thể nhập các ngày từ tháng 11 và tháng 12 của năm trước.

Một giải pháp là luôn nhập năm khi nhập ngày tháng. Rõ ràng là sẽ nhanh hơn nếu để năm nghỉ trong quá trình nhập dữ liệu và cho phép Excel thêm nó vào mục nhập của bạn. Vì vậy, sẽ rất hay nếu bạn nghĩ ra một cách để nhập ngày tháng trong hai tháng đầu năm và thêm năm trước vào chúng.

Một cách để xử lý điều này là thay đổi ngày hệ thống trên máy tính của bạn.

Trong Windows, giảm ngày hệ thống một năm. Sau đó, tất cả các ngày bạn nhập sẽ thay đổi thành năm ngoái. Tuy nhiên, điều này có sự phân nhánh trong các chương trình khác, trừ khi bạn nhớ thay đổi ngày hệ thống trở lại.

Nó cũng có thể làm rối loạn mục nhập dữ liệu của bạn nếu, trong khoảng cuối tháng 1 và đầu tháng 2, bạn bắt đầu nhập các ngày từ năm nay và Excel sẽ tự động thêm năm ngoái vào chúng.

Làm bất cứ điều gì phức tạp hơn nhất thiết phải sử dụng macro.

Hãy xem xét ví dụ sau, ví dụ này sẽ được thêm vào cửa sổ mã cho một trang tính:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target = "" Then Exit Sub     If Target.Column <> 1 Then Exit Sub

If DateValue(Target) > Date Then         Application.EnableEvents = False             Target = DateAdd("yyyy", -1, Target)

Application.EnableEvents = True     End If End Sub

Macro này tự động chạy bất cứ khi nào có thay đổi trong trang tính. Nếu thay đổi đang được thực hiện đối với một ô duy nhất trong cột A và những gì đang được nhập là một ngày lớn hơn ngày hôm nay, thì một năm sẽ bị trừ cho những gì đang được nhập.

Điều này hoạt động tốt, miễn là bạn thường xuyên nhập các ngày trong năm trước hoặc các tháng cho đến nay trong năm hiện tại. Nếu bạn thêm cụ thể một ngày trong tương lai xa (chẳng hạn như nhập 6/11/17 vào 3/2/16), thì năm đó vẫn tăng thêm một. Tất nhiên, macro có thể được sửa đổi để kiểm tra xem liệu ngày được nhập có phải là trong hai tháng cuối cùng của một năm hay không và ngày đó có thực sự được nhập trong hai tháng đầu năm hay không, trước khi giảm năm.

_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 (3360) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.