Sử dụng hàm nào để xác định khoảng thời gian theo tháng và năm?

Liên hệ QC

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,121
Được thích
24,279
Tôi có 1 bài toán, yêu cầu sử dụng hàm để xác khoảng thời gian theo tháng và năm giữa 2 mốc thời điểm?
Tôi có sử dụng hàm DAYS360 để xác định số ngày chênh rồi chia cho 30 để tính ra tháng, chia 360 để tính năm, có vẻ thô thiển :=\+. (Có file kèm theo)

Không hiểu có cách nào khác hay hơn không?
 

File đính kèm

  • Khoang chenh thoi gian.rar
    1.5 KB · Đọc: 102
Hướng mà hỏi câu này sao ta...
Dùng hàm DATEDIF().
  • Tìm tháng (không trừ đi phần năm): =DATEDIF(Ngày bắt đầu, Ngày kết thúc, "M")
  • Tìm tháng lẻ (đã trừ đi phần năm): =DATEDIF(Ngày bắt đầu, Ngày kết thúc, "YM")
  • Tìm năm: =DATEDIF(Ngày bắt đầu, Ngày kết thúc, "Y")
Nói đừng buồn, hàm DAYS360 là một trong những hàm vô duyên nhất của Excel.
 
Lần chỉnh sửa cuối:
Hướng mà hỏi câu này sao ta...
Dùng hàm DATEDIF().
  • Tìm tháng (không trừ đi phần năm): =DATEDIF(Ngày bắt đầu, Ngày kết thúc, "M")
  • Tìm tháng lẻ (đã trừ đi phần năm): =DATEDIF(Ngày bắt đầu, Ngày kết thúc, "YM")
  • Tìm năm: =DATEDIF(Ngày bắt đầu, Ngày kết thúc, "Y")
Nói đừng buồn, hàm DAYS360 là một trong những hàm vô duyên nhất của Excel.

Đúng vậy, hàm Days360 thật ít khi dùng tới. Nhưng không phải là không có.
Hầu như các Ngân hàng đều tính thời gian dựa vào sự qui đổi 1 năm có 360 ngày. Như vậy nó cũng có ích đấy chứ.
 
Các anh chị ơi cho em hỏi với!
Em cũng có bài toán về xác định khoảng thời gian theo tháng và năm.Em sử dụng cả hàm datadif và hàm days360 nhưng không ra kết quả. VD A: 01/10/2008
B : 01/10/2009
c : 12 tháng
Làm sao để ra cột c là 12 tháng.Em định dạng cột A và B là dd/mm/yyyy có được không? mà sao em làm mãi không ra.
 
Các anh chị ơi cho em hỏi với!
Em cũng có bài toán về xác định khoảng thời gian theo tháng và năm.Em sử dụng cả hàm datadif và hàm days360 nhưng không ra kết quả. VD A: 01/10/2008
B : 01/10/2009
c : 12 tháng
Làm sao để ra cột c là 12 tháng.Em định dạng cột A và B là dd/mm/yyyy có được không? mà sao em làm mãi không ra.

Hàm datedif chứ không phải datadif bạn à. Bạn gửi file lên nha, nếu vẫn chưa được.
hàm DATEDIF
 
Các anh chị ơi cho em hỏi với!
Em cũng có bài toán về xác định khoảng thời gian theo tháng và năm.Em sử dụng cả hàm datadif và hàm days360 nhưng không ra kết quả. VD A: 01/10/2008
B : 01/10/2009
c : 12 tháng
Làm sao để ra cột c là 12 tháng.Em định dạng cột A và B là dd/mm/yyyy có được không? mà sao em làm mãi không ra.
Mình thường tính số tháng giữa 2 khoảng thời gian m1/y1 - m2/y2 như sau:
m = (y2-y1)*12+m2-m1
Cách tính năm cũng tương tự. Bạn thử xem rồi áp dụng trong ứng dụng của mình
Thân
 
Cái file này mình có gửi một lần mà giờ không nhớ thôi gửi lại để mọi người xem các ví dụ về cách tính ngày, tuần, tháng và năm.
 

File đính kèm

  • Tong hop vi du ve EXCELL.rar
    35.9 KB · Đọc: 54
Xem bài của yeudoi em khong hieu lam vi em khong biết gì về marco cả.Mình có sử dụng công thức của kieuvietphuong cũng không được.Anh chị tìm cách giúp em trực tiếp trên file đó với ah.Em làm bảng phân bổ mà cứ ngồi tính từng tháng thì lâu lắm.
Thank các anh chị trước nhé
 
Xem bài của yeudoi em khong hieu lam vi em khong biết gì về marco cả.Mình có sử dụng công thức của kieuvietphuong cũng không được.Anh chị tìm cách giúp em trực tiếp trên file đó với ah.Em làm bảng phân bổ mà cứ ngồi tính từng tháng thì lâu lắm.
Thank các anh chị trước nhé
Cái file Book1.xls bạn gửi ở trên là đúng rồi mà, có gì sai đâu?
Công thức ở G8 là =DATEDIF(D8,E8,"m")
Tôi vừa mở ra xem, và copy công thức luôn cho G8:G12, thấy nó chạy tốt.
Không có gì phải sửa cả.
 
Cái file Book1.xls bạn gửi ở trên là đúng rồi mà, có gì sai đâu?
Công thức ở G8 là =DATEDIF(D8,E8,"m")
Tôi vừa mở ra xem, và copy công thức luôn cho G8:G12, thấy nó chạy tốt.
Không có gì phải sửa cả.
Bác BNTT ơi.Thật là tức chứ.Em xem cùng cái file đó của bạn TKT viết thì vẫn làm bình thường sử dụng datedif được.Sao làm trên cái file của em thì không được toàn báo lỗi #value.Em không biết nguyên nhân sao nữa
 
Bác BNTT ơi.Thật là tức chứ.Em xem cùng cái file đó của bạn TKT viết thì vẫn làm bình thường sử dụng datedif được.Sao làm trên cái file của em thì không được toàn báo lỗi #value.Em không biết nguyên nhân sao nữa
Có thể là do 2 nguyên nhân sau:

1. Định dạng những ô chứa ngày tháng của bạn không phải là dạng ngày tháng năm, mặc dù nhìn vào nó vẫn là ngày tháng năm!

2. Kiểu ngày tháng năm trong máy tính của bạn (thiết lập từ Control Panel) có dạng không phải là dd/mm/yyyy. Hay nói cách khác, kiểu định dạng ngày tháng năm trong máy tính của bạn và trong Excel, không giống nhau.

Bạn kiểm tra lại xem sao.

Tuy nhiên, cái file mà tôi nói là nó chạy tốt đó, là tôi tải từ đường link của bạn gửi, chứ đâu phải tôi mở file của TKT? Ý tôi nói là cái file do chính bạn làm, nó chạy tốt mà, không có lỗi gì hết!
 
Bác BNTT ơi.Thật là tức chứ.Em xem cùng cái file đó của bạn TKT viết thì vẫn làm bình thường sử dụng datedif được.Sao làm trên cái file của em thì không được toàn báo lỗi #value.Em không biết nguyên nhân sao nữa
Lần đầu khi mở file tôi cũng bị như vậy, bạn vào ô đó nhấn F2 (edit) và enter thì trở về như thường, do lúc đầu máy chưa có AddIns Analys Tools...nhưng Office 2003 tự nhận hàm Datedif.
 
Bác BNTT ơi.Thật là tức chứ.Em xem cùng cái file đó của bạn TKT viết thì vẫn làm bình thường sử dụng datedif được.Sao làm trên cái file của em thì không được toàn báo lỗi #value.Em không biết nguyên nhân sao nữa

File book1 của bạn nếu mở bằng EXCEL 2003 sẽ báo lỗi #VALUE

Nhưng nếu mở bằng EXCEL 2007 thì không báo lỗi, bác BILL biết đó là dạng ngày tháng, cho dù được nhập dưới dạng Text (kiểu ngày tháng chẳng qua giống kiểu số)
 
Cảm ơn cả nhà nhé!
Em đã làm được rồi.Tất cả là do phần định dạng của em thôi.Định dạng của máy và của execl khác nhau nên sử dụng công thức không được.Giờ thì ổn rồi
Thank you cả nhà lần nữa. hii
 
Các anh chị ơi!
Em giải quyết song vấn đề đó thì lại ra vấn đề khác nữa. Em ví dụ nhé
ngày bắt đầu đưa CCDC vào sử dụng là 01/02/08
Ngày kết thúc là 31/12/08
tính ra là 11 tháng. Theo nguyên tắc phân bổ CCDC thì phải tính luôn cả tháng 2 là 11 tháng. Nhưng sử dụng hàm datedif thì tính ra có 11 tháng. Anh chị giúp em làm cách nào để ra 11 tháng với ah
 
Các anh chị ơi!
Em giải quyết song vấn đề đó thì lại ra vấn đề khác nữa. Em ví dụ nhé
ngày bắt đầu đưa CCDC vào sử dụng là 01/02/08
Ngày kết thúc là 31/12/08
tính ra là 11 tháng. Theo nguyên tắc phân bổ CCDC thì phải tính luôn cả tháng 2 là 11 tháng. Nhưng sử dụng hàm datedif thì tính ra có 11 tháng. Anh chị giúp em làm cách nào để ra 11 tháng với ah
Không hiểu bạn hỏi cái gì hết! Chỗ nào cũng 11 hết là sao?

Nếu bạn dùng DATEDIF để tính cái này, nó ra kết quả là 10 tháng mới đúng.

Bởi gì hàm DATEDIF rất chính xác. Phải đủ 24 tiếng thì mới tính lên 1 ngày. Phải đủ ngày đủ tháng thì mới tính lên một tháng.

Từ ngày 1/2/2008 đến ngày 31/12/2008, thì còn thiếu vài tiếng đồng hồ nữa mới đúng là 11 tháng, do đó, nó = 10 là đúng.

Trừ phi bạn nhập vào: từ 0 giờ ngày 1/2/2008 đến 24 giờ ngày 31/12/2008, thì nó mới tính đủ cho bạn 11 tháng! Mà 24 giờ ngày 31/12/2008 thì nó bằng 0 giờ ngày 1/1/2009 rồi, bạn hiểu chứ.

Còn muốn làm thế nào cho nó ra 11 thì dễ mà, cộng thêm 1 vào.
Nhưng chuyện này còn tùy vào bạn muốn tính như thế nào. Bạn trả lời dùm tôi câu này:
- Từ chiều hôm qua đến sáng hôm nay là mấy ngày ? 1 ngày hay 2 ngày?​
Nếu bạn nói là 1 ngày, thì bạn hãy dùng hàm DATEDIF.
Còn nếu bạn nói là 2, thì bạn phải cộng thêm 1
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom