Cần hướng dẫn Công thức tính đếm tháng năm !

Liên hệ QC

nobitavietnam

Thành viên mới
Tham gia
5/9/07
Bài viết
4
Được thích
0
Tôi đang làm bên Bảo hiểm xã hội ... có 1 số nghiệp vụ phát sinh về ký xác nhận thời gian tham gia BHXH ... các bạn giúp tôi vấn đề này

+ Tháng 1 đến tháng 12 là : 12 tháng là :1 năm

ví dụ : từ tháng 01/1990 đến tháng 2 năm 1991 là 14 tháng = 1 năm + 2 tháng

trong khoảng thời gian từ tháng 1/1990 đến tháng 2/1991 có 2 tháng 7 và 8/1990 là ko tham gia ... nên trừ ra là còn 12 tháng = 1 năm ...

++++>>> Bạn nào giúp mình viết 1 công thức giúp với ...

cám ơn nhiều !
 
Chào bạn,
Bạn diễn giải hơi chung chung quá, không biết là trong danh mục ngoài tháng 7, tháng 8 ra còn có ai không tham gia tháng 5, tháng 6 hay không? tốt nhất bạn nên gửi file ví dụ của bạn lên, mọi người sẽ dễ hình dung và hỗ trợ bạn dễ hơn. Thân.
 
Tốt nhất là bạn hảy gửi file lên đi mọi người sẽ giúp cho.
Vấn đề của bạn có thể giải quyết bằng cách sử dụng hàm datedif() để tính thời gian, sau đó trừ đi thời gian không tham gia.

Bạn hảy thử như thế này xem sao :
=DATEDIF("01/01/2008", "31/12/2009", "M")-DATEDIF("01/05/2008", "31/08/2009", "M")
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn hảy thử như thế này xem sao :
=DATEDIF("01/01/2008", "31/12/2009", "M")-DATEDIF("01/05/2008", "31/08/2009", "M")

Hàm datedif("01/01/2008","31/12/2009","M") trả về giá trị 23 nhưng thực tế phải là 24 bạn xem lại thử nhé. Mất một tháng BHXH thì cũng hơi phê đấy
 
Hàm datedif("01/01/2008","31/12/2009","M") trả về giá trị 23 nhưng thực tế phải là 24 bạn xem lại thử nhé. Mất một tháng BHXH thì cũng hơi phê đấy

Đây là bài toán trồng cây / đếm cột điện hai bên đường mà bác, trong công thức trên bác chỉ cần +1 là okie rồi.
 
Đây là bài toán trồng cây / đếm cột điện hai bên đường mà bác, trong công thức trên bác chỉ cần +1 là okie rồi.

Chào bạn,
Mình chưa hiểu, bạn cộng 1 vào đâu ạ???
Nếu cộng 1 vào sau hàm datedif thì lại càng sai:
bạn thử làm công thức này xem:

=dateif("01/01/2008","31/12/2009","m")+1 = 24 thì ok

nhưng:

=datedif("01/01/2008","01/12/2009","m")+1
=24
-->Thực tế chỉ là 23 ??? Công thức datedif lúc này bạn cộng 1 là sai hoàn toànthì cũng toi mạnh.

Theo mình hàm datedif áp dụng trong trường hợp này là sai, không áp dụng được.
 
đếm tháng/năm

Chào bạn,
Mình chưa hiểu, bạn cộng 1 vào đâu ạ???
Nếu cộng 1 vào sau hàm datedif thì lại càng sai:
bạn thử làm công thức này xem:

=dateif("01/01/2008","31/12/2009","m")+1 = 24 thì ok

nhưng:

=datedif("01/01/2008","01/12/2009","m")+1
=24
-->Thực tế chỉ là 23 ??? Công thức datedif lúc này bạn cộng 1 là sai hoàn toànthì cũng toi mạnh.

Theo mình hàm datedif áp dụng trong trường hợp này là sai, không áp dụng được.

Theo em thì vẫn áp dụng được kèm theo hàm if nữa bác à, như sau nhé:

Em bổ sung thêm hàm MOD, lấy số dư của số ngày/30 ngày 1 tháng, nếu lớn hơn số ngày nào đó thì tính tròn tháng (ở VD này là 15 ngày); phương pháp này tương đối, nếu số dư lớn hơn 15 tính tròn 1 tháng, dưới thì thôi.
Bác nào có cách nào chính xác hơn không ạ.

=IF(MOD(DATEDIF("01/01/2008";"01/12/2009";"d");30)>15;DATEDIF("01/01/2008";"01/12/2009";"m")+1;DATEDIF("01/01/2008";"01/12/2009";"m"))
 
Theo em thì vẫn áp dụng được kèm theo hàm if nữa bác à, như sau nhé:

Em bổ sung thêm hàm MOD, lấy số dư của số ngày/30 ngày 1 tháng, nếu lớn hơn số ngày nào đó thì tính tròn tháng (ở VD này là 15 ngày); phương pháp này tương đối, nếu số dư lớn hơn 15 tính tròn 1 tháng, dưới thì thôi.
Bác nào có cách nào chính xác hơn không ạ.

=IF(MOD(DATEDIF("01/01/2008";"01/12/2009";"d");30)>15;DATEDIF("01/01/2008";"01/12/2009";"m")+1;DATEDIF("01/01/2008";"01/12/2009";"m"))

Theo mình nếu đơn giản chỉ là tính số tháng lớn hơn một con số nào đó thì chỉ cần:
=(Ngày cuối - ngày đầu)*12/365 là đủ, vừa gọn lại vừa dễ hiểu.
 
Đúng, mất một tháng bảo hiểm thì phê thật. có thể hôm qua tôi chưa xem kỷ nên cứ nghĩ là có thể dùng datedif() được, tuy nhiên ta cũng có thể sử dụng datedif theo kiểu "d" sau đó *12/365.
 
Giã sử như:
Cell A1 = 01/01/2008
Cell B1 = 31/12/2009
Các bạn dùng =DATEDIF(A1,B1,"M")+1 để cho ra kết quả 24... nhưng sẽ bị sai khi B1 = 1/12/2009
Tôi đang nghĩ tại sao các bạn ko công 1 vào B1 nhỉ?
=DATEDIF(A1,B1+1,"M")
Chứ mà IF rồi nhân chia với 365 thì coi chừng "gây hậu quả nghiêm trọng" đấy
ANH TUẤN
 
Giã sử như:
Cell A1 = 01/01/2008
Cell B1 = 31/12/2009
Các bạn dùng =DATEDIF(A1,B1,"M")+1 để cho ra kết quả 24... nhưng sẽ bị sai khi B1 = 1/12/2009
Tôi đang nghĩ tại sao các bạn ko công 1 vào B1 nhỉ?
=DATEDIF(A1,B1+1,"M")
Chứ mà IF rồi nhân chia với 365 thì coi chừng "gây hậu quả nghiêm trọng" đấy
ANH TUẤN

Chào anh ANHTUAN,
Trong trường hợp cộng như vậy thì kết quả không đổi mà!?
A1=01/01/2008
B1=15/12/2009
=DATEDIF(A1,B1,"M")
=DATEDIF (A1,B1+1,"M')
=23
--> CÔNG THỨC VẪN SAI VÌ THỰC TẾ PHẢI HƠN 23
Thêm vào đó tự nhiên thêm 1 ngày cho nhân viên là vô lý
 
Lần chỉnh sửa cuối:
Chào anh ANHTUAN,
Trong trường hợp cộng như vậy thì kết quả không đổi mà!?
A1=01/01/2008
B1=15/12/2009
=DATEDIF(A1,B1,"M")
=DATEDIF (A1,B1+1,"M')
=23
--> CÔNG THỨC VẪN SAI VÌ THỰC TẾ PHẢI HƠN 23
Thêm vào đó tự nhiên thêm 1 ngày cho nhân viên là vô lý
Dùng (B1-A1)/365*12 thì cũng chưa chính xác
Phải là
(B1-A1+1)/365.25*12 nhưng cũng chưa chính xác
Vậy ví dụ là >15 ngày. Dùng thử Ct sau, nhưng thấy "ngang ngang" thế nào.
=IF(DATEDIF(A1,B1,"MD")>15,DATEDIF(A1,B1,"M")+1,DATEDIF(A1,B1,"M"))
Quan trọng trong bài này là nên hiểu làm bao nhiêu ngày/tháng => làm tròn 1 tháng.
 
Chào anh ANHTUAN,
Trong trường hợp cộng như vậy thì kết quả không đổi mà!?
A1=01/01/2008
B1=15/12/2009
=DATEDIF(A1,B1,"M")
=DATEDIF (A1,B1+1,"M')
=23
--> CÔNG THỨC VẪN SAI VÌ THỰC TẾ PHẢI HƠN 23
Thêm vào đó tự nhiên thêm 1 ngày cho nhân viên là vô lý
Vậy bạn muốn tính thế nào?
Ví dụ:
1/1/2008 --> 31/1/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 30/1/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 1/2/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 3/1/2008 bạn muốn ra KQ mấy tháng?
vân vân...
Đại khái bạn nói yêu cầu đi, tôi tính cho
ANH TUẤN
 
Vậy bạn muốn tính thế nào?
Ví dụ:
1/1/2008 --> 31/1/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 30/1/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 1/2/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 3/1/2008 bạn muốn ra KQ mấy tháng?
vân vân...
Đại khái bạn nói yêu cầu đi, tôi tính cho
ANH TUẤN

Xin lỗi nếu anh ANHTUAN có giận. Nhưng em nghĩ mọi người chưa hiểu ý của em. Ý của em là trong trường hợp này không sử dụng datedif vì lý do hàm này trả về một số nguyên của năm/tháng/ngày. Còn bài toán đặt ra là tìm số tháng đóng BHXH/ số tháng vào làm việc thỏa mãn điều kiện lớn hơn một giá trị nào đó, ví dụ lớn hơn ba tháng chẳng hạn.
Như vậy đáp số trả về cho bài toán không thể làm tròn tháng được. Ví dụ ba tháng + 1 ngày cũng là hơn 3 tháng

Và nếu sử dụng dateif trong trường hợp này thì rất dài và nhiều khi không phải ai cũng hiểu.


Hehe, vậy thôi, chứ còn ích lợi của hàm datedif thì ở đây ai cũng biết mà.
 
Ôi trời... giận gì chứ.... tôi phải hỏi lại cho rõ để tìm ra giãi pháp... hi.. hi.. (vì thật sự ko hiểu cách người ta tính thế nào)...
Tôi thì ưa những giãi pháp thật ngắn gọn nên cũng khoái tìm tòi... Muốn bạn giã lập 1 ví dụ để tôi giãi ấy mà...
ANH TUẤN
 
Mình cũng đang thắc mắc công thức này, sao anhtuan không tiếp tục giải hehehe ?

Các bạn đâu cả rồi, giúp mình với :(
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình cũng đang thắc mắc công thức này, sao anhtuan không tiếp tục giải hehehe ?
BẠn hãy trả lời các câu hỏi của anhtuan trước:
1/1/2008 --> 31/1/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 30/1/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 1/2/2008 bạn muốn ra KQ mấy tháng?
2/1/2008 --> 3/1/2008 bạn muốn ra KQ mấy tháng?
vân vân...
 
Web KT

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

Back
Top Bottom