Nếu bạn định dạng một ô cho thời gian đã trôi qua (sử dụng định dạng hiển thị tùy chỉnh là [h]: mm: ss), thì Excel sẽ cho phép bạn nhập giờ, phút và giây vào ô đó. Ví dụ: bạn có thể chỉ cần nhập 129: 14: 30 để biểu thị 129 giờ, 14 phút và 30 giây. Tuy nhiên, bạn gặp phải sự cố nếu bạn cố gắng nhập các giá trị thời gian rất lớn vào ô. Khi bạn cố gắng nhập các giá trị thời gian vượt quá 10.000 giờ, như trong 12721: 52: 45, thì Excel sẽ không phân tích cú pháp mục nhập dưới dạng thời gian mà xử lý nó dưới dạng văn bản.

Điều thú vị là khi một ô được định dạng cho thời gian đã trôi qua bằng cách sử dụng [h]: mm: ss, ô đó có thể dễ dàng hiển thị thời gian đã trôi qua hơn 10.000 giờ. Do đó, bạn có thể tính tổng một dải ô để dẫn đến giá trị lớn hơn 10.000 giờ, nhưng bạn không thể nhập giá trị lớn hơn.

Thật không may, dường như không có cách nào giải quyết vấn đề này trong Excel. Tuy nhiên, giải pháp tốt nhất có thể là xem xét lại cách nhập dữ liệu. Xét cho cùng, 10.000 giờ tương đương với 416 ngày và 16 giờ — hơn một năm.

Bạn có thể dễ dàng tạo một cột để nhập ngày và sử dụng một cột khác cho từng phần ngày. Sau đó, cột thứ ba có thể sử dụng công thức để trả về số giờ đã trôi qua dựa trên hai cột còn lại.

Một giải pháp khác là không dựa vào Excel để phân tích dữ liệu đầu vào của bạn. Nếu bạn có một số giờ lớn để nhập (chẳng hạn như 32.315), thì bạn có thể nhập như sau vào ô:

=32315/24

Excel duy trì những gì bạn nhập dưới dạng công thức, nhưng hiển thị số giờ, phút và giây thích hợp. Nếu bạn muốn chính xác hơn, bạn có thể nhập số phân số đại diện cho phần giờ được biểu thị bằng thời gian của bạn. Ví dụ, 37 phút 15 giây là 0,620833 của một giờ. Do đó, bạn có thể nhập giờ như sau:

=32315.620833/24

Tất nhiên, việc nhập thời gian theo cách này có thể trở nên tẻ nhạt, đặc biệt là khi bạn đã tính phần phân số của một giờ được biểu thị bằng phút và giây. Để khắc phục điều này, bạn có thể tạo một hàm tùy chỉnh cho phép bạn nhập giờ, phút, giây và trả về một giá trị có thể dễ dàng định dạng bằng cách sử dụng định dạng thời gian đã trôi qua.

Hàm sau sẽ thực hiện thủ thuật:

Public Function RealBigTime(hr As Double, _   min As Double, sec As Double) As Double     Dim hr1 As Double     Dim min1 As Double     Dim sec1 As Double

Application.Volatile     hr1 = hr / 24     min1 = min / 24 / 60     sec1 = sec / 24 / 60 / 60     RealBigTime = hr1 + min1 + sec1 End Function

Sau khi tạo hàm, hãy nhập một cái gì đó như = RealBigTime (32341,30,45) vào một ô. Kết quả là một giá trị có thể được định dạng với định dạng thời gian đã trôi qua thành 32341: 30: 45.

_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 (2038) á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: