Mình muốn quy tròn time ví dụ 2h20'21" thì thành 3h còn nếu 2h20'19" thì thành 2h thì làm thế nào các bạn nhỉ -nghĩa là lớn hơn 20'20" thì làm tròn lên thành 1giờ. Mình thấy phải chuyển về dạng thập phân rồi round, có cách nào tiện hơn không ?
Dùng ROUND thì tôi nghĩ chưa ra.
Nhưng làm theo cái này:
Lớn hơn 20'20" thì làm tròn lên thành 1 giờ
Thì làm được.
Nghĩa là ta sẽ lấy phần phút và giây của giá trị thời gian đã cho, so sánh với 20'21", nếu nó lớn hơn hoặc bằng 20'21" thì làm tròn lên 1 giờ chẵn, còn nếu nhỏ hơn thì làm tròn xuống giờ hiện hành.
Trước hết, phải xác định 20'21" là bằng bao nhiêu (theo quy ước của Excel).
Excel xem tổng thời gian của 1 ngày = 1.
Mà một ngày thì có 24x60x60 = 86400 giây, do đó 1 giây (theo Excel) = 1/86400
Vậy, 20'21" = 20x60 + 21 = 1221 giây, hay thời gian này (20'21") theo Excel = 1221/86400
Tiếp theo, xác định xem 1 giờ bằng bao nhiêu (theo Excel). Như trên tôi đã nói, tổng thời gian trong 1 ngày là 1, do đó 1 giờ = 1/24
Bây giờ, trích lấy phần giờ trong giá trị thời gian đã cho. Giả sử bạn nhập giá trị thời gian trong ô B1. Thì phần giờ trong giá trị thời gian đó sẽ là:
= HOUR(B1)*1/24
Suy ra phần phút và giây trong giá trị thời gian ở B1 là:
= B1 - HOUR(B1)*1/24
Việc cuối cùng là đem so sánh giá trị phút và giây này với 20'21", và dùng hàm TIME(giờ, phút, giây) để ghép lại.
Công thức để "Lớn hơn 20'20" thì làm tròn lên thành 1 giờ" như sau:
= TIME(IF(B1 - HOUR(B1)*1/24 >= 1221/86400, HOUR(B1)+1, HOUR(B1)), 0, 0)
Thử nhé:
B1 là 4:15:17, công thức trên sẽ ra kết quả là 4:00:00
B1 là 5:20:22, công thức trên sẽ ra kết quả là 6:00:00
Đúng ý bạn không?
Nếu bạn không thích so sánh với 20'21", mà là một giá trị khác, thì bạn làm theo cách tôi đã nói ở trên, quy cái thời gian mấy phút mấy giây này thành giây rồi chia cho 86400.
Nhưng nói thiệt, công thức này tôi vẫn chưa vừa ý, vì hơi dài dòng, nhưng chưa nghĩ ra có cách nào cho nó ngắn hơn.
----------------
Bây giờ mới để ý bạn có gửi kèm cái File. Tôi đưa công thức ở trên vào file đó cho bạn xem nè: