chuyển đổi dữ liệu năm, ngày, tháng.

Liên hệ QC

qvhabeco

Thành viên mới
Tham gia
10/12/07
Bài viết
14
Được thích
10
Mình muốn chuyển [FONT='.VnTime']PP = 2,2 năm[/FONT][FONT='.VnTime'] = 2 năm 2 tháng 12 ngày[/FONT]
[FONT='.VnTime']Thì làm thế nào các bạn nhỉ?[/FONT]
 
Nếu bạn muốn đổi 2,2 năm = 2 năm 2 tháng 12 ngày
Tôi chắc rằng bạn đang tính theo kiểu 1 năm = 12 tháng, 1 tháng = 30 ngày, 1 năm = 360 ngày

Nếu dùng công thức, bạn làm như sau nhé:

PHP:
Số năm = INT(2.2)
Số tháng = INT((2.2 - INT(2.2)) * 12)
Số ngày = INT(2.2 * 360 - (Số năm * 360) - (Số tháng * 30))
Nếu đặt 2.2 tại ô A1, và ghép hết 3 phần trên lại, ta có công thức:

PHP:
= INT(A1) & " năm " & INT((A1 - INT(A1)) * 12) & " tháng " & INT(A1 * 360 - INT(A1) * 360 - INT((A1 - INT(A1)) * 12) * 30) & " ngày "
Có lẽ bạn thắc mắc tại sao dùng INT cho ngày làm gì, vì lấy số đã cho nhân với 360 là ra tổng số ngày rồi, sau đó đem trừ đi số năm nhân với 360 và trừ đi số tháng nhân với 30, thì phải ra số ngày còn lại (nếu còn) chứ...
Vâng, bạn thử bỏ cái INT() cho phần tính ngày đi... Bạn sẽ thấy:
2.2 = 2 năm 2 tháng 12.0000000000001 ngày
Phải dùng thêm INT() là vậy đó bạn à. Đây là một cái lỗi "trời ơi" của Excel mà chắc chỉ bác Bill mới trị được.
À, riêng phần tính ngày này, thay vì dùng INT(), bạn dùng TRUNC() cũng được.

Không biết có còn cách nào ngắn hơn không (mà không dùng UDF)
 
Có cách nhanh hơn đây

Bạn dùng Custom fomat cell nhé
 

File đính kèm

kongcom đã viết:
Bạn dùng Custom fomat cell nhé
Đúng là cách của bác nhanh thật.

Nhưng bác ơi, làm theo cách của bác, thì 2.2 năm = 13 ngày 3 tháng 2 năm
Em tính nhẩm thôi nhé:
2 năm = 365.25 x 2 = 730.5 ngày
3 tháng, cho trung bình tháng 30 ngày đi, = 90 ngày
cộng thêm 13 ngày nữa, vậy tổng số ngày = 730.5 + 90 + 13 = 833.5 ngày
Bi giờ chia lại cho 365.25 (là con số bác dùng để nhân) = 2.28 (hơn 2.2 rồi bác ơi)
Mà nếu nhân cho 360 thôi, nó cũng ra 2.2 năm = 2 ngày 3 tháng 2 năm
Nội cái 2 năm 3 tháng đã = 810 ngày, là = 2.25 năm rồi...

Còn cái của em, 2 năm 2 tháng 12 ngày: (2 x 360 + 2 x 30 + 12)/360 = 2.2

Cách của bác ngắn, nhưng hình như không đúng, bác à.
 
cách làm của Kongcom không ổn: A1 x 365.25 ra kết quả là số ngày giả sử là N, nếu lấy số ngày này định dạng date (+ customize) sẽ ra ngày tháng năm của ngày thứ N kể từ 00/00/1900. Sẽ có 1 điều sai:

nếu A1 = 0,01 --> N = 3,6525, định dạng ngày sẽ là 03/01/1900 --> định dạng customize --> 3 ngày 1 tháng 00 năm.

Tương tự cho mọi số khác.
 
cảm ơn các bác nhiều;
@BNTT: Chúc bác khoẻ, ăn tết vui vẻ, đầm ấm.
có gì em còn hỏi bác chứ nhỉ.
 
Thế cách của các bạn có chính sác trong khoáng 100 năm không khi mà dùng sai số tới tận 5 ..̉ ngày như vậy ?
 
Web KT

Bài viết mới nhất

Back
Top Bottom