Tạo bảng chấm công bằng Excel giúp chúng ta chuyên nghiệp hóa được công việc quản trị nhân lực. Đồng thời hệ thống này cũng giúp lưu trữ tôt và hoạt động trơn tru hơn so với truyền thống. Bài viết này sẽ hướng dẫn bạn tạo bảng chấm công bằng Excel vô cùng đơn giản.
{index}
Xác định mô hình bảng chấm công:
Trước khi lập 1 file excel, bạn nên tưởng tượng, hình dung ra trước xem file bảng chấm công gồm những gì, bao nhiêu sheet, nội dung như thế nào, cách hoạt động ra sao…? Khi trả lời được các câu hỏi thì bạn càng biết rõ cách làm trên excel để có kết quả như ý muốn.
Tôi sẽ hướng dẫn cách lập 1 mô hình bảng chấm công ví dụ như sau:
- Gồm 13 sheet, mỗi sheet là 1 tháng và 1 sheet làm danh sách nhân viên
- Trung bình mỗi tháng là 20 nhân viên
- Ký hiệu chấm công có thể thay đổi được tùy người sử dụng (mỗi người có thể chấm 1 kiểu ký hiệu, nhưng sẽ đồng nhất trong 12 tháng)
- Trong mỗi bảng chấm công có ghi rõ ngày, thứ trong tháng. Vào thứ 7 và chủ nhật thì tự đổi màu khác so với ngày thường.
- Hàng ngày sẽ chấm công vào các ngày trong tháng. Cuối tháng sẽ tự tính số tổng số công trong tháng.
- Tên nhân viên trong bảng chấm công sẽ lấy từ danh sách nhân viên
- Có thể liên kết giữa các tháng với nhau để dễ thao tác.
Các bước thực hiện chi tiết
Bố cục các Sheet
Về mô hình là 13 sheet, nhưng khi bắt đầu làm ta chỉ cần 2 sheet:
+ 1 sheet là Danh sách nhân viên (DSNV)
+ 1 sheet là Tháng 1 (làm hoàn chỉnh cho 1 tháng, các tháng sau có thể copy sheet này rồi đổi tên)
Sheet Danh sách nhân viên:
Nội dung chủ yếu trong sheet này là Tên và Mã nhân viên. Cần tạo mã nhân viên vì có thể có trường hợp trùng tên. Khi quản lý theo mã sẽ tránh trường hợp bị trùng.
Ngoài ra còn có các nội dung khác liên quan tới nhân viên, như: ngày sinh, quê quán, số CMT, ngày vào làm…
Bạn có thể tạo như sau:
+ Cột E (ngày sinh), bạn bôi đen cả cột (đưa con trỏ chuột vào vị trí trên cùng của cột – chữ E, bấm chọn cả cột), bạn định dạng Format cell -> Number p-> pCustome -> chọn dd-mm-yyyy. Tác dụng: khi bạn nhập bất kỳ dữ liệu kiểu ngày tháng vào cột này sẽ tự động đưa về dạng dd-mm-yyyy (01-01-2014)
Sheet danh sách nhân viên hầu hết là nhập bằng tay nên không có gì phức tạp.
Lưu ý: bạn chừa ra khoảng 2-3 dòng trên cùng để tạo liên kết tới các sheet khác. Bên trái cách ra 1 cột để dự phòng nếu cần bổ sung gì thêm.
Sheet Tháng 1
Đầu tiên bạn tạo khung cho bảng chấm công, gồm các nội dung: Tiêu đề – Bảng chấm công, tháng, bộ phận chấm công, định mức ngày công trong tháng, các cột gồm: mã nhân viên, tên nhân viên, ngày trong tháng (31 cột tương ứng với 31 ngày – số ngày lớn nhất của 1 tháng), 4-5 cột tính quy ra công, 1 cột để ghi chú
Tiếp sau đó bạn co độ rộng của các cột sao cho gọn và dễ nhìn. Các cột ngày trong tháng có thể co lại nhỏ vừa đủ để chấm công thôi. Cột quy ra công cũng không cần rộng lắm. Chủ yếu cột tên và mã nhân viên hiển thị đủ là được.
Cách co độ rộng: bạn bôi đen các cột ngày trong tháng, quy ra công (trong ví dụ là bôi đen từ cột E đến cột AM), sau đó co độ rộng ở cột E khoảng 30 pixels (hoặc bôi đen từ cột E đến cột AM, sau đó bấm chọn command Column Width, chọn 3,13 tương ứng 30 pixels)
Vậy là bạn đã làm xong phần khung của Bảng chấm công. Tiếp theo ta sẽ thực hiện thao tác chọn ngày tháng của bảng chấm công.
Tạo ngày tháng trong bảng chấm công
– Đầu tiên ta xác định năm sử dụng. Tại ô D1 nhập giá trị của năm. Ví dụ năm 2014.
– Tại ô B4 (xác định tháng chấm công), ta nhập hàm xác định ngày: =date($D$1;1;1).
Lưu ý: Dấu ngăn cách các thành phần trong hàm có thể là dấu ; hoặc dấu , tùy thiết lập của máy tính. Ở máy tính của tôi sử dụng dấu ;
Nội dung hàm date: Xác định giá trị của ngày tháng theo giá trị xác định trong hàm. giá trị theo thứ tự là Năm, tháng, ngày. Ở hàm trên là Năm = giá trị tại ô D1, Tháng = 1, Ngày = 1
– Sau khi nhập hàm xong, tại ô B4, chọn Format cell -> Custom -> nhập giá trị [“tháng “mm” năm “yyyy] vào ô Type bên phải, xong rồi ấn OK (dấu nháy kép + tháng + dấu cách + dấu nháy kép + mm + dấu nháy kép + năm + dấu cách + dấu nháy kép + yyyy)
– Bạn có thể marge cell từ ô B4 đến D4 để cho hiển thị đủ nội dung cho dễ nhìn.
– Tại ô ngày 1 ( ô E9), bạn nhập =B4 để xác định ngày đầu tiên trong tháng.
– Tại ô F9, bạn nhập =E9+1 (ngày tiếp theo trong tháng)
– Copy công thức tại ô F9 sang các ô bên cạnh, cho đến ô ngày thứ 31 (ô AI9) bằng cách sau:
- Cách 1: Bôi đen từ ô F9 đến ô AI9, bấm Ctrl + R;
- Cách 2: Bấm chuột vào ô F9, giữ chuột tại vị trí dấu chấm đen trong ô để con trỏ chuột trở thành dấu +, kéo chuột tới ô AI9 rồi thả ra
– Bôi đen từ ô E9 đến ô AI9, chọn Format cells -> Custom -> mục Type bạn gõ chữ dd rồi bấm OK (chỉ hiện thị số ngày)
Nội dung trong ô E9 đến ô AI9 sẽ hiển thị ra ngày như trong bảng trên.
– Tại ô E10 nhập hàm:
=CHOOSE(WEEKDAY(E9);”Chủ nhật”;”T. hai”;”T. ba”;”T. tư”;”T. năm”;”T. sáu”;”T. bảy”)
Nội dung hàm:
- Weekday(e9): là lấy giá trị ngày trong tuần của ô E9. Nếu nội dung trong hàm weekday không có đặt quy định về thứ tự ngày trong tuần thì sẽ tự trả về theo thứ tự Chủ nhật, thứ hai, thứ 3… thứ 7 (Bắt đầu là chủ nhật, kết thúc là thứ 7), và trả về giá trị số từ 1 đến 8
- Choose: là hàm chọn giá trị trả về. Giá trị đầu tiên trong hàm là giá trị được chọn để làm căn cứ xác định. Các giá trị tiếp theo là nội dung được trả về tương ứng theo giá trị đầu tiên.
Trong hàm trên, ngày 01/01/2014 khi dùng hàm weekday sẽ trả về giá trị là 4, khi dùng hàm choose với thứ tự tương ứng là Chủ nhật, thứ hai, thứ ba… thứ bảy thì giá trị 4 sẽ tương ứng với thứ tư. Bởi vì hàm weekday không tự trả về thứ theo tiếng việt, nên ta phải kết hợp với hàm choose để có được nội dung là thứ mấy trong tuần
– Copy công thức tại ô E10 sang các ô kế tiếp bên phải, cho tới ô AI10 (ngày thứ 31)
Tuy nhiên không phải tháng nào cũng có 31 ngày, nên để tránh việc hiển thị các ngày của tháng khác vào tháng này, ta thực hiện các thao tác sau:
+ Bắt đầu từ ngày thứ 29 (ô AG9), ta điều chỉnh về hàm như sau:
=IF(DAY(AF9+1)=DAY(E9);””;AF9+1)
Nội dung hàm: Nếu giá trị ngày của ô AF9 +1 bằng giá trị ngày của ô E9 sẽ trả về giá trị là rỗng, nếu không bằng thì sẽ trả về giá trị ô AF9 + 1 (Nghĩa là nếu tháng 2 có 28 ngày, thì ngày thứ 29 sẽ là ngày 01/03, vậy giá trị ngày là 1, bằng với giá trị ngày của ô E9, nếu đúng như thế thì sẽ là rỗng, không hiển thị ngày 01/03. Còn nếu tháng 2 đó có 29 ngày thì sẽ hiện ngày 29).
+ Tại ô AH9, ta dùng hàm sau:
=IF(AG9=””;””;if(DAY(AG9+1)=DAY(E9);””;AG9+1))
Nội dung hàm:
- IF thứ 1: Nếu tại ô AG9 là giá trị rỗng, thì ô AH9 cũng sẽ có giá trị rỗng (tức là vào trường hợp tháng 2 có 28 ngày thì sẽ không có ngày thứ 30)
- IF thứ 2: tương tự với hàm if tại ô AG9, tức là trường hợp tháng 2 có 29 ngày, thì sẽ không hiển thị ngày 30.
+ Tại ô AI9, ta dùng hàm sau:
=IF(AH9=””;””;if(DAY(AH9+1)=DAY(E9);””;AH9+1))
Nội dung hàm:
- IF thứ 1: Nếu AH9 là giá trị rỗng, thì AI9 cũng sẽ có giá trị rỗng (tức là trường hợp không có ngày thứ 30 thì cũng không có ngày thứ 31)
- IF thứ 2: trường hợp tháng chỉ có 30 ngày thì sẽ không có ngày thứ 31
+ Khi các ô AG9, AH9, AI9 là rỗng thì hàm choose ở các ô AG10, AH10, AI10 sẽ phát sinh lỗi. Nhưng không ảnh hưởng gì đến bảng tính nên không cần lo lắng về việc này.
Như vậy ta đã thực hiện được phần các ngày trong tháng, và các thứ trong tuần.
Tiếp theo là việc tự động đổi màu cho các ngày thứ 7, chủ nhật cho khác với ngày thường
+ Bôi đen nội dung trong bảng (Từ E9 đến AI30 – tức là tất cả các nội dung về ngày trong tháng lẫn phần chấm công của các nhân viên), chọn chức năng Conditional Formatting (định dạng theo điều kiện), trong mục Condittional Formatting, chọn New Rule.
Trong bảng New Formatting Rule, bạn chọn dòng cuối cùng trong mục Select a Rule Type là Use a formula to determine which cells to format (Dùng công thức để mô tả cách định dạng cells)
+ Tại mục Format values where this formula is true, ta nhập hàm
=IF(WEEKDAY(E$9)=1;true;false)
Nội dung hàm: Nếu ngày trong tuần tại ô E9 là 1 (tức là chủ nhật) thì là đúng, không thì sẽ sai. Nếu dúng thì sẽ áp dụng định dạng của Conditional formatting. Đặt dấu cố định E$9 là cố định hàng 9, tính từ cột E.
+ Sau khi đặt hàm, ta thiết lập định dạng cho CF. Trong bảng định dạng, bạn có thể chọn font chữ, màu chữ tại Font, màu nền tại Fill, kẻ đường viền ô tại Border… (giống định dạng ô của Format cells thông thường). Chọn định dạng xong bấm OK.
Kết quả khi thực hiện Conditional formatting với điều kiện ngày chủ nhật.
+ Làm tương tự với định dạng ngày thứ 7:
Bôi đen vùng trong bảng, chọn chức năng Conditional Formatting -> New rule -> Use a formulas…, nhập hàm:
=if(weekday(e$9)=7;true;false)
Chọn kiểu định dạng cho ngày thứ 7.
Kết quả khi thực hiện định dạng thứ 7 và chủ nhật
+ Thiết lập định dạng cho các cột không chứa giá trị ngày (ví dụ tháng 2 có 28 ngày, tự động bôi đen các ngày trống để phân biệt)
Bước 1: Tại ô B4, sửa tạm giá trị tháng là 2 để làm thử
Bước 2: Bôi đen vùng trong bảng, chọn chức năng Conditional formatting -> New rule -> Use a formulas…, nhập hàm =if(e$9=””;true;false), chọn định dạng là tô màu xám cho chữ và nền, ta có kết quả như sau:
Khi làm xong nhớ trả lại giá trị tháng 1 ở ô B4 nhé.
Phù, vậy là xong phần thiết lập ngày tháng cho bảng chấm công. Giờ còn khâu cuối cùng là đặt ký hiệu chấm công nữa là xong.
Đặt ký hiệu chấm công
+ Bạn chọn 1 vài ký hiệu chấm công cho 1 số loại công như sau:
- Ngày công thực tế (đi làm đủ số công):
- Nửa ngày công (làm nửa ca, nửa ngày…);
- Ngày nghỉ hưởng nguyên lương (đi học, họp, phép… nghỉ mà có lương);
- Nghỉ không lương;
- … (tùy đơn vị mà chọn các hình thức chấm công khác nhau).
Lưu ý mỗi kí hiệu chấm công sẽ tương ứng với 1 cột quy ra công (hoặc có thể gộp), ngoài ra thêm 1 cột tính tổng số công
Tại ví dụ tôi đặt như sau:
- Ngày công thực tế: x
- Nửa ngày công : v
- Ngày nghỉ hưởng nguyên lương: P
- Nghỉ không lương: K
- Ốm đau, thai sản: O
Hàm, công thức tính công
Tại cột Ngày công thực tế (cột AJ), tại ô AJ11, đặt hàm sau:
=COUNTIF($E11:$AI11;$G$34)
Nội dung hàm: Đếm số lần xuất hiện của giá trị tại ô G34, trong vùng E11 đến AI11. Giá trị tại ô G34 là ký hiệu chấm công của ngày công đủ, vùng E11 đến AI11 là số ngày công trong tháng của người đầu tiên (hàng 11), cố định cột E và AI để khi copy công thức không bị ảnh hưởng tới vùng chấm công
Tương tự với các cột khác, ta đặt công thức:
- Ô AK11 (Nửa công) =countif($E11:$AI11;$G$35)
- Ô AL11 (Nghỉ hưởng lương) =countif($E11:$AI11;$G$36)
- Ô AM11 (nghỉ không lương) =countif($E11:$AI11;$G$37)
- Ô AN11 (ốm đau, thai sản) =countif($E11:$AI11;$G$38)
Tổng số công sẽ tính tùy theo yêu cầu tính công của đơn vị. Ví dụ: Tổng ngày công = Ngày công thực tế + Nửa công x 0,5 + Nghỉ hưởng lương + Ốm đau, thai sản
Ô AO11 = AJ11+AK11*0,5+AL11+AN11
Sau khi đặt công thức xong, ta copy công thức xuống cho các nhân viên khác
Khi hoàn thiện sẽ có như sau:
Như vậy là đã hoàn thiện xong việc chấm công, tạo ký hiệu và tính số công. Giờ bạn có thể kiểm tra công thức bằng cách chấm thử vài ký hiệu vào bảng để kiểm tra.
Như vậy là ta đã hoàn chỉnh xong bảng chấm công của tháng 1. Giờ chỉ còn việc copy ra các tháng còn lại.