lỗi ngày tháng

Liên hệ QC

htquyens

Thành viên mới
Tham gia
18/7/09
Bài viết
1
Được thích
1
Trong bài này của em có lỗi phần thời gian.
Không biết định dạng ngày tháng kiểu việt nam( ngày/tháng/năm)
Tính tuổi đến thời điểm hiện tại( tính bằng năm)
 

File đính kèm

  • 2.xls
    15.5 KB · Đọc: 20
Trong bài này của em có lỗi phần thời gian.
Không biết định dạng ngày tháng kiểu việt nam( ngày/tháng/năm)
Tính tuổi đến thời điểm hiện tại( tính bằng năm)

Các bạn chép đoạn code sau vào Module rồi quay về bảng tính test thử nhé

Cú pháp như sau:

=tinhtuoi(startdate, EndDate)

Trong đó:
startdate là ngày tháng năm sinh.
EndDate là năm đích cần tính
VD:
A1=15/06/1977
B1=25/07/2009

Giả sử mình muốn lấy kết quả ở cell C1 thì:

C1=tinhtuoi(A1,B1) enter thì có kết quả như sau:
32 tuoi 1 thang 10 ngay.
PHP:
Function TinhTuoi(startdate As Date, EndDate As Date) As String
Dim intHold As Integer
Dim dayHold As Integer
   intHold = Int(DateDiff("m", startdate, EndDate)) + _
             (EndDate < DateSerial(Year(EndDate), Month(EndDate), Day(startdate)))
   If Day(EndDate) < Day(startdate) Then
      dayHold = DateDiff("d", startdate, DateSerial(Year(startdate), Month(startdate) + 1, 0)) + Day(EndDate)
   Else
      dayHold = Day(EndDate) - Day(startdate)
   End If
    
   TinhTuoi = Int(intHold / 12) & " tuoi " & intHold Mod 12 & " thang " & LTrim(Str(dayHold)) & " ngay."
End Function
Tham khảo thêm file nhé
Thận
 

File đính kèm

  • tinh tuoi.xls
    26 KB · Đọc: 16
Bạn thử xem vd đính kèm có đúng ý bạn không nhé.
 

File đính kèm

  • vdu.xls
    16 KB · Đọc: 17
Bạn xen thế này có đúng không nha
 

File đính kèm

  • 2(1).xls
    16 KB · Đọc: 14
Trong file của bạn có công thức =DATEDIF(C2,"27/7/2009","y"). Cấu trúc và code của nó thế nào, bạn chỉ giúp được không?
Thân

Hàm DateIf là hàm có sẵn trong excel mà bạn. Nếu không có thì bạn vào Tools\Add-Ins. check analys toolpak thử nha

Hàm DATEDIF

Chức năng : Hàm DATEDIF trả về một giá trị, là số ngày, số tháng hay số năm giữa hai khoảng thời gian theo tùy chọn.

Cấu trúc : DATEDIF(firstdate,enddate,option)

- firstdate : là Ngày bắt đầu của khoảng thời gian cần tính toán

- Enddate : là Ngày kết thúc của khoảng thời gian cần tính toán

- Option : là tùy chọn, xác định kết quả tính toán sẽ trả về trong công thức. Các tùy chọn theo sau :

+ "d" : Hàm sẽ trả về số ngày giữa hai khoảng thời gian.

+ "m" : Hàm sẽ trả về số tháng (chỉ lần phần nguyên) giữa hai khoảng thời gian.

+ "y" : Hàm sẽ trả về số năm (chỉ lần phần nguyên) giữa hai khoảng thời gian.

+ "yd" : Hàm sẽ trả về số ngày lẻ của năm (số ngày chưa tròn năm) giữa hai khoảng thời gian.

+ "ym" : Hàm sẽ trả về số tháng lẻ của năm (số tháng chưa tròn năm) giữa hai khoảng thời gian.

+ "md" : Hàm sẽ trả về số ngày lẻ của tháng (số ngày chưa tròn tháng) giữa hai khoảng thời gian.
 
Hàm DateIf là hàm có sẵn trong excel mà bạn. Nếu không có thì bạn vào Tools\Add-Ins. check analys toolpak thử nha
Hàm này có từ đời nào và không liên quan gì đến Analysis toolpak đâu Danh à! ---> Có điều nó lại không nằm trong danh sách hàm
Vấn đề của tác giả nằm ở chổ: Gõ sai cú pháp ngày tháng năm nên có 1 vài cell bị hiểu ở dạng TEXT
Để luôn luôn gõ chính xác, cách tốt nhất hãy gõ theo dạng yyyy/mm/dd ---> Bảo đảm luôn đúng với mọi thiết lập trong Control Panel
------------------
Trong file của bạn có công thức =DATEDIF(C2,"27/7/2009","y"). Cấu trúc và code của nó thế nào, bạn chỉ giúp được không?
Thân
Thật ra công thức của bạn minhtri0827 chỉ đúng trên 1 vài máy tính, nói chung là không chính xác 100%... Các bạn có thể thử trên máy tính có thiết lập Control Panel là mm/dd/yyyy để biết chi tiết
Chắc ăn nhất phải dạng như vầy:
=DATEDIF(C2,"2009/7/27","y")
-------------------
Cái chuyện m/d/yd/m/y đãtừng nói rất nhiều lần trên diển đàn rồi mà hình như mọi người chưa thật sự chú ý nhỉ?
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom