Công thức tính phép năm

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kimthoa89

Thành viên thường trực
Tham gia
3/11/17
Bài viết
215
Được thích
17
Giới tính
Nữ
Anh chị thân mến !
Các anh chị giúp em về công thức tính phép năm còn lại ở cột V
1. Bên em công việc nặng nhọc 1 năm có 14 ngày phép
2. Cứ đủ 5 năm trở lên được cộng 1 phép
3. Phép được tính từ ngày bắt đầu vào công ty
Nhưng e đặt công thức như này bị khách hàng bắt lỗi là sai anh chị xem giúp em với ạ
Em cảm ơn anh chị ah
 

File đính kèm

  • lương xuân bảo.xlsx
    11.3 KB · Đọc: 11
Có quy định "Tổng ngày phép năm tối đa" cho nhân viên có thâm niên là bao nhiêu không? Hay cứ 5 năm thì tăng 1 ngày, 50 năm thì tăng 10 ngày + 14 thành 24 ngày!?

Thân
Cứ thâm niên sau 5 năm trở lên là được cộng 1 phép
Còn 1 năm có 14 ngày phép năm không dựa theo thâm niên ạ
 
Khách bảo sai là sai làm sao? Vậy, nếu đúng thì khách bảo là bao nhiêu ngày? Lấy Vd nào mà khách bảo bạn tính sai xem thử?
Cột T4 là 9.3 vì 1 năm có 14 ngày phép : bạn này làm được 8 tháng từ lúc vào đến lúc nghỉ việc : =14/12/8 = 9.3 , Nhưng em chưa biết đặt công thức ra sao cho chuẩn ạ
 
Cột T4 là 9.3 vì 1 năm có 14 ngày phép : bạn này làm được 8 tháng từ lúc vào đến lúc nghỉ việc : =14/12/8 = 9.3 , Nhưng em chưa biết đặt công thức ra sao cho chuẩn ạ
Vậy, lúc đầu bạn cứ nêu thẳng công thức tại T4 chưa đúng, tôi cứ ngỡ công thức S4 bị sai! "Bé cái lầm!" :)

Công thức tại T4:
Mã:
=DATEDIF(MAX(EOMONTH(D4, -(DAY(D4)<16))+1,DATE(YEAR($V$1),1,1)),MAX(IF(E4="",,EOMONTH(E4, -(DAY(E4)<16))+1),EOMONTH($V$1,0)+1),"m")*14/12

Trong công thức này tôi cũng tính luôn nếu ngày vào làm việc từ ngày 1->15 thì được tính đủ tháng đó, từ 16 trở đi thì bắt đầu tính từ tháng sau. Ngược lại, nếu nghỉ việc từ 1->15 thì tính từ tháng trước, sau 15 thì tính đủ tháng.

Thân
 

File đính kèm

  • lương xuân bảo.xlsx
    11.8 KB · Đọc: 7
Lần chỉnh sửa cuối:
Em tham gia với. Có thể sai, nhưng sai sửa chửa đẻ. :D :D :D

T4=MIN(INT(14/12*DATEDIF(D4;MIN(E4;V1);"m"));14)+INT(DATEDIF(D4;MIN(E4;V1);"y")/5)
T4=MIN(INT(14/12*DATEDIF(D4,MIN(E4-1,V1),"m")),14)+INT(DATEDIF(D4,MIN(E4-1,V1),"y")/5)
 
Lần chỉnh sửa cuối:
Vậy, lúc đầu bạn cứ nêu thẳng công thức tại T4 chưa đúng, tôi cứ ngỡ công thức S4 bị sai! "Bé cái lầm!" :)

Công thức tại T4:
Mã:
=DATEDIF(MAX(EOMONTH(D4, -(DAY(D4)<16))+1,DATE(YEAR($V$1),1,1)),MAX(IF(E4="",,EOMONTH(E4, -(DAY(E4)<16))+1),EOMONTH($V$1,0)+1),"m")*14/12

Trong công thức này tôi cũng tính luôn nếu ngày vào làm việc từ ngày 1->15 thì được tính đủ tháng đó, từ 16 trở đi thì bắt đầu tính từ tháng sau. Ngược lại, nếu nghỉ việc từ 1->15 thì tính từ tháng trước, sau 15 thì tính đủ tháng.

Thân
Em cảm ơn anh ạ
 
Hơi nhầm chút, bạn dùng công thức sau mới đúng:
Mã:
=DATEDIF(MAX(EOMONTH(D4, -(DAY(D4)<16))+1,DATE(YEAR($V$1),1,1)),MIN(IF(E4="",EOMONTH($V$1,0)+1,EOMONTH(E4, -(DAY(E4)<16))+1),EOMONTH($V$1,0)+1),"m")*14/12

Thân
‐-------------------‐-------------------‐-------------------‐-------------------
Em tham gia với. Có thể sai, nhưng sai sửa chửa đẻ. :D :D :D

T4=MIN(INT(14/12*DATEDIF(D4;MIN(E4;V1);"m"));14)+INT(DATEDIF(D4;MIN(E4;V1);"y")/5)
1/ Sao ra có 9 vậy em trai!? :) số lẻ đâu mất rồi?

2/ Nếu đổi ngày vào là 12/03/2023 em sẽ thấy khác biệt liền.

/-*+//-*+//-*+/
 

File đính kèm

  • lương xuân bảo.xlsx
    11.9 KB · Đọc: 7
Lần chỉnh sửa cuối:

File đính kèm

  • 1709021210244.png
    1709021210244.png
    65.9 KB · Đọc: 5
  • 1709021392863.png
    1709021392863.png
    16.3 KB · Đọc: 5
Hic, ngày phép thì em nghĩ không được lẻ bác ạ.
Chắc bác ở bển nên ngày nghỉ khác quê hương rồi. :D:D:D
Làm theo đơn đặt hàng mà "lị"!
Cột T4 là 9.3 vì 1 năm có 14 ngày phép : bạn này làm được 8 tháng từ lúc vào đến lúc nghỉ việc : =14/12/8 = 9.3 , Nhưng em chưa biết đặt công thức ra sao cho chuẩn ạ

Khà khà khà
/-*+//-*+//-*+/
Bài đã được tự động gộp:

Em tham gia với. Có thể sai, nhưng sai sửa chửa đẻ. :D :D :D
Rồi! Còn nữa nè!
Chỉnh ngày vào thành: 17/03/2022 xem ra bao nhiêu?
/-*+//-*+//-*+/
 
Lần chỉnh sửa cuối:
Hic, có ngày làm, có ngày nghỉ rồi, em cũng không biết ô đó làm chi luôn. Có lẽ phải cho khách hàng ít thời gian phản hồi bác ạ. :D :D :D
Ô V1 đó nhằm xác định bảng báo cáo hiện tại tính đến tháng nào. Vd: hôm nay là ngày 20/12/2023, cần theo dõi số liệu phép năm của 11 tháng trước, thì chỉ việc gõ vào V1= 30/11/2023.

Vậy, công thức của em: MIN(E4;V1) để dùng vào việc gì mà không biết ý nghĩa hử!? Đôi khi xẩy ra ngày nghỉ việc khác hơn ngày tháng theo dõi tình hình phép năm, các trường hợp sau:
1/ Ngày nghỉ việc (E4)< Ngày theo dõi (V1): thì lấy Ngày nghỉ việc để tính số phép năm thực tế.
2/ Ngày nghỉ việc (E4)>= Ngày theo dõi (V1): thì lấy Ngày theo dõi để tính số phép năm thực tế.
3/ Ngày nghỉ việc trống (E4=""), thì cũng lấy V1 để tính.

Ngoài ra, tại sao phải tính việc xử lý 15 ngày đầu và các ngày còn lại trong tháng, nhằm xác định mốc tính phép năm theo quy định, do anh thấy trong công thức cũ ô T4 của chủ thớt có cách tính này:
EOMONTH(MAX(D4,DATE(2023,1,1))-15,0) tuy không chính xác lắm.


/-*+//-*+//-*+/
 
Lần chỉnh sửa cuối:
Hơi nhầm chút, bạn dùng công thức sau mới đúng:
Mã:
=DATEDIF(MAX(EOMONTH(D4, -(DAY(D4)<16))+1,DATE(YEAR($V$1),1,1)),MIN(IF(E4="",EOMONTH($V$1,0)+1,EOMONTH(E4, -(DAY(E4)<16))+1),EOMONTH($V$1,0)+1),"m")*14/12

Thân
‐-------------------‐-------------------‐-------------------‐-------------------

1/ Sao ra có 9 vậy em trai!? :) số lẻ đâu mất rồi?

2/ Nếu đổi ngày vào là 12/03/2023 em sẽ thấy khác biệt liền.

/-*+//-*+//-*+/
Em không rõ ý chủ thớt lắm, nhưng em làm theo kiểu này
Làm dưới 1 năm, số phép tính theo số tháng làm việc.
Từ 1 đến 5 năm: 14 này.
Trên 5 năm: cứ làm đủ 5 năm (60 tháng) sẽ được cộng 1 ngày phép.
Mã:
=MIN(14,14/12*DATEDIF(TEXT(D4-15,"mm/yyyy"),TEXT(IF(E4="",V1,E4)-15,"mm/yyyy"),"m"))+INT(DATEDIF(TEXT(D4-15,"mm/yyyy"),TEXT(IF(E4="",V1,E4)-15,"mm/yyyy"),"m")/60)
 
Vì không hiểu nó cần làm gì nên em cứ min, nghĩa là thà bắn lầm còn hơn bỏ sót ấy mà.
Thường em cũng làm ô tạm bên ngoài, sau mà ổn thì thay địa chỉ ô thật vào công thức.

Em không để ý phần này, vì họ bảo công thức sai nên em lập mới luôn. Xem ra phức tạp đây. :D:D:D
 
Web KT
Back
Top Bottom