Nhập hoặc nhập lần không có dấu hai chấm (Microsoft Excel)
Khi bạn nhập thời gian vào một ô, Excel sẽ đánh dấu sự hiện diện của dấu hai chấm giữa phần giờ và phút của thời gian. Tuy nhiên, do vị trí của dấu hai chấm trên bàn phím, việc nhập dấu hai chấm cho mỗi giá trị thời gian mà bạn nhập có thể làm bạn chậm lại — đặc biệt nếu bạn có khá nhiều giá trị thời gian để nhập.
Vì lý do này, bạn có thể tự hỏi liệu có cách nào để bỏ qua dấu hai chấm và nhập chúng tự động hoặc nhập tất cả cùng một lúc.
Việc nhập chúng tự động sẽ mất nhiều thao tác hơn, yêu cầu sử dụng macro và sẽ được đề cập trong thời gian ngắn. Nhập tất cả các dấu hai chấm cùng một lúc có thể được thực hiện với một công thức, như sau:
=TIMEVALUE(REPLACE(A1,3,0,":"))
Công thức này giả định rằng giá trị thời gian (không có dấu hai chấm) nằm trong ô A1 và nó bao gồm bốn chữ số. Do đó, nếu ô A1 chứa một giá trị chẳng hạn như 1422, thì công thức trả về 14:22 dưới dạng giá trị thời gian thực. (Bạn có thể cần định dạng ô dưới dạng giá trị thời gian.)
Nếu ô mục nhập ban đầu của bạn có thể chứa thời gian chỉ sử dụng ba chữ số, chẳng hạn như 813 thay vì 0813, thì bạn cần sử dụng công thức hơi khác:
=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)
Nếu bạn muốn việc chèn dấu hai chấm diễn ra tự động, bạn có thể sử dụng macro. Bạn có thể tạo một macro sẽ kiểm tra một loạt các ô mà bạn định thêm ngày tháng vào trang tính, sau đó chèn dấu hai chấm vào mục nhập. Điều này được thực hiện bằng cách tạo một macro được kích hoạt bởi sự kiện SheetChange. Macro sau là một như vậy:
Private Sub Workbook_SheetChange(ByVal Sh As Object, _ ByVal Target As Excel.Range) Dim TimeStr As String On Error GoTo EndMacro If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then Exit Sub End If If Target.Cells.Count > 1 Then Exit Sub End If If Target.Value = "" Then Exit Sub End If Application.EnableEvents = False With Target If .HasFormula = False Then Select Case Len(.Value) Case 1 ' e.g., 1 = 00:01 AM TimeStr = "00:0" & .Value Case 2 ' e.g., 12 = 00:12 AM TimeStr = "00:" & .Value Case 3 ' e.g., 735 = 7:35 AM TimeStr = Left(.Value, 1) & ":" & _ Right(.Value, 2) Case 4 ' e.g., 1234 = 12:34 TimeStr = Left(.Value, 2) & ":" & _ Right(.Value, 2) Case Else Err.Raise 0 End Select .Value = TimeValue(TimeStr) End If End With Application.EnableEvents = True Exit Sub EndMacro: MsgBox "You did not enter a valid time" Application.EnableEvents = True ActiveCell.Offset(-1, 0).Select End Sub
Điều đầu tiên macro làm là kiểm tra xem dữ liệu vừa được nhập có nằm trong phạm vi C7: D15 hay không. Nếu không, thì macro sẽ thoát. Nó cũng kiểm tra để đảm bảo rằng chỉ có một ô được chọn và ô đó không trống. Nếu tất cả các tiêu chí này được đáp ứng, thì macro sẽ kiểm tra độ dài của giá trị trong ô và chèn nó bằng các số 0 ở đầu, nếu cần. Macro này dựa trên một macro được tìm thấy trên trang của Chip Pearson, tại đây:
http://cpearson.com/excel/DateTimeEntry.htm
_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 (2412) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: