Nhờ ai chỉ dùm tôi (hàm thời gian)

Liên hệ QC

kieuhuy_bmt

Thành viên thường trực
Tham gia
18/10/07
Bài viết
288
Được thích
36
Nghề nghiệp
Đang thất nghiệp
Nhờ các Huynh chỉ giúp tôi cách dùng hàm tính thời gian!
(gửi kèm File)
 
Lần chỉnh sửa cuối:
Nhờ các Huynh chỉ giúp tôi cách dùng hàm tính thời gian!
(gửi kèm File)
Tôi thấy bạn nêu chưa rõ điều kiện của bài toán? Tại sao trong cột =DATEDIF(A17;B17;"YM")+1 Bạn lại +1 vậy? Khi điều kiện của bài toán rõ ràng, chi tiết mọi người sẽ rễ giải quyết bài toán này.
 
tại cột tính năm bạn nhập công thức I10=IF(DATEDIF(A10,B10,"YM")+1<12,DATEDIF(A10,B10,"Y"),DATEDIF(A10,B10,"Y")+1)
Cột tính tháng công thức sẽ là
J10=IF(DATEDIF(A10,B10,"YM")+1=12,"",DATEDIF(A10,B10,"YM")+1)
Phần qui đổi tổng dưới cùng bạn xem lại yêu cầu của mình
 

File đính kèm

  • Tinh (TG).xls
    24.5 KB · Đọc: 17
Cho tôi nói cái đoạn ở cuối một tí, là cái chỗ bạn nói "tính tay ra 9 tháng, tính hàm chưa ra" đó.

Bạn có chắc rằng 33 năm + 109 tháng là bằng 42 năm + 9 tháng không?
Bạn tính tay bằng cách nào mà ra cái đáp số đó?

Này nhé: 33 năm + 109 tháng = 33*12 + 109 = 396 + 109 = 505 (tháng)

Còn: 42 năm + 9 tháng = 42*12 + 9 = 504 + 9 = 513 (tháng)

Bạn xem lại cách tính tay nhé.

Nó phải là như vầy nè: 109 tháng = 9 năm + 1 tháng
Nên 33 năm + 109 tháng = 33 năm + 9 năm + 1 tháng = 42 năm + 1 tháng
 
Cảm ơn các Huynh

Ở hai cột bên trái tôi tính nhẩm, ở hai cột bên phải tính bằng hàm song không gọn gàng lắm về vần đề dùng hàm có bạn Sơn đã giúp tôi (cảm ơn bạn).
còn về chỗ bạn BNTT đưa ra thì bạn tính lại xem 109 tháng /12 =9.0833
chắc chắn là 9 năm rồi, còn số lẻ 0.0833 chính là phần dư chưa đủ 1 năm số dó 0.0833 *12 = 0.9996 chính là 9 tháng và lẻ mấy ngày . mình chỉ hiểu đơn giản vậy không biết lý giải thế đúng chưa.
 
Ở hai cột bên trái tôi tính nhẩm, ở hai cột bên phải tính bằng hàm song không gọn gàng lắm về vần đề dùng hàm có bạn Sơn đã giúp tôi (cảm ơn bạn).
còn về chỗ bạn BNTT đưa ra thì bạn tính lại xem 109 tháng /12 =9.0833
chắc chắn là 9 năm rồi, còn số lẻ 0.0833 chính là phần dư chưa đủ 1 năm số dó 0.0833 *12 = 0.9996 chính là 9 tháng và lẻ mấy ngày . mình chỉ hiểu đơn giản vậy không biết lý giải thế đúng chưa.
Trời... tại sao lại phải tính nhẩm 0.0833*12 = 0.9996 làm gì?

Tôi cũng tính nhẩm, nhưng đơn giản hơn bạn, sau khi chia 109 cho 12 được 9.0833, biết là được 9 tháng rồi, tôi lấy 9*12 = 108, vậy so với 109 thì thiếu có mỗi 1 ngày...

Còn tính theo kiểu của bạn, thì phải lý giải thế này, bạn đã nhân 0.0833 cho 12 để có kết quả là 0.9996, và 0.9996 thì xem như bằng 1, và nó chính là 1 tháng mà tôi tính ra theo cách vừa nói ở trên (nó không tròn bằng 1 vì có tháng thì 28 ngày, có tháng 29 ngày, có tháng 30 và có tháng thì 31 ngày, bạn hiểu chứ).

Cái này: 0.9996 chính là 9 tháng và lẻ mấy ngày... Tôi chỉ biết là không đúng. Còn tại sao bạn suy luận ra như vậy thì tôi chịu. À, tôi đoán mò tại sao bạn suy luận 0.9 là 9 tháng nghe. Có lẽ bạn quên mất 1 năm có 12 tháng, mà bạn nghĩ rằng một năm có 10 tháng... (tôi đoán mò thôi, nếu không phải bạn suy luận như vậy thì cho tôi xin lỗi. Bài này làm tôi chợt nhớ đến có một bài có một bạn yêu cầu phải hiểu rằng 5,6 là 5 năm và 6 tháng...)
 
còn về chỗ bạn BNTT đưa ra thì bạn tính lại xem 109 tháng /12 =9.0833
chắc chắn là 9 năm rồi, còn số lẻ 0.0833 chính là phần dư chưa đủ 1 năm số dó 0.0833 *12 = 0.9996 chính là 9 tháng và lẻ mấy ngày . mình chỉ hiểu đơn giản vậy không biết lý giải thế đúng chưa.
thì tôi đã tính cho bạn rồi đấy thôi.Này nhé,109 tháng nếu chia cho 12 tháng,phần kết quả nguyên chính là năm, ta được 9 năm, int(109/12)=9, còn phần dư lại chính là số tháng. vậy thì ta sử dụng phép chia lấy phần dư =mod(109,12) sẽ cho kết quả là 1 tháng. Đem chia 1 cho 12 làm gì cho mệt sau đó lại phải nhân với 12 để qui đổi ra số tháng.
Thắc mắc của bạn ở trên,bạn xem lại,phần dư 0.8333 đó đơn vị phải tính là năm và 0.9996 đó chính là tháng.Nó chưa tròn 1 tháng do bạn chưa lấy hết số lẻ của 0.8333 chứ không thể là 9 tháng và lẻ mấy ngày được.Vả lại trong bảng dữ liệu của bạn chỉ có tròn tháng chứ đâu có liên quan gì đến số ngày đâu,và như vầy nếu 1 ai đóng bảo hiểm từ ngày 31/12/2007 đến ngày 1/1/2008 thì sẽ có kết quả là 1 tháng(điều này thực tế không có) và kết quả chưa chính xác.
Tôi giải thích vậy chắc bạn đã hiểu cách qui đổi tháng và tôi thì hiểu cách tính của bảo hiểm luôn luôn từ ngày đầu tháng và kết thúc là ngày cuối tháng,phải không bạn.
 
Cảm ơn các Huynh một lần nữa

Mình sai rồi! cám ơn các bạn. Kg hiểu vì sao mình lại kg kiểm tra
mà lại khẳng định như vậy(chắc là trình độ chỉ đến vậy).Mình gửi lại File
 
Lần chỉnh sửa cuối:
Mình sai rồi! cám ơn các bạn. Kg hiểu vì sao mình lại kg kiểm tra
mà lại khẳng định như vậy(chắc là trình độ chỉ đến vậy).Mình gửi lại File

sao phức tạp thế , làm như sau là đủ:

- công thức ô G10
PHP:
=DATEDIF(A10,B10,"Y")

- công thức ô H10
PHP:
=DATEDIF(A10,B10,"M")+1-G10*12

và copy cho các ô khác là được

thế nhe,
 
...Vả lại trong bảng dữ liệu của bạn chỉ có tròn tháng chứ đâu có liên quan gì đến số ngày đâu,và như vầy nếu 1 ai đóng bảo hiểm từ ngày 31/12/2007 đến ngày 1/1/2008 thì sẽ có kết quả là 1 tháng(điều này thực tế không có) và kết quả chưa chính xác...
Tôi xin góp ý ngoài lề với bạn kieuhuy_bmt một tí.
Như bạn Cao Mạnh Sơn có nói ở trên, bạn làm thống kê bảo hiểm mà không nhập phần "ngày" thì sẽ không chính xác đâu.

Và liên quan đến Excel, nếu bạn nhập ngày được bảo hiểm (TỪ NGÀY và ĐẾN NGÀY) mà có đủ NGÀY, THÁNG, NĂM thì bạn sẽ thấy hàm DATEDIF() làm việc rất chính xác, không có cần phải cộng trừ thêm làm gì đâu.
Cụ thể là nếu số ngày chưa đủ một tháng, hay số tháng chưa đủ một năm... thì không bao giờ DATEDIF lại tăng thêm 1 cả.
Bạn có thể nghiên cứu thêm hàm DATEDIF ở đây: http://www.giaiphapexcel.com/forum/showpost.php?p=51019&postcount=13
 
Web KT
Back
Top Bottom