Công thức tính phép năm (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

lethaithanh

Thành viên mới
Tham gia
8/3/08
Bài viết
26
Được thích
28
Nhờ các bạn lập dùm công thức tính tổng số ngày phép năm theo tập tin đính kèm, mỗi năm có 12 ngày phép năm, nếu 5 năm thì cộng thêm 1 ngày. Thành thật cám ơn.
Thí dụ:
Thời gian công tác là 30 năm thì bằng 12 ngày cộng thêm 30 năm bằng 6 ngày. Tổng cộng là 18 ngày.
 
Lần chỉnh sửa cuối:
Nhờ các bạn lập dùm công thức tính tổng số ngày phép năm theo tập tin đính kèm, mỗi năm có 12 ngày phép năm, nếu 5 năm thì cộng thêm 1 ngày. Thành thật cám ơn.
Thí dụ:
Thời gian công tác là 30 năm thì bằng 12 ngày cộng thêm 30 năm bằng 6 ngày. Tổng cộng là 18 ngày.

Bạn đã dùng datedif để tính thâm niên rồi thì mình nghĩ tính ngày phép chắc bạn làm ngon chứ.
Mã:
=INT(DATEDIF(C2;TODAY();"y")/5)+12
 
Nhờ các bạn lập dùm công thức tính tổng số ngày phép năm theo tập tin đính kèm, mỗi năm có 12 ngày phép năm, nếu 5 năm thì cộng thêm 1 ngày. Thành thật cám ơn.
Thí dụ:
Thời gian công tác là 30 năm thì bằng 12 ngày cộng thêm 30 năm bằng 6 ngày. Tổng cộng là 18 ngày.
Tạm dùng công thức này:
PHP:
=12+INT(DATEDIF(C2,TODAY(),"y")/5)
Có điều sao chẳng thấy bạn nói gì về trường hợp công tác dưới 1 năm nhỉ?
 
Tạm dùng công thức này:
PHP:
=12+INT(DATEDIF(C2,TODAY(),"y")/5)
Có điều sao chẳng thấy bạn nói gì về trường hợp công tác dưới 1 năm nhỉ?

Theo Luật Lao động thì hợp đồng công việc dưới 1 năm không được nghỉ phép. Đầu tiên ký Hợp đồng thử việc(mùa vụ) 3 tháng, hoặc 6 tháng. Sau đó ký HĐcó thời hạn 1 năm, bắt đầu từ HĐ này thì người lao động mới được tính nghỉ phép năm.
 
Nguyên văn bởi ndu96081631:
=12+INT(DATEDIF(C2,TODAY(),"y")/5)


Cám ơn công thức của bạn, tuy nhiên khi người lao động vào công ty tháng 3/2009 thì số ngày phép trong năm 2009 không ra đúng kết quả (10 ngày) --> tức là thời gian công tác dưới 1 năm lại không đúng. Bạn giúp viết lại công thức dùm mình với. Xin cảm ơn.
 


Cám ơn công thức của bạn, tuy nhiên khi người lao động vào công ty tháng 3/2009 thì số ngày phép trong năm 2009 không ra đúng kết quả (10 ngày) --> tức là thời gian công tác dưới 1 năm lại không đúng. Bạn giúp viết lại công thức dùm mình với. Xin cảm ơn.
Chứ bạn không thấy tôi hỏi gì tại bài #3 sao:
Có điều sao chẳng thấy bạn nói gì về trường hợp công tác dưới 1 năm nhỉ?
Với trường hợp hợp công tác dưới 1 năm, bạn cho tôi quy luật tính toán thì tôi mới ra công thức cho bạn được chứ (1 tháng = 1 ngày phép chăng?)
 
Trước tiên mình xin cám ơn sự phản hồi của bạn ndu96081631
Đúng như bạn suy đoán, với trường hợp nếu công tác dưới 1 năm thì cứ 1 tháng công tác = 1 ngày phép, vào trước ngày 16 của tháng được làm tròn thành 1 tháng, ngược lại vào sau ngày 15 không tính tháng đó.
Trước nay mình sử dụng công thức sau:
=INT(IF(A1>0,(DATE(2009,12,31)-A1)/1825,0)+IF(AND(YEAR(A1)<2009,A1>0),12,IF(A1>0,(DATE(2009,12,31)-A1)/30,12)))
tuy nhiên nó quá dài và phải chỉnh sửa năm cho phù hợp.

Bạn giúp mình viết lại công thức nhé. Xin cám ơn
 
Lần chỉnh sửa cuối:
Trước tiên mình xin cám ơn sự phản hồi của bạn ndu96081631
Đúng như bạn suy đoán, với trường hợp nếu công tác dưới 1 năm thì cứ 1 tháng công tác = 1 ngày phép, vào trước ngày 16 của tháng được làm tròn thành 1 tháng, ngược lại vào sau ngày 15 không tính tháng đó.
Trước nay mình sử dụng công thức sau:
=INT(IF(A1>0,(DATE(2009,12,31)-A1)/1825,0)+IF(AND(YEAR(A1)<2009,A1>0),12,IF(A1>0,(DATE(2009,12,31)-A1)/30,12)))
tuy nhiên nó quá dài và phải chỉnh sửa năm cho phù hợp.

Bạn giúp mình viết lại công thức nhé. Xin cám ơn
Bạn xem thử có đúng ý chưa.
 
Cảm ơn bạn Ba Tê, tuy nhiên mình không thể copy công thức của bạn vào file danh sách của cả công ty mình được (có lẽ bạn viết code - mà phần này thì người chuyên làm nhân sự như mình là "dốt đặc") bạn giúp chuyển sang công thức của excel được không ạ.
Rất mong nhận sớm nhận được sự giúp đỡ của các bạn.
 
Cảm ơn bạn Ba Tê, tuy nhiên mình không thể copy công thức của bạn vào file danh sách của cả công ty mình được (có lẽ bạn viết code - mà phần này thì người chuyên làm nhân sự như mình là "dốt đặc") bạn giúp chuyển sang công thức của excel được không ạ.
Rất mong nhận sớm nhận được sự giúp đỡ của các bạn.
----
Không phải là code, chỉ là các công thức nhỏ được đưa vào 2 Name, Bạn vào Insert - Name - Define... sẽ thấy. Bạn có thể nghiên cứu chỉnh lại công thức các Name cho hợp với Bảng tính của Bạn. Nếu chuyển hết sang công thức thì sợ Bạn... tối mặt!
File kèm theo tôi đã làm thêm theo ý Bạn
 
Lần chỉnh sửa cuối:
Cách tính công thức phép năm

Các bạn ơi, cho mình hỏi về công thức Phép Năm chút nhé, vì mình làm công thức sao cứ có sổ lẻ mà không biết phải làm sao??? Bên mình nghỉ 1 ngày và 0.5 ngày. Nhưng khi ra công thức thì lại 1.2 hay 1.3 ... không biết chỉnh làm sao luôn. Các bạn giúp mình nhé. Mình có gửi thêm file đính kèm. Cám ơn nhiều lắm /-*+/
 

File đính kèm

Bạn xem thử nha

[ThongBao]Các bạn cho mình hỏi về công thức Phép Năm nhé, vì mình làm công thức sao cứ có sổ lẻ mà không biết phải làm sao??? Bên mình nghỉ 1 ngày và 0.5 ngày. Nhưng khi ra công thức thì lại không biết chỉnh làm sao luôn. Các bạn giúp mình nhé. Mình có gửi thêm file đính kèm. Cám ơn nhiều lắm /-*+/[/ThongBao]
 

File đính kèm

Đúng như mình mong đợi. Cám ơn bạn nhiều nhé |||||
 
Sa_dq ơi cho mình biết y nghĩa của 365,25 và 30,25 với ạ
thanks+-+-+-++-+-+-++-+-+-+
 
+-+-+-++-+-+-+HỎI NGU CHÚT B ƠI Ý NGHĨA CỦA Nm và Th và tại sao 2 số này lại lẻ vậy
 
các bạn ơi cho mình hỏi về hàm tính ngày nghỉ phép. Mình nhận được file excel của ng bàn giao. Trong file có chia là 12 tab tương ứng với 12 tháng trong năm. Có thêm 1 tab ghi là PHEP, tab này liệt kê ngày nghỉ phép còn lại của năm 2015 và các ngày nghỉ trong 2016.

Khi mình chấm công theo tháng, thì m thấy có hàm = PHEP!R9 (9 là số dòng) còn R m chả hiểu là gì cả?. Tương tự sang tháng 2 thì là PHEP!S9, tháng 3 là =PHEP!T9... Cứ tiếp tục vậy cho hết 12 tháng.

Mình không hiểu, các bạn hướng dẫn giúp mình với, cám ơn nhiều
 
Sao không thấy file đính kèm đâu bạn nhỉ?


----
Không phải là code, chỉ là các công thức nhỏ được đưa vào 2 Name, Bạn vào Insert - Name - Define... sẽ thấy. Bạn có thể nghiên cứu chỉnh lại công thức các Name cho hợp với Bảng tính của Bạn. Nếu chuyển hết sang công thức thì sợ Bạn... tối mặt!
File kèm theo tôi đã làm thêm theo ý Bạn
 
Hiện tại mình có file quản lý phép, tuy nhiên mình thiết lập công thức cho trường hợp thử việc có nhân viên công thức chạy ra không đúng.
Ở đây mình muốn theo dõi ngày phép theo quy luật sau:
Vào từ ngày 1-15 trong tháng thì tính được 1 ngày phép. từ ngày 16 trở về sau thì không tính phép tháng đó. 5 năm thì đc 1 ngày phép. Đối với trường hợp người lao động dưới 1 năm thì 1 tháng=1 ngày phép.
Tuy nhiên trong file mình sử dụng công thức, có trường hợp đúng, trường hợp sai?
Có anh chị nào hướng dẫn mình không?-\\/.-\\/.-\\/.
 

File đính kèm

Nhân tiện đề tài này. Nhờ các bạn đặt công thức cho file excel theo dõi nghỉ phép năm đính kèm. Cám ơn các bạn!
Mọi người chưa giúp bạn vì loại fép mà bạn ghi "đặc biệt" đó áp dụng cho ai & vì sao áp dụng?
 
Mọi người chưa giúp bạn vì loại fép mà bạn ghi "đặc biệt" đó áp dụng cho ai & vì sao áp dụng?

Mình sơ xuất không ghi rõ, phép đặc biệt đó là phép được nghỉ thêm khi làm việc ở vùng có phụ cấp đặc biệt từ 70-100%. Với cơ quan mình thì phép ĐB đó áp dụng cho tất cả mọi người nhé! Cám ơn bạn.
 
Bạn kiểm theo file:
||||| ||||| |||||
 

File đính kèm


Mình dốt về excel quá! +-+-+-+
Bạn giải thích cho mình công thức =IF(TODAY()-C12>365,25*25;25;20) với
Và làm sao để khi kéo công thức xuống dưới cho các cột màu xanh thì: (Theo file của bạn gửi)
Ví dụ:
C18 không có dữ liệu thì E18 = 0
F18 và G18 không có dữ liệu thì H18 = 0
I18 và Z18 không có dữ liệu thì K18 = 0
Cám ơn bạn nhiều!
 
Mình dốt về excel quá! +-+-+-+
(1) Bạn giải thích cho mình công thức =IF(TODAY()-C12>365,25*25;25;20) với

(2) Và làm sao để khi kéo công thức xuống dưới cho các cột màu xanh thì: (Theo file của bạn gửi)
Ví dụ:
C18 không có dữ liệu thì E18 = 0
F18 và G18 không có dữ liệu thì H18 = 0
I18 và Z18 không có dữ liệu thì K18 = 0
Cám ơn bạn nhiều!

(1) 01 năm có 365.25 ngày;
Công thức đó diễn dịch tiếng Việt sẽ như sau:

Lấy hiệu giữa ngày hiện hành & ngày vô CQ đem so với số ngày có trong 25 năm
Nếu Hiệu í lớn hơn thì số ngày fép sẽ là 25; bằng ngược lại là 20

Công thức này sẽ có sai số 1/365.25 & có thể chấp nhận được.

(2) Tự bạn làm đi, thất bại là mẹ thành công mà!
 
Công thức tại ô E12 được diễn dịch sang tiếng Việt như sau:

(1.1) Nếu cô C12 là rỗng thì bằng không;
Nếu không vậy, thì:

(1.2) Nếu . . . . (như đã có trong file)

)*&^) )*&^) )*&^)
=IF(C12="",0,IF(TODAY()-C12>365.25*25,25,20))+14
 
Bây giờ điều kiện đặt ra là:
- Có thời gian công tác dưới 15 năm được nghỉ 20 ngày
- Có thời gian công tác dưới 25 năm được nghỉ 25 ngày
- Có thời gian công tác trên 25 năm được nghỉ 30 ngày
Nhờ các bạn giúp công thức cho file ạ! +-+-+-++-+-+-++-+-+-+
 

File đính kèm

Bây giờ điều kiện đặt ra là:
- Có thời gian công tác dưới 15 năm được nghỉ 20 ngày
- Có thời gian công tác dưới 25 năm được nghỉ 25 ngày
- Có thời gian công tác trên 25 năm được nghỉ 30 ngày
Nhờ các bạn giúp công thức cho file ạ! +-+-+-++-+-+-++-+-+-+
Thử xem công thức này đúng không
E10=IF(C10="","",IF(DATEDIF(C10,TODAY(),"Y")<15,20,IF(DATEDIF(C10,TODAY(),"Y")<25,25,30)))
 
Bạn xem thử nha

[ThongBao]Các bạn cho mình hỏi về công thức Phép Năm nhé, vì mình làm công thức sao cứ có sổ lẻ mà không biết phải làm sao??? Bên mình nghỉ 1 ngày và 0.5 ngày. Nhưng khi ra công thức thì lại không biết chỉnh làm sao luôn. Các bạn giúp mình nhé. Mình có gửi thêm file đính kèm. Cám ơn nhiều lắm /-*+/[/ThongBao]
dạ a oi cho e hỏi Nm là gì e không hiểu ký hiệu này ah
 
Nhờ anh chị cài đặt giúp e công thức tính phép cho trường hợp làm đủ trên 5 năm với ạ, e làm mãi không ra. em cảm ơn ạ.
 
Bạn cho mình hỏi:
1/Tiêu chí tính phép cụ thể như thế nào bạn nhỉ.
2/Cài vào chỗ nào đây.
:)
Hiện tại tiêu chí bên em là 1 năm công nhân viên sẽ được 12 buổi phép đối với trường hợp thông thường, còn với những trường hợp nặng nhọc độc hại được hưởng 14 ngày
cứ 5 năm sẽ được cộng thêm 1 ngày phép , anh xem vào cài đặt giúp e ạ.
em cảm ơn !
 

File đính kèm

:)
Hiện tại tiêu chí bên em là 1 năm công nhân viên sẽ được 12 buổi phép đối với trường hợp thông thường, còn với những trường hợp nặng nhọc độc hại được hưởng 14 ngày
cứ 5 năm sẽ được cộng thêm 1 ngày phép , anh xem vào cài đặt giúp e ạ.
em cảm ơn !
Bên em làm tròn thiếu hoặc thừa mấy tháng thì tính là 5 năm vậy, căn cứ vào đâu để biết ai là trường hợp nặng nhọc độc hại vậy em?
 
Hiện tại tiêu chí bên em là 1 năm công nhân viên sẽ được 12 buổi phép đối với trường hợp thông thường, còn với những trường hợp nặng nhọc độc hại được hưởng 14 ngày, cứ 5 năm sẽ được cộng thêm 1 ngày phép...
Không cần phải điền "ngày nghỉ việc 'ảo': 31/12/2020" vào dòng chi tiết cột G của nhân viên như bạn đã làm, vì họ chưa nghỉ mà!? phải không!?, chỉ nên điền ngày nghỉ của nhân viên nào thực sự nghỉ việc, Vd: G51: ngày 01/02/2020 nhân viên Trần Văn Hòa nghỉ việc.

Rút gọn và bổ sung các công thức cho các cột:
Mã:
I7=SUMPRODUCT(COUNTIF($L$5:$W$5,">"&CHOOSE({1;2},F7,IF(G7,G7,$K$5)))*{1;-1})
J7=MIN(SUM(N(Y7>={0,0.5,1,1.5,2}))/2,2)
K7=INT(DATEDIF(F7,IF(G7,G7,$K$5),"y")/5)
Y7=ROUND(SUMIF($AA$7:$AA$47,D7,$AB$7)*((14/12-1)*I7),2)
Enter, fill xuống.

Thân
 

File đính kèm

Bên em làm tròn thiếu hoặc thừa mấy tháng thì tính là 5 năm vậy, căn cứ vào đâu để biết ai là trường hợp nặng nhọc độc hại vậy em?

Bên em tính trung bình luôn vd vào từ 1/10/2015, vậy từ 1/10/2015 đến 1/10/2020 là tròn 5 năm được công thêm 1 ngày phép nhưng hiện tại bên em lại muốn 1 ngày phép đó chia trung bình cho 12 tháng và nhân với số tháng hưởng ( từ 1/10/2020 đến 31/12/2020 là 3 tháng được hưởng) và bên công ty em cho công nhân viên ứng phép đến hết năm tức 31/12/2020 nên để số ngày nghỉ việc là 31/12.
Trường hợp độc hại bên em nhận biết qua chức vụ như trong file theo cột AA, AB
Bài đã được tự động gộp:

Không cần phải điền "ngày nghỉ việc 'ảo': 31/12/2020" vào dòng chi tiết cột G của nhân viên như bạn đã làm, vì họ chưa nghỉ mà!? phải không!?, chỉ nên điền ngày nghỉ của nhân viên nào thực sự nghỉ việc, Vd: G51: ngày 01/02/2020 nhân viên Trần Văn Hòa nghỉ việc.

Rút gọn và bổ sung các công thức cho các cột:
Mã:
I7=SUMPRODUCT(COUNTIF($L$5:$W$5,">"&CHOOSE({1;2},F7,IF(G7,G7,$K$5)))*{1;-1})
J7=MIN(SUM(N(Y7>={0,0.5,1,1.5,2}))/2,2)
K7=INT(DATEDIF(F7,IF(G7,G7,$K$5),"y")/5)
Y7=ROUND(SUMIF($AA$7:$AA$47,D7,$AB$7)*((14/12-1)*I7),2)
Enter, fill xuống.

Thân
Hi A :)
Bên em muốn tính Phép tới hết năm cho người lao động vì họ được cho ứng dùng phép trước và bên công ty em cho công nhân viên ứng phép đến hết năm tức 31/12/2020 nên để số ngày nghỉ việc là 31/12.
Ngoài ra hiện tại trong file anh gửi lại anh có thể chỉnh công thức giúp em trường hợp đủ trên 5 năm được không ạ vì bên em tiêu trí khác
vd: vào từ 1/10/2015, vậy từ 1/10/2015 đến 1/10/2020 là tròn 5 năm được công thêm 1 ngày phép nhưng hiện tại bên em lại muốn 1 ngày phép đó chia trung bình cho 12 tháng và nhân với số tháng hưởng ( từ 1/10/2020 đến 31/12/2020 là 3 tháng được hưởng).
Thêm đó em đang xem cột nặng nhọc độc hại ,VD : 100025 vào từ năm 2010 nhưng nghỉ việc ngày 1/1/2020 vẫn được hưởng 0.5 ngày ??? Anh có thể điều chỉnh công thức theo tiêu trí giống như hưởng 5 năm giúp em được không ạ, cũng 2 ngày /12 tháng * với số tháng được hưởng ( từ ngày vào đến ngày nghỉ)
Số ngày nghỉ hàng năm được tính như sau: [số ngày nghỉ hàng năm (12 hoặc 14 hoặc 16) + số ngày nghỉ hàng năm tăng thêm theo thâm niên (mỗi 5 năm tăng thêm 01 ngày)/12 tháng] x số tháng làm việc thực tế trong năm. Phần dư lớn hơn hoặc bằng 0,5 được làm tròn

em cảm ơn !
 

File đính kèm

Lần chỉnh sửa cuối:
Ngoài ra hiện tại trong file anh gửi lại anh có thể chỉnh công thức giúp em trường hợp đủ trên 5 năm được không ạ vì bên em tiêu trí khác
vd: vào từ 1/10/2015, vậy từ 1/10/2015 đến 1/10/2020 là tròn 5 năm được công thêm 1 ngày phép nhưng hiện tại bên em lại muốn 1 ngày phép đó chia trung bình cho 12 tháng và nhân với số tháng hưởng ( từ 1/10/2020 đến 31/12/2020 là 3 tháng được hưởng).
Thêm đó em đang xem cột nặng nhọc độc hại ,VD : 100025 vào từ năm 2010 nhưng nghỉ việc ngày 1/1/2020 vẫn được hưởng 0.5 ngày ??? Anh có thể điều chỉnh công thức theo tiêu trí giống như hưởng 5 năm giúp em được không ạ, cũng 2 ngày /12 tháng * với số tháng được hưởng ( từ ngày vào đến ngày nghỉ)
Số ngày nghỉ hàng năm được tính như sau: [số ngày nghỉ hàng năm (12 hoặc 14 hoặc 16) + số ngày nghỉ hàng năm tăng thêm theo thâm niên (mỗi 5 năm tăng thêm 01 ngày)/12 tháng] x số tháng làm việc thực tế trong năm. Phần dư lớn hơn hoặc bằng 0,5 được làm tròn

em cảm ơn !
Việc tính ngày nghỉ vì có công việc nặng nhọc và độc hại thì không liên quan đến việc nhân viên đó có thâm niên tính tăng theo mỗi 5 năm hay không, nên theo tôi thấy bạn nên bỏ cột Y, vì thừa, tuy nhiên công thức của bạn đã tính sẵn cho nhân viên đó ngày nghỉ do làm công việc nặng nhọc độc hại theo tháng thực tế rồi, do vậy chuyển công thức đó thay vào công thức cột J.

Bổ sung thêm vào công thức tính thâm niên theo tháng thực tế:
Mã:
J7=ROUND(SUMIF($Z$7:$Z$47,D7,$AA$7)*((14/12-1)*I7),2)
K7=ROUND(INT(DATEDIF(F7,IF(G7,G7,$K$5),"y")/5)*DATEDIF(F7,IF(G7,G7,$K$5),"ym")/12,1)
Enter.

Thân
 

File đính kèm

Bên em tính trung bình luôn vd vào từ 1/10/2015, vậy từ 1/10/2015 đến 1/10/2020 là tròn 5 năm được công thêm 1 ngày phép nhưng hiện tại bên em lại muốn 1 ngày phép đó chia trung bình cho 12 tháng và nhân với số tháng hưởng ( từ 1/10/2020 đến 31/12/2020 là 3 tháng được hưởng) và bên công ty em cho công nhân viên ứng phép đến hết năm tức 31/12/2020 nên để số ngày nghỉ việc là 31/12.
Trường hợp độc hại bên em nhận biết qua chức vụ như trong file theo cột AA, AB
Bài đã được tự động gộp:


Hi A :)
Bên em muốn tính Phép tới hết năm cho người lao động vì họ được cho ứng dùng phép trước và bên công ty em cho công nhân viên ứng phép đến hết năm tức 31/12/2020 nên để số ngày nghỉ việc là 31/12.
Ngoài ra hiện tại trong file anh gửi lại anh có thể chỉnh công thức giúp em trường hợp đủ trên 5 năm được không ạ vì bên em tiêu trí khác
vd: vào từ 1/10/2015, vậy từ 1/10/2015 đến 1/10/2020 là tròn 5 năm được công thêm 1 ngày phép nhưng hiện tại bên em lại muốn 1 ngày phép đó chia trung bình cho 12 tháng và nhân với số tháng hưởng ( từ 1/10/2020 đến 31/12/2020 là 3 tháng được hưởng).
Thêm đó em đang xem cột nặng nhọc độc hại ,VD : 100025 vào từ năm 2010 nhưng nghỉ việc ngày 1/1/2020 vẫn được hưởng 0.5 ngày ??? Anh có thể điều chỉnh công thức theo tiêu trí giống như hưởng 5 năm giúp em được không ạ, cũng 2 ngày /12 tháng * với số tháng được hưởng ( từ ngày vào đến ngày nghỉ)
Số ngày nghỉ hàng năm được tính như sau: [số ngày nghỉ hàng năm (12 hoặc 14 hoặc 16) + số ngày nghỉ hàng năm tăng thêm theo thâm niên (mỗi 5 năm tăng thêm 01 ngày)/12 tháng] x số tháng làm việc thực tế trong năm. Phần dư lớn hơn hoặc bằng 0,5 được làm tròn

em cảm ơn !
Ban xem thu, thêm mức 16 ngày nữa
 

File đính kèm

Việc tính ngày nghỉ vì có công việc nặng nhọc và độc hại thì không liên quan đến việc nhân viên đó có thâm niên tính tăng theo mỗi 5 năm hay không, nên theo tôi thấy bạn nên bỏ cột Y, vì thừa, tuy nhiên công thức của bạn đã tính sẵn cho nhân viên đó ngày nghỉ do làm công việc nặng nhọc độc hại theo tháng thực tế rồi, do vậy chuyển công thức đó thay vào công thức cột J.

Bổ sung thêm vào công thức tính thâm niên theo tháng thực tế:
Mã:
J7=ROUND(SUMIF($Z$7:$Z$47,D7,$AA$7)*((14/12-1)*I7),2)
K7=ROUND(INT(DATEDIF(F7,IF(G7,G7,$K$5),"y")/5)*DATEDIF(F7,IF(G7,G7,$K$5),"ym")/12,1)
Enter.

Thân

hi A ,
Theo như file anh gửi E thấy trường hợp 100025 ngày nghỉ việc là 1/1/2020, tức là năm 2020 chỉ làm 1 ngày . vậy tại sao vẫn có 0.7 thâm niên ???
 
hi A ,
Theo như file anh gửi E thấy trường hợp 100025 ngày nghỉ việc là 1/1/2020, tức là năm 2020 chỉ làm 1 ngày . vậy tại sao vẫn có 0.7 thâm niên ???
Có lẽ tôi đã nhầm ý của bạn! nên công thức ra kết quả không đúng.
1/ Thử tóm ý bạn như sau:
  • Thâm niên mỗi 5 năm sẽ được tăng thêm 1 ngày. (hỏi thêm: Có hay không có sự giới hạn: tổng số ngày tăng là bao nhiêu ngày thì không tăng nữa?)
  • Người đã đủ thâm niên:
    • Trường hợp rơi vào năm hiện hành (năm đang tính sổ): tính đến tháng trong năm hiện hành tròn đủ thâm niên mỗi 5 năm, sau đó tính tỉ lệ phần trăm của số các tháng còn lại đến cuối năm của năm hiện hành kể từ tháng đủ thâm niên mỗi 5 năm:
      • 'Số ngày nghỉ theo thâm niên' = 'Số kỳ thâm niên mỗi 5 năm' * 'Số các tháng còn lại' / 12
      • Vd: NV 100025, ký hợp đồng vào ngày 01/05/2010, giả sử năm hiện hành (2020) chưa nghỉ việc (ô G7 rỗng), thì đến ngày 01/05/2020 có 'Số kỳ thâm niên mỗi 5 năm' là 2, tức được thêm 2 ngày nghỉ phép thường niên, nhưng phải tính tỉ lệ theo số tháng còn lại, tức các tháng 5,6,7,8,9,10,11,12= 8 tháng. Vậy:
        • 'Số ngày nghỉ theo thâm niên'= 2 x 8 /12
    • Trường hợp rơi vào năm trước năm hiện hành: thì sẽ ghi nhận trọn 'Số kỳ thâm niên mỗi 5 năm'.
      • Như ví dụ trên, nhưng nếu năm hiện hành là năm 2021, hoặc 2022, 2023 thì sẽ ghi nhận 'Số ngày nghỉ theo thâm niên'=2 ngày
Có đúng như 'tiêu chí' của công y bạn chưa!?

2/ Ngoài ra, tôi để ý thấy bạn ghi tháng trên hàng L5: W5 có ngày 16 theo từng tháng, tức ý bạn muốn so:
  • Các ngày trước khi tính toán phải quy tròn: Nếu ngày nhỏ hơn ngày 16 thì tính từ tháng đó, tức tính từ ngày 01 tây đầu của tháng. Ngược lại, thì tính từ tháng sau, tức tính từ ngày 01 tây đầu tháng sau.
  • Vd: Ngày ký hợp đồng là ngày 12/01/2020, do ngày 12<16, nên nếu có phép sẽ được tính từ tháng 01, kể như bắt đầu tính từ ngày 01/01. Nếu ngày ký hợp đồng là ngày 21/01/2020, do ngày 21>16, nên tính ngày nghỉ phép sẽ bắt đầu tính từ 01/02.
3/ Để tính ngày nghỉ phép do công việc nặng nhọc, độc hại là 14 hay 16 ngày/năm, thay vì bạn ghi giá trị 1 trong danh sách cột Z7: AA47, bạn phân định ra luôn công việc nào thì được thêm 2 (tức: 2+12 =14 ngày), hoặc thêm 4 (tức 4+12 =16 ngày).

Nếu đúng như các ý trên, thì bạn điều chỉnh công thức như sau:
Mã:
J7=ROUND(((SUMIF($Z$7:$Z$47,D7,$AA$7)+12)/12-1)*I7,2)
K7=ROUND(INT(DATEDIF(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"y")/5)*IFERROR(DATEDIF(MAX(LOOKUP(EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,EDATE(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,ROW($1:$10)*60)),$G$5),EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"),)/12,2)
Enter, fill xuống.

4/ Cuối cùng, tôi có chút thắc mắc: chức danh "CÔNG NHÂN ĐÓNG HÒM (KHO THÀNH PHẨM)", hiểu thì có hiểu, nhưng có chút áy náy bộ không còn chữ để thay thế hử bạn!? :)

Thân
 

File đính kèm

Có lẽ tôi đã nhầm ý của bạn! nên công thức ra kết quả không đúng.
1/ Thử tóm ý bạn như sau:
  • Thâm niên mỗi 5 năm sẽ được tăng thêm 1 ngày. (hỏi thêm: Có hay không có sự giới hạn: tổng số ngày tăng là bao nhiêu ngày thì không tăng nữa?)
  • Người đã đủ thâm niên:
    • Trường hợp rơi vào năm hiện hành (năm đang tính sổ): tính đến tháng trong năm hiện hành tròn đủ thâm niên mỗi 5 năm, sau đó tính tỉ lệ phần trăm của số các tháng còn lại đến cuối năm của năm hiện hành kể từ tháng đủ thâm niên mỗi 5 năm:
      • 'Số ngày nghỉ theo thâm niên' = 'Số kỳ thâm niên mỗi 5 năm' * 'Số các tháng còn lại' / 12
      • Vd: NV 100025, ký hợp đồng vào ngày 01/05/2010, giả sử năm hiện hành (2020) chưa nghỉ việc (ô G7 rỗng), thì đến ngày 01/05/2020 có 'Số kỳ thâm niên mỗi 5 năm' là 2, tức được thêm 2 ngày nghỉ phép thường niên, nhưng phải tính tỉ lệ theo số tháng còn lại, tức các tháng 5,6,7,8,9,10,11,12= 8 tháng. Vậy:
        • 'Số ngày nghỉ theo thâm niên'= 2 x 8 /12
    • Trường hợp rơi vào năm trước năm hiện hành: thì sẽ ghi nhận trọn 'Số kỳ thâm niên mỗi 5 năm'.
      • Như ví dụ trên, nhưng nếu năm hiện hành là năm 2021, hoặc 2022, 2023 thì sẽ ghi nhận 'Số ngày nghỉ theo thâm niên'=2 ngày
Có đúng như 'tiêu chí' của công y bạn chưa!?

2/ Ngoài ra, tôi để ý thấy bạn ghi tháng trên hàng L5: W5 có ngày 16 theo từng tháng, tức ý bạn muốn so:
  • Các ngày trước khi tính toán phải quy tròn: Nếu ngày nhỏ hơn ngày 16 thì tính từ tháng đó, tức tính từ ngày 01 tây đầu của tháng. Ngược lại, thì tính từ tháng sau, tức tính từ ngày 01 tây đầu tháng sau.
  • Vd: Ngày ký hợp đồng là ngày 12/01/2020, do ngày 12<16, nên nếu có phép sẽ được tính từ tháng 01, kể như bắt đầu tính từ ngày 01/01. Nếu ngày ký hợp đồng là ngày 21/01/2020, do ngày 21>16, nên tính ngày nghỉ phép sẽ bắt đầu tính từ 01/02.
3/ Để tính ngày nghỉ phép do công việc nặng nhọc, độc hại là 14 hay 16 ngày/năm, thay vì bạn ghi giá trị 1 trong danh sách cột Z7: AA47, bạn phân định ra luôn công việc nào thì được thêm 2 (tức: 2+12 =14 ngày), hoặc thêm 4 (tức 4+12 =16 ngày).

Nếu đúng như các ý trên, thì bạn điều chỉnh công thức như sau:
Mã:
J7=ROUND(((SUMIF($Z$7:$Z$47,D7,$AA$7)+12)/12-1)*I7,2)
K7=ROUND(INT(DATEDIF(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"y")/5)*IFERROR(DATEDIF(MAX(LOOKUP(EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,EDATE(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,ROW($1:$10)*60)),$G$5),EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"),)/12,2)
Enter, fill xuống.

4/ Cuối cùng, tôi có chút thắc mắc: chức danh "CÔNG NHÂN ĐÓNG HÒM (KHO THÀNH PHẨM)", hiểu thì có hiểu, nhưng có chút áy náy bộ không còn chữ để thay thế hử bạn!? :)

Thân

Hi anh Hiệp,
Em đã đọc rất kỹ nội dung của anh, quả thật công thức rất ngắn gọn và rất chính xác.
Tuy nhiên do trình độ excel của em còn hạn hẹp nên chưa thể diễn giải được công thức trong cột I là =SUMPRODUCT(COUNTIF($L$5:$W$5,">"&CHOOSE({1;2},F7,IF(G7,G7,$K$5)))*{1;-1}).

Ngoài ra, cách hiểu của em về cách thức tính phép có khác một chút so với bạn ThuPhương95, em nêu ví dụ ở đây để anh hiểu và set up giúp em công thức với ạ:
Ví dụ: NV 100025, ký hợp đồng vào ngày 01/05/2015, giả sử năm hiện hành (2020) chưa nghỉ việc (ô G7 rỗng), thì đến ngày 01/05/2020 có 'Số kỳ thâm niên mỗi 5 năm' là 1, tức được thêm 01 ngày nghỉ phép thường niên;
- Số ngày phép tiêu chuẩn được hưởng: 14 ngày (lao động nặng nhọc) tính tương ứng tỷ lệ cho 04 tháng 1, 2, 3, 4
- Số ngày phép sau khi được hưởng thâm niên là: 14+1 = 15 ngày tính tương ứng tỷ lệ cho 08 tháng 5, 6, 7, 8, 9, 10, 11, 12
- Do đó số ngay phép được hưởng sẽ là:
Phép năm = round(14/12*3,0) + round((14+1)/12*8,0) = round(4.7,0) + round(10,0) = 5 + 10 =
15 ngày

Cơ sở tính này là em dựa vào quy định tại Điều 7 Nghị định 45/2013/NĐ-CP về cách tính số ngày ngày hàng năm đối với trường hợp làm không đủ năm: "Số ngày nghỉ hằng năm theo Khoản 2 Điều 114 của Bộ luật lao động được tính như sau: lấy số ngày nghỉ hằng năm cộng với số ngày được nghỉ tăng thêm theo thâm niên (nếu có), chia cho 12 tháng, nhân với số tháng làm việc thực tế trong năm để tính thành số ngày được nghỉ hằng năm; kết quả phép tính lấy tròn số hàng đơn vị, nếu phần thập phân lớn hơn hoặc bằng 0,5 thì làm tròn lên 01 đơn vị. "
Và công văn của Bộ LĐTBXH trả lời Công ty Alena Việt Nam về cách tính ngày phép, hộ có làm tròn từng phép tính, chứ không làm tròn tổng cuối cùng (CV tham khảo đính kèm theo).

Còn các tiêu chí còn lại cũng tương tự ạ:
- Các ngày trước khi tính toán phải quy tròn: Nếu ngày nhỏ hơn ngày 16 thì tính từ tháng đó, tức tính từ ngày 01 tây đầu của tháng. Ngược lại, thì tính từ tháng sau, tức tính từ ngày 01 tây đầu tháng sau.
Vd: Ngày ký hợp đồng là ngày 12/01/2020, do ngày 12<16, nên nếu có phép sẽ được tính từ tháng 01, kể như bắt đầu tính từ ngày 01/01. Nếu ngày ký hợp đồng là ngày 21/01/2020, do ngày 21>16, nên tính ngày nghỉ phép sẽ bắt đầu tính từ 01/02.
- Để tính ngày nghỉ phép do công việc nặng nhọc, độc hại là 14 hay 16 ngày/năm, em sẽ để ngày phép tiêu chuẩn của họ là 12 14 16 luôn (không để ngày phép tiêu chuẩn là 12 và +2 hoặc +4 nếu là công việc nặng nhọc)

Em cảm ơn sự giúp đỡ của anh.
 

File đính kèm

  • Can cu phap ly.png
    Can cu phap ly.png
    894.3 KB · Đọc: 15
Lần chỉnh sửa cuối:
a có thể giải thích rõ hơn cho em về công thức tính bên dưới được không ạ , e đang không hiểu lắm.
=SUMPRODUCT(COUNTIF($L$5:$W$5,">"&CHOOSE({1;2},F7,IF(G7,G7,$K$5)))*{1;-1})
Hi anh Hiệp,
Em đã đọc rất kỹ nội dung của anh, quả thật công thức rất ngắn gọn và rất chính xác.
Tuy nhiên do trình độ excel của em còn hạn hẹp nên chưa thể diễn giải được công thức trong cột I là =SUMPRODUCT(COUNTIF($L$5:$W$5,">"&CHOOSE({1;2},F7,IF(G7,G7,$K$5)))*{1;-1}).
1/ Trả lời chung cho hai bạn: @ThuPhương95@Minh.Tùng.Trần về công thức các bạn hỏi:
I7=SUMPRODUCT(COUNTIF($L$5:$W$5,">"&CHOOSE({1;2},F7,IF(G7,G7,$K$5)))*{1;-1})​
Do tôi hay thích thử công thức xử lý: 'gom các vùng riêng biệt vào một mảng', nên tôi thích ghi công thức đó để trải nghiệm. Thực tế, bạn có thể dùng công thức bình thường như dưới đây sẽ đơn giản và dễ hiểu hơn:​
I7= COUNTIF($L$5:$W$5,">"&F7) - COUNTIF($L$5:$W$5,">"&IF(G7,G7,$K$5))
Nhằm rút gọn lại công thức của bạn @ThuPhương95 trong file đã đưa lên diễn đàn: (các bạn xem công thức rút gọn với sự tương ứng màu của nó)
I7=​
IF($F7<L$5,1,0) + IF($F7<M$5,1,0) + IF($F7<N$5,1,0) + IF($F7<O$5,1,0) + IF($F7<P$5,1,0) + IF($F7<Q$5,1,0) + IF($F7<R$5,1,0) + IF($F7<S$5,1,0) + IF($F7<T$5,1,0) + IF($F7<U$5,1,0) + IF($F7<V$5,1,0) + IF($F7<W$5,1,0) -
(IF($G7<L$5,1,0) + IF($G7<M$5,1,0) + (IF($G7<N$5,1,0) + IF($G7<O$5,1,0) + IF($G7<P$5,1,0) + IF($G7<Q$5,1,0) + IF($G7<R$5,1,0) + IF($G7<S$5,1,0) + IF($G7<T$5,1,0) + IF($G7<U$5,1,0) + IF($G7<V$5,1,0) + IF($G7<W$5,1,0)))

2/ Điều chỉnh công thức theo yêu cầu của bạn @Minh.Tùng.Trần tại bài #44:
Tôi sẽ xem cột K là cột "Tổng cộng phép năm" mà nhân viên được hưởng trong niên độ hiện hành tính theo tiêu chí của công ty bạn:
Mã:
K7=SUMPRODUCT(ROUND(((INT(DATEDIF(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"y")/5)-{1,0})+SUM(I7:J7))*ABS({12,0}-IFERROR(DATEDIF(MAX(LOOKUP(EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,EDATE(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,(ROW($1:$11)-1)*60)),$G$5),EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"),))/12,2))
Chỉ Enter, fill xuống.
Tôi làm tròn đến 2 đơn vị số lẻ để bạn dễ hình dung vấn đề và kiểm tra kết quả tính toán bằng tay. Nếu bạn muốn làm tròn như ý bạn yêu cầu, thì chỉnh lại số 2 ở vị trí cuối cùng của công thức thành số 0.

3/ Tôi tuy không có làm phần hành Nhân sự: tính công, tính phép, nhưng nhớ mang máng có quy định về giới hạn ngày tăng trong Nghị định, Thông tư nào đó. Nếu đúng vậy, thì các bạn phải điều chỉnh thêm hàm Min(<công thức>, 'Số giới hạn') vào công thức.

4/ Nói vui, Việt Nam có một 'rừng luật', nhưng mỗi doanh nghiệp, mỗi người... lại diễn đạt theo cách mình hiểu, nên lại đẻ ra thêm nhiều thứ, cuối cùng nhiều khi bị xử theo 'luật rừng'.

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
. . . . . .
4/ Nói vui, Việt Nam có một 'rừng luật', nhưng mỗi doanh nghiệp, mỗi người... lại diễn đạt theo cách mình hiểu, nên lại đẻ ra thêm nhiều thứ, cuối cùng nhiều khi bị xử theo 'luật rừng'.

Bộ Luật LĐ (BL) cho phép người LĐ & người sử dụng thỏa thuận khác 1 khi người LĐ được hưởng những quyền lợi cao hơn BL qui định mà.
Giả dụ trong BL có ghi về phép năm là 10 ngày cho 5 năm đầu tiên
Nhưng Thỏa ước ghi 3 năm đầu tiên được 10 ngày, sau đó cứ mỗi năm làm việc được tăng 1 ngày phép thì OK mà!
(Chỉ có điều, chỉ 15 ngày nghỉ phép trong năm là có lương thôi, chẵng hạn)
 
2/ Điều chỉnh công thức theo yêu cầu của bạn @Minh.Tùng.Trần tại bài #44:
Tôi sẽ xem cột K là cột "Tổng cộng phép năm" mà nhân viên được hưởng trong niên độ hiện hành tính theo tiêu chí của công ty bạn:
Mã:
K7=SUMPRODUCT(ROUND(((INT(DATEDIF(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"y")/5)-{1,0})+SUM(I7:J7))*ABS({12,0}-IFERROR(DATEDIF(MAX(LOOKUP(EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,EDATE(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,(ROW($1:$11)-1)*60)),$G$5),EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"),))/12,2))
Chỉ Enter, fill xuống.
Tôi làm tròn đến 2 đơn vị số lẻ để bạn dễ hình dung vấn đề và kiểm tra kết quả tính toán bằng tay. Nếu bạn muốn làm tròn như ý bạn yêu cầu, thì chỉnh lại số 2 ở vị trí cuối cùng của công thức thành số 0.

Hi anh,
Em cảm ơn anh đã cài đặt giúp và giải thích cặn kẽ.
Em cũng đã thử nhiều trường hợp ngày nghỉ thì hầu hết các trường hợp từ sau 16/04/2020 trở đi là đúng còn các trường hợp ngày nghỉ việc đến ngày 15/04/2020 thì tổng ngày hưởng phép ở cột K lại nhỏ hơn ngày phép thực tế được hưởng.
Em lấy ví dụ:
CN mã 100025 Lê Thị Hồng (row 7); nếu nghỉ ngày 16/02/2020 thì thực tế sẽ được 02 ngày phép (I7=2 đúng; J7=0.33 đúng) nhưng K7 thì =1.5; ngày phép tính < ngày phép thực tế được hưởng.
Tương tự với ngày nghỉ việc đến 15/04/2020 thì thực tế ngày phép hưởng là 3,5 làm tròn thành 4 ngày phép (I7 = 3 đúng; J7 = 0.5 đúng) nhưng K7 thì =2.67 < 4.
Em chưa hiểu cách công thức ở cột K7 hoạt động như thế nào, anh có thể giải thích giúp em được không ạ. Em cảm ơn anh.
Trân trọng./
 
Em chưa hiểu cách công thức ở cột K7 hoạt động như thế nào, anh có thể giải thích giúp em được không ạ. Em cảm ơn anh.
Trân trọng./
Điều chỉnh lại 1 chút:
Mã:
K7=SUMPRODUCT(ROUND(((INT(DATEDIF(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"y")/5)-{1,0})+(SUMIF($Z$7:$Z$47,D7,$AA$7)+12))*ABS(IF({1,0},DATEDIF(EOMONTH(MAX(F7,$G$5),(DAY(MAX(F7,$G$5))<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"),0)-DATEDIF(MAX(LOOKUP(EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,EDATE(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,(ROW($1:$11)-1)*60)),$G$5),EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"))/12,2))
Enter. fill xuống.

Trước khi giải thích, tôi đã phân ra từng đoạn công thức và gán vào Name, công thức sẽ còn lại:
Mã:
K7=SUMPRODUCT(ROUND(((SoKy5nam-{1,0})+(NgayPhepChuan))*ABS(IF({1,0},DATEDIF(NgayDauNienDo,NgayCuoi,"m"),)-DATEDIF(MAX(LOOKUP(NgayCuoi,EDATE(NgayVao,(ROW($1:$11)-1)*60)),$G$5),NgayCuoi,"m"))/12,2))
Enter. fill xuống.

Với:
  • NgayPhepChuan = SUMIF($Z$7:$Z$47,D7,$AA$7)+12
    • Tùy theo nhân viên mà NgayPhepChuan sẽ là 12, hoặc 14, hoặc 16
  • NgayVao = EOMONTH(F7,(DAY(F7)<=15)*-1)+1 -->Quy đổi theo so sánh trước hay sau ngày 16
    • Vd: Vào 12/04/2020 thì quy thành 01/04/2020. Vào 25/06/2015 quy thành 01/07/2015
  • NgayCuoi = EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1 -->Quy đổi theo so sánh trước hay sau ngày 16
  • NgayDauNienDo = EOMONTH(MAX(F7,$G$5),(DAY(MAX(F7,$G$5))<=15)*-1)+1 -->Quy đổi theo so sánh trước hay sau ngày 16
  • SoKy5nam = INT(NgayVao , NgayCuoi , "y")/5)
  • 'Số ngày phép chuẩn': phân thành 2 đoạn trước và sau tính đến thời điểm tháng đã tròn kỳ mỗi 5 năm
    • = SoKy5nam-{1,0})+(NgayPhepChuan)
    • Vd: Nhân viên 100025: (2 ô AI7: AJ7) = {14 ngày,15 ngày} --> Xem công thức và kết quả tại AI7: AJ102 file đính kèm để biết thêm chi tiết theo từng nhân viên.
  • 'Số tháng thực': trong niên độ phân thành 2 đoạn trước và sau tính đến thời điểm tháng đã tròn kỳ mỗi 5 năm
    • =ABS(IF({1,0},DATEDIF(NgayDauNienDo,NgayCuoi,"m"),)-DATEDIF(MAX(LOOKUP(NgayCuoi,EDATE(NgayVao,(ROW($1:$11)-1)*60)),$G$5),NgayCuoi,"m"))
    • Vd: Nhân viên 100025: (2 ô AP7: AQ7) = {4 tháng,1 tháng} --> Xem công thức và kết quả tại AP7: AQ102 file đính kèm để biết thêm chi tiết theo từng nhân viên.
  • Tổng phép được hưởng:
    • K7=SUMPRODUCT( Round( 'Số ngày phép chuẩn' * 'Số tháng thực' / 12 , 2 ) )
    • Vd: K7= SUMPRODUCT( Round( {14,15} * {4,1} / 12 , 2 ) ) = Sumproduct( Round( {14*4/12, 15*1/12} , 2) ) = Sumproduct( {4.67 , 1.25} ) = 5.92
Thân
 

File đính kèm

Điều chỉnh lại 1 chút:
Mã:
K7=SUMPRODUCT(ROUND(((INT(DATEDIF(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"y")/5)-{1,0})+(SUMIF($Z$7:$Z$47,D7,$AA$7)+12))*ABS(IF({1,0},DATEDIF(EOMONTH(MAX(F7,$G$5),(DAY(MAX(F7,$G$5))<=15)*-1)+1,EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"),0)-DATEDIF(MAX(LOOKUP(EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,EDATE(EOMONTH(F7,(DAY(F7)<=15)*-1)+1,(ROW($1:$11)-1)*60)),$G$5),EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1,"m"))/12,2))
Enter. fill xuống.

Trước khi giải thích, tôi đã phân ra từng đoạn công thức và gán vào Name, công thức sẽ còn lại:
Mã:
K7=SUMPRODUCT(ROUND(((SoKy5nam-{1,0})+(NgayPhepChuan))*ABS(IF({1,0},DATEDIF(NgayDauNienDo,NgayCuoi,"m"),)-DATEDIF(MAX(LOOKUP(NgayCuoi,EDATE(NgayVao,(ROW($1:$11)-1)*60)),$G$5),NgayCuoi,"m"))/12,2))
Enter. fill xuống.

Với:
  • NgayPhepChuan = SUMIF($Z$7:$Z$47,D7,$AA$7)+12
    • Tùy theo nhân viên mà NgayPhepChuan sẽ là 12, hoặc 14, hoặc 16
  • NgayVao = EOMONTH(F7,(DAY(F7)<=15)*-1)+1 -->Quy đổi theo so sánh trước hay sau ngày 16
    • Vd: Vào 12/04/2020 thì quy thành 01/04/2020. Vào 25/06/2015 quy thành 01/07/2015
  • NgayCuoi = EOMONTH(IF(G7,G7,$K$5),(DAY(IF(G7,G7,$K$5))<=15)*-1)+1 -->Quy đổi theo so sánh trước hay sau ngày 16
  • NgayDauNienDo = EOMONTH(MAX(F7,$G$5),(DAY(MAX(F7,$G$5))<=15)*-1)+1 -->Quy đổi theo so sánh trước hay sau ngày 16
  • SoKy5nam = INT(NgayVao , NgayCuoi , "y")/5)
  • 'Số ngày phép chuẩn': phân thành 2 đoạn trước và sau tính đến thời điểm tháng đã tròn kỳ mỗi 5 năm
    • = SoKy5nam-{1,0})+(NgayPhepChuan)
    • Vd: Nhân viên 100025: (2 ô AI7: AJ7) = {14 ngày,15 ngày} --> Xem công thức và kết quả tại AI7: AJ102 file đính kèm để biết thêm chi tiết theo từng nhân viên.
  • 'Số tháng thực': trong niên độ phân thành 2 đoạn trước và sau tính đến thời điểm tháng đã tròn kỳ mỗi 5 năm
    • =ABS(IF({1,0},DATEDIF(NgayDauNienDo,NgayCuoi,"m"),)-DATEDIF(MAX(LOOKUP(NgayCuoi,EDATE(NgayVao,(ROW($1:$11)-1)*60)),$G$5),NgayCuoi,"m"))
    • Vd: Nhân viên 100025: (2 ô AP7: AQ7) = {4 tháng,1 tháng} --> Xem công thức và kết quả tại AP7: AQ102 file đính kèm để biết thêm chi tiết theo từng nhân viên.
  • Tổng phép được hưởng:
    • K7=SUMPRODUCT( Round( 'Số ngày phép chuẩn' * 'Số tháng thực' / 12 , 2 ) )
    • Vd: K7= SUMPRODUCT( Round( {14,15} * {4,1} / 12 , 2 ) ) = Sumproduct( Round( {14*4/12, 15*1/12} , 2) ) = Sumproduct( {4.67 , 1.25} ) = 5.92
Thân
Dear anh Hiệp,
Em cảm ơn anh rất nhiều, thực sự anh là một người rất tâm, sẵn sàng chia sẻ với mọi người.
Công thức anh setup giúp, em có điều chỉnh lại một chút cho phù hợp và giờ nó đang chạy rất ok.
 
Dear anh Hiệp,
Em cảm ơn anh rất nhiều, thực sự anh là một người rất tâm, sẵn sàng chia sẻ với mọi người.
Công thức anh setup giúp, em có điều chỉnh lại một chút cho phù hợp và giờ nó đang chạy rất ok.
anh phan thế hiệp là lão sư phụ rồi đó nha bạn. không phải <U50 đâu .
 
Sao mình dùng hàm tính số tháng nó ra ko đúng kết quả nhỉ: = DATEDIF( 01/01/2020, 31/12/2020,M) - kết quả là 11 tháng
ai biết mình sai chỗ nào ko nhỉ
 
Chào các anh chị !
Nhờ các anh chị làm dùm em cái công thức tính phép này với ạ, trong file kèm là cách tính cũ trước đây là tính tỉ lệ theo ngày, bây giờ luật mới thay đổi cách tính phép nên thay đổi tính theo tháng, cách tính như sau:
- Làm đủ năm thì tính 12 ngày, thâm niên cứ 5 năm cộng thêm 1 ngày, nặng nhọc độc hại thì đc cộng thêm 1 hoặc 2 ngày tùy TC công việc, tính tỉ lệ phụ thuộc vào số tháng làm việc, nếu số tiếng ra số lẻ thì >=0.5 thì làm tròn thành 1, <0.49 thì làm tròn thành 0.
- Nhân viên mới vào xưởng trong tháng từ ngày 1~16 thì tính 1 ngày của tháng đó, từ ngày 17 trở về sau thì k đc tính, nghỉ việc trong tháng từ ngày 14 trở về sau thì đc tính 1 ngày và ngược lại.
- Nghỉ việc riêng+ không phép trong 1 năm cộng dồn trên 26 ngày sẽ không được tính phép năm.
Em cảm ơn nhiều ạ.!
 

File đính kèm

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

Back
Top Bottom