Định dạng ngày tháng trước 1900

Liên hệ QC

Ăn mày dĩ vãng

Thành viên mới
Tham gia
27/5/09
Bài viết
8
Được thích
6
Ngài Bill Gates không sinh ra ở phương Đông nên không hiểu thế nào là tam nguyên cửu vận (180 năm), tôi muốn Excel 2003 hiểu được ngày sinh của một danh nhân thế kỷ 20 - thường sinh vào thế kỷ 19 - tức là trước năm 1900.
Nhờ các anh, các chị giúp đỡ !
 
Ngài Bill Gates không sinh ra ở phương Đông nên không hiểu thế nào là tam nguyên cửu vận (180 năm), tôi muốn Excel 2003 hiểu được ngày sinh của một danh nhân thế kỷ 20 - thường sinh vào thế kỷ 19 - tức là trước năm 1900.
Nhờ các anh, các chị giúp đỡ !
Bạn xem ví dụ ở file đính kèm nhé.
 

File đính kèm

  • EarlyDatesExamples.xls
    46 KB · Đọc: 36
  • tinh tuoi truoc nam 1900.xls
    32 KB · Đọc: 28
Lần chỉnh sửa cuối:
Bạn xem ví dụ ở file đính kèm nhé.
Thật ra để tính tuổi của 1 người sinh trước năm 1900 (như Bác Hồ) cũng chẳng khó khăn gì
Giả sử ta nhập vào cell A1 theo dạng dd/mm/yyyy (dạng Việt Nam)
Vậy ta chỉ cần "dịch" năm sinh thành năm 1900 là có thể dùng hàm DATEDIF được rồi ---> Ra kết quả bao nhiêu ta cộng thêm độ lệch là xong
Ví dụ:
PHP:
=DATEDIF(DATE(1900,MID(A1,4,2),LEFT(A1,2)),TODAY(),"Y")+1900-RIGHT(A1,4)
Với cell A1 có dử liệu = 19/05/1890 thì công thức trên tính ra được đến hôm nay Bác Hồ 119 tuổi
 
Lần chỉnh sửa cuối:
Thật ra để tính tuổi của 1 người sinh trước năm 1900 (như Bác Hồ) cũng chẳng khó khăn gì
Giả sử ta nhập vào cell A1 theo dạng dd/mm/yyyy (dạng Việt Nam)
Vậy ta chỉ cần "dịch" năm sinh thành năm 1900 là có thể dùng hàm DATEDIF được rồi ---> Ra kết quả bao nhiêu ta cộng thêm độ lệch là xong
Ví dụ:
PHP:
=DATEDIF(DATE(1900,MID(A1,4,2),LEFT(A1,2)),TODAY(),"Y")+1900-RIGHT(A1,4)
Với cell A1 có dử liệu = 19/05/1890 thì công thức trên tính ra được đến hôm nay Bác Hồ 119 tuổi
Code VBA đúng thầy à kết quả ra 118t là vì gõ định dạng không đúng chuẩn, thầy thử đổi cell B1 là 09/05/2009 (mm/dd/yyyy)
 
Code VBA đúng thầy à kết quả ra 118t là vì gõ định dạng không đúng chuẩn, thầy thử đổi cell B1 là 09/05/2009 (mm/dd/yyyy)
Vâng! Tôi đã kiểm tra lại và thấy code đúng (vì lúc đầu tưởng nó tính đến TODAY)
Tuy nhiên thuật toán của nó lằng nhằng quá ---> Theo tôi, nếu nó "dịch" năm sinh thành 1900 rồi dùng hàm DateDiff (hàm trong VBA) thì code chỉ có vài dòng
Cái quan trọng nhất ở đây vẫn là phần định dạng của dử liệu nhập, ta phải thống nhất trước mm/dd/yyyy hay dd/mm/yyyy ---> Nếu nhập lung tung thì chắc ăn sẽ cò 2 trường hợp: Hoặc lổi công thức (cái này còn may), hoặc ra kết quả sai bét
 
Web KT
Back
Top Bottom