Làm thế nào để cộng theo ngày theo tháng theo năm

Liên hệ QC
anhtuan1066 đã viết:
Bạn xem kỹ lại đi... Ngày tháng năm mà bạn chơi hàm LEFT với RIGHT là thua ngay...
ANH TUẤN
Đã nói đến tính toán ngày tháng năm là trước hết phải nói đến định dạng. Nhưng mọi định dạng thì năm đều ở cuối và ta cộng trừ vô tư theo chuỗi nếu chỉ có cộng mỗi năm. Khi đã có định dạng thì excel lại hiểu theo chuỗi ký tự. Nếu tính toán theo ngày thì dùng các hàm thời gian cộng ngày/định dạng sẽ ra thôi, phức tạp hóa làm gì. Còn tính toán thời gian là tính theo giá trị và hiển thị theo định dạng.
 
Nguyễn Xuân Sơn đã viết:
Hàng xóm của bạn đây!
Bạn làm fai này để tự động nhảy thời hạn là ý tưởng hay. Nhưng ( các ) công trên mà bạn các bạn đưa không ổn để áp dụng cho fai của bạn,. Vì
Thường thời hạn cho vay không chẵn như bạn up lên, nếu thời hạn cho vay theo tháng thì sao? VD: ngày vay 31/12/2006 hạn 37 tháng vv...
Uhm.....đúng rồi, mình đã làm thử và kết quả ra là 40209 , vậy là sao???
 
Đây là bạn chưa vào định dang ngày tháng năm thôi. Còn vấn đề mà mình muốn nói đến là : Nếu làm theo công thức" =date(year(a1),month(a1)+b1,day(a1)) trong đó a1 là ngày vay, b1 là thời hạn trả theo tháng, thì giả sử ngày vay là 31/12/2006; hạn trả là 36 tháng, nó sẽ là ngày .../3/2010 chứ không phải là 28/2/2010 như mong đợi. Nên hàm tính này cần phải có một số điều kiện mới đáp ứng được bảng theo dõi của bạn . Vả lại bảng theo dõi của bạn cũng chưa sát với thực tế, vì thời hạn cho vay không phải là chỉ tính bằng tròn năm, thường là người ta xác định theo chu kỳ vận động của đồng vốn hoặc nguồn trả trả nợ của KH để xác định thời gian trả nợ và thời hạn cho vay nên có thể không chẵn năm mà hay tính bằng tháng )
 
Cái này có thể lấy thời hạn là 1 số tháng chẵn bất kỳ:
- Chẵn năm
A1 là ngày đầu, B1 là số năm
C1=EDATE(A1;B1*12)
- Năm lẻ nhưng tháng chẵn:
A1 là ngày đầu, B1 là số tháng
C1=EDATE(A1;B1)

Chưa xem file nhưng thường tính hạn trả 1 số tháng hoặc 1 số năm thì phải trừ 1. Trả đúng ngày vay coi như trễ hạn 1 ngày vì ngày đầu tiên cũng bị tính.
Dưng mà, phải có Analysis ToolPark.
 
Người ta đang tính thời hạn chứ ko phải là cách tính lãi bạn ạ. Vấn đề hạn trả ( ngày đến hạn ) sẽ hơi khác một chút. VD bạn có sổ T/kiệm ngày gửi 10/10/2006 thời hạn 6 tháng thì 10/4/2007 mới đến hạn và mới đến lĩnh cả gốc và lãi như ghi trên sổ được, còn nếu 09/4/2007 bạn ra lĩnh thì .....
 
THÌ TÔI ĐANG NÓI HẠN TRẢ MÀ, hạn - trả - công - nợ, có nói gì đến lãi đâu?
Tôi nói Ngày đầu tiên cũng bị tínhbị tính vào thời hạn, chưa nói gì đến lãi cả!
Mà chủ yếu là tôi giới thệu hàm EDATE() !!!
Còn cái bạn nói là hạn rút tiền tiết kiệm. Rút sớm ngày nào là còn ngày đó chưa tính lãi. Ngày cuối tính lãi xong, (sau 12giờ đêm) mới cho bạn rút ra là tôi biết rồi.
 
A1=25/12/2007+1000 năm=left(a1,6)&right(a1,4)+1000=25/12/3007. Tính toán bằng chuỗi là tính vượt thời gian mặc định của excel.
 
Lần chỉnh sửa cuối:
Tiger62 đã viết:
Đã nói đến tính toán ngày tháng năm là trước hết phải nói đến định dạng. Nhưng mọi định dạng thì năm đều ở cuối và ta cộng trừ vô tư theo chuỗi nếu chỉ có cộng mỗi năm. Khi đã có định dạng thì excel lại hiểu theo chuỗi ký tự. Nếu tính toán theo ngày thì dùng các hàm thời gian cộng ngày/định dạng sẽ ra thôi, phức tạp hóa làm gì. Còn tính toán thời gian là tính theo giá trị và hiển thị theo định dạng.
Thì bạn cứ xem mục này đi:
http://www.giaiphapexcel.com/forum/showthread.php?t=7041
Nếu bạn dùng LEFT và RIGHT mà có thể cộng trừ dc vào ngày tháng năm thì tôi thua bạn bất cứ cái gì
Bạn cứ thử gõ vào 1 cell: 2/7/2007 rồi lấy RIGHT nó =RIGHT(A1,2) xem thử có ra số 07 ko?
Điều này đã nói rất nhiều trên diển đàn rồi... Ngày tháng năm nhất định ko dc dùng hàm xử lý chuổi đễ tách ngày tháng năm ra dc đâu
Bạn nói rằng:
25/12/2007+5 năm=left(a1,6)&right(a1,4)+5
Ai nói công thức này đúng giơ tay lên! Hi.. hi...
Cái này chỉ có thể ra dc kết quả đúng khi 25/12/2007 của bạn là TEXT... Mà cho dù như thế thì kết quả đúng ấy cũng lại vẫn là TEXT, và chỉ đễ.. ngó cho vui thôi chứ chẳng làm dc trò trống gì... Tính tiền lãi hoặc làm 1 ngành nào đó có liên quan đến TIỀN và THỜI GIAN mà cộng trừ kiểu đó có nước bán nhà hoặc ở tù luôn... ha.. ha..
ANH TUẤN
 
Lần chỉnh sửa cuối:
Nếu bạn Tiger 62 làm và vẫn đúng có nghĩa là:
- 1 là Định dạng text trước khi gõ và phải gõ đủ 25/12/2007
- 2 là gõ đầy đủ: '25/12/2007 dù cho cell đã định dạng kiểu gì.

Nếu không thì left(a1,6)&right(a1,4)+1000 = "3944110441" (chuỗi)

Còn nói về vượt thời gian thì
=DATE(YEAR(A1)+1000;MONTH(A1);DAY(A1)) và
=EDATE(A1;12000)
cũng đều vựot thời gian.

EDATE() còn bảo đảm vụ 29/02 năm nhuận, sure luôn. 5 lon bia cho ai tìm ra chỗ sai.
 
Lần chỉnh sửa cuối:
Mình sưu tầm được công thức tự tạo này không biết có hữu ích cho chủ đề này không nhỉ . Các bạn góp ý nhé ?
Mã:
[B][COLOR=#990000][FONT=Arial]Function Age(Date1 As Date, Date2 As Date) As String[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Dim Y As Integer[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Dim M As Integer[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Dim D As Integer[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Dim Temp1 As Date[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Temp1 = DateSerial(Year(Date2), Month(Date1), Day(Date1))[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Y = Year(Date2) - Year(Date1) + (Temp1 > Date2)[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   M = Month(Date2) - Month(Date1) - (12 * (Temp1 > Date2))[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   D = Day(Date2) - Day(Date1)[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   If D < 0 Then[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]       M = M - 1[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]       D = Day(DateSerial(Year(Date2), Month(Date2), 0)) + D[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   End If[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]   Age = Y & " nam " & M & " thang " & D & " ngay"[/FONT][/COLOR][/B][COLOR=#990000][FONT=Arial]
[/FONT][/COLOR][B][COLOR=#990000][FONT=Arial]End Function[/FONT][/COLOR][/B]
 
Cái này là đễ tính tuổi chính xác đến ngày...
Cũng có thể dùng hàm bình thường cho kết quả y chang nhưng tính toán hơi rắc rối 1 chút...
Mến
ANH TUẤN
 
ptm0412 đã viết:
THÌ TÔI ĐANG NÓI HẠN TRẢ MÀ, hạn - trả - công - nợ, có nói gì đến lãi đâu?
Tôi nói Ngày đầu tiên cũng bị tínhbị tính vào thời hạn, chưa nói gì đến lãi cả!
Mà chủ yếu là tôi giới thệu hàm EDATE() !!!
Còn cái bạn nói là hạn rút tiền tiết kiệm. Rút sớm ngày nào là còn ngày đó chưa tính lãi. Ngày cuối tính lãi xong, (sau 12giờ đêm) mới cho bạn rút ra là tôi biết rồi.
Gửi bạn ptm
Mình không muốn mọi thứ lan man. Tuy nhiên ý định của người đưa ra chủ đề là tính chính xác thời hạn trả nợ theo cách tính cua NH nên mình tham gia thôi.
Vậy không đưa cái khác vào chủ đề nữa nhé, chúng ta tập trung vào cách tính nào cho đạt mục đích của người gởi đề tài đi.
 
Vậy thì nói theo đúng ý chủ đề tài:
=EDATE(A1,B1*12)-1
Phải trừ 1, không oong đơ gì cả. Tôi xem File rồi. Ai đã từng làm khế ước vay ngân hàng thì đều biết.
Mà chưa xem File tôi cũng đã nói thế, không lan man gì cả.

No comment! Ừ thì No lanman!
 
Lần chỉnh sửa cuối:
Máy của mình không chạy dược Analysis ToolPark. vậy cho mình hỏi : Nếu dùng hàm Edate như của bạn thì giả sử ngày vay là 31/12/2006 hạn trả là 36 tháng và hạn tả là 3 tháng thì ngày đến hạn cuối cùng là ngày nào ( theo kết quả của hàm Edate).
 
A1=31/12/2006
1. Edate(A1,36) = 31/12/2009
Hạn trả: Edate(A1,36) - 1 = 30/12/2009
2. Edate(A1,3) = 31/03/2007
Hạn trả Edate(A1,3) - 1 = 30/03/2007

Thông thường trong hợp đồng vay hoặc khế ước nhận nợ, các điều khoản ghi:
. . .
Ngày nhận nợ: 31/12/2006
Thời hạn vay là 36 tháng kể từ ngày nhận nợ.
Ngày trả lãi vay hàng tháng là ngày: 30
Ngày đến hạn trả gốc là ngày 30/12/2009
Lãi suất vay là: 1% / tháng
Lãi quá hạn là: 1,4% / tháng
. . .
Chào,
 
anhtuan1066 đã viết:
Vậy 100 năm bạn SUM sao đây?
Trời!
ai sống đến từng đó tuổi mà tính %#^#$
Nếu không quy đổi về ngày thì tính làm sao bạn? mình cứ coi cách nào đơn giản thì làm, không nên phức tạp hóa vấn đề!
 
nguyentuhp đã viết:
Trời!
ai sống đến từng đó tuổi mà tính
Nếu không quy đổi về ngày thì tính làm sao bạn? mình cứ coi cách nào đơn giản thì làm, không nên phức tạp hóa vấn đề!
Có chứ bạn... Dùng EDATE trong trường hợp này là đơn giãn nhất đấy!
ANH TUẤN
 
Anh Bil xây dựng thành phần tính toán trong các hàm thời gian hầu hết toàn dùng dạng text tức là trong "". Muốn cộng thêm 5 năm 11 tháng 29 ngày( xnăm+ytháng+zngày) sẽ là ngày/tháng/năm nào thì hơi phức tạp nhỉ, còn nếu lại rơi vào năm nhuận, tháng 2???.
 
Lần chỉnh sửa cuối:
Anh Bil cũng có lý khi xây dựng thành phần tính toán trong các hàm thời gian hầu hết toàn dùng dạng text tức là trong "".
bạn có thể cho thí dụ về Anh Bill tính toán thời gian dạng text xem không? Theo mình thấy thì khác: Excel tính toán trên số, thí dụ ngày 30/12/2007 khi tính toán Bill dùng giá trị 39446, sau khi cộng trừ phải kèm theo những phép tính lịch rồi mới cho thể hiện lên kq là ngày, nếu không định dạng ngày thì kq cũng là số.
Công thức như Phamnhukhang sẽ cho kết quả text nhưng cơ bản phải dựa vào ngày vì vẫn dùng hàm day(), Month(), Year().
Bây giờ lấy kết quả bằng text của phamnhukhang (B1), bạn thử cộng 1 (=B1+1), định dạng general xem nó ra kết quả gì?
Rồi bạn lấy A1 là ngày ban đầu cộng 1 (=A1+1), định dạng general xem nó ra kết quả gì?
Còn nếu ngày là text như bạn nói thì phải dùng các hàm về text như Left(), Right(), Mid() . . .Bạn thử dùng left với A1 ( =left(A1,2) )xem nó ra kết quả gì?
Còn muốn cộng thêm 5 năm 11 tháng 29 ngày( xnăm+ytháng+zngày) sẽ là ngày/tháng/năm nào thì hơi phức tạp nhỉ.
Cũng không phức tạp lắm nếu bạn biết hàm edate()
A1 cộng 5 năm 11 tháng 29 ngày = edate(A1,5*12+11)+29
A1 cộng x năm + y tháng + z ngày = edate(A1,12*x+y)+z
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom