n0thing1988
Mù VBA
- Tham gia
- 30/9/13
- Bài viết
- 1,567
- Được thích
- 1,151
Tất nhiên là sai rồi. Bạn cần viết lại hàm. Tôi thấy tính tuổi về hưu của nam còn chưa chính xác nữa.Vâng, xem giúp tôi, như vậy đã đúng chưa?
Tất nhiên là sai rồi. Bạn cần viết lại hàm. Tôi thấy tính tuổi về hưu của nam còn chưa chính xác nữa.Vâng, xem giúp tôi, như vậy đã đúng chưa?
Vâng, xem giúp tôi, như vậy đã đúng chưa?
Tính cách nào ra 61 tuổi 9 tháng ?Chưa đúng bạn ơi, sao sinh ngày 03/02/1966 lại đủ 62 tuổi, đúng ra là 61 tuổi 9 tháng mới đúng chứ
Sao kết quả nhiều lúc ra ko chính xác nhỉFile giả lập của bạn cho toàn ngày sinh <13 là không tốt dùng để kiểm chứng số liệu
Bạn kiểm theo hình này xem sao:
STT Tên Ngày sinh Nữ Ngày nghỉ hưu 1 Xuân x 2 Hạ 3/21/1966 9/21/2027=TuoiHuu(C3,IF(D3="X",FALSE,TRUE)) 3 Thu 12/6/1965x 4 Đông 10/30/1966 4/30/2028
5 Tây 10/24/1964 10/24/20256 Nam 10/18/1963 7/18/20247 Bắc 8/7/1974x
PHP:Function TuoiHuu(Dat As Date, Optional Nam As Boolean = True) As Date Dim ThemThang As Integer, NamH As Integer If Nam Then TuoiHuu = DateSerial(Year(Dat) + 60, Month(Dat), Day(Dat)) MsgBox TuoiHuu NamH = Year(TuoiHuu) If NamH >= 2028 Then ThemThang = 24 ElseIf NamH <= 2020 Then ElseIf NamH < 2028 And NamH > 2020 Then ThemThang = 3 * (NamH - 2020) ' ThemThang = Choose(Year(TuoiHuu) - 2020, 3, 6, 9, 12, 15, 18, 21, 24)' End If TuoiHuu = DateSerial(Year(Dat) + 60, ThemThang + Month(Dat), Day(Dat)) Else TuoiHuu = DateSerial(Year(Dat) + 55, Month(Dat), Day(Dat)) ' . . . . . . . ' End If End Function
STT | TÊN | ngày sinh | nữ | ngày nghỉ hưu |
1 | Nhật | 15/02/1964 | ||
2 | Hương | 17/08/1971 | x | |
Mình ko rành excel lắm nhưng cũng đang quan tâm đến vấn đề này nên có làm thử theo 2 công thức của bạn Phan Thế Hiệp và bạn HieuCD nên có góp ý như sau:Lâu rồi mới thấy bạn lên diễn đàn, chúc bạn mọi sự như ý
Dùng công thức của bạn @Phan Thế Hiệp chỉnh lại và không dùng bảng phụ mốc thời gian
Mã:=EDATE(EOMONTH(C4,0)+1,(12-(D4="x"))*60+IFERROR(IF(D4="x",MIN(INT(DATEDIF(23833,C4,"m")/8)*4,60),MIN(INT(DATEDIF(21976,C4,"m")/9)*3,24)),0))
Tính cách nào ra được ngày 01/01/2026 ?Mình ko rành excel lắm nhưng cũng đang quan tâm đến vấn đề này nên có làm thử theo 2 công thức của bạn Phan Thế Hiệp và bạn HieuCD nên có góp ý như sau:
- theo Phan Thế Hiển thì cần sửa lại ngày trong bản tham chiếu là cuối tháng thì sẽ đúng theo NĐ135. Ví dụ: nữ, sinh 2/4/1969, nếu theo bảng tham chiếu để ngày 01/04/1969 thì kết quả là 01/05/2026, nếu bảng tham chiếu để 30/04/1969 thì kết quả là 01/01/2026, cái này đúng theo NĐ135.
- theo công thức của bạn HieuCD thì kết quả ra 01/05/2026 là chưa đúng.
Mình đóng góp ý kiến có gì ko đúng thì 2 bạn góp ý nhé, vì mình cũng ko ranh excel lắm. Trân trọng cảm ơn, thân chào.
Phụ lục 01 Nghị định 135/2020 nó quy định sẵn như vậy đó bạn.Tính cách nào ra được ngày 01/01/2026 ?
Công thức tính theo qui định trong nghị định 135/2020Phụ lục 01 Nghị định 135/2020 nó quy định sẵn như vậy đó bạn.
Lao động nam | Lao động nữ | ||
Năm nghỉ hưu | Tuổi nghỉ hưu | Năm nghỉ hưu | Tuổi nghỉ hưu |
2021 | 60 tuổi 3 tháng | 2021 | 55 tuổi 4 tháng |
2022 | 60 tuổi 6 tháng | 2022 | 55 tuổi 8 tháng |
2023 | 60 tuổi 9 tháng | 2023 | 56 tuổi |
2024 | 61 tuổi | 2024 | 56 tuổi 4 tháng |
2025 | 61 tuổi 3 tháng | 2025 | 56 tuổi 8 tháng |
2026 | 61 tuổi 6 tháng | 2026 | 57 tuổi |
2027 | 61 tuổi 9 tháng | 2027 | 57 tuổi 4 tháng |
Từ năm 2028 trở đi | 62 tuổi | 2028 | 57 tuổi 8 tháng |
2029 | 58 tuổi | ||
2030 | 58 tuổi 4 tháng | ||
2031 | 58 tuổi 8 tháng | ||
2032 | 59 tuổi | ||
2033 | 59 tuổi 4 tháng | ||
2034 | 59 tuổi 8 tháng | ||
Từ năm 2035 trở đi | 60 tuổi |
E4 =EDATE(EOMONTH(C4,0)+1,(12-(D4="x"))*60+IFERROR(IF(D4="x",MIN(INT(DATEDIF(23863,C4,"m")/8)*4,60),MIN(INT(DATEDIF(22007,C4,"m")/9)*3,24)),0))
Bài tôi làm trước đây, dựa trên công thức của bạn @khieukienag chủ yếu chỉ làm gọn lại mà thôi, chưa xem xét đến việc tính toán.Mình ko rành excel lắm nhưng cũng đang quan tâm đến vấn đề này nên có làm thử theo 2 công thức của bạn Phan Thế Hiệp và bạn HieuCD nên có góp ý như sau:
- theo Phan Thế Hiển thì cần sửa lại ngày trong bản tham chiếu là cuối tháng thì sẽ đúng theo NĐ135. Ví dụ: nữ, sinh 2/4/1969, nếu theo bảng tham chiếu để ngày 01/04/1969 thì kết quả là 01/05/2026, nếu bảng tham chiếu để 30/04/1969 thì kết quả là 01/01/2026, cái này đúng theo NĐ135.
- theo công thức của bạn HieuCD thì kết quả ra 01/05/2026 là chưa đúng.
Mình đóng góp ý kiến có gì ko đúng thì 2 bạn góp ý nhé, vì mình cũng ko ranh excel lắm. Trân trọng cảm ơn, thân chào.
Gửi bạn tham khảo phụ lục I Nghị định 135. Cho mình hỏi tham số 23863 và 22007 chổ hàm Datedif() ý nghĩ như thế nào vậy. Cảm ơn.Công thức tính theo qui định trong nghị định 135/2020
Sinh tháng 4/1969 sẽ nghỉ hưu năm 2026 khi đủ 57 tuổi vậy ngày nghỉ hưu là 1/5/2026
Lao động nam Lao động nữ Năm nghỉ hưu Tuổi nghỉ hưu Năm nghỉ hưu Tuổi nghỉ hưu 2021 60 tuổi 3 tháng 2021 55 tuổi 4 tháng 2022 60 tuổi 6 tháng 2022 55 tuổi 8 tháng 2023 60 tuổi 9 tháng 2023 56 tuổi 2024 61 tuổi 2024 56 tuổi 4 tháng 2025 61 tuổi 3 tháng 2025 56 tuổi 8 tháng 2026 61 tuổi 6 tháng 2026 57 tuổi 2027 61 tuổi 9 tháng 2027 57 tuổi 4 tháng Từ năm 2028 trở đi 62 tuổi 2028 57 tuổi 8 tháng 2029 58 tuổi 2030 58 tuổi 4 tháng 2031 58 tuổi 8 tháng 2032 59 tuổi 2033 59 tuổi 4 tháng 2034 59 tuổi 8 tháng Từ năm 2035 trở đi 60 tuổi
Phụ lục có kết quả hơi khác với qui định chính thức trong nghị định, chỉnh công thức tý xíuMã:E4 =EDATE(EOMONTH(C4,0)+1,(12-(D4="x"))*60+IFERROR(IF(D4="x",MIN(INT(DATEDIF(23863,C4,"m")/8)*4,60),MIN(INT(DATEDIF(22007,C4,"m")/9)*3,24)),0))
Bạn để ý phụ lục I, Nữ cứ 8 tháng tăng tuổi hưu lên 4 tháng, và ngày sinh đầu tiên tăng là 1/1/1966 trừ lùi lại 8 tháng là ngày 1/5/1965 = 23863, tương tự cho namGửi bạn tham khảo phụ lục I Nghị định 135. Cho mình hỏi tham số 23863 và 22007 chổ hàm Datedif() ý nghĩ như thế nào vậy. Cảm ơn.
DIỄN ĐÀN GIẢI PHÁP EXCEL