TẠO BẢNG CHẤM CÔNG TỰ ĐỘNG THEO GIỜ TRONG EXCEL SỬ DỤNG PYTHON P6 (HOÀN THIỆN BẢNG CHẤM CÔNG VÀ 1 SỐ VÍ DỤ)

CÁC NỘI DUNG CHÍNH
I. YÊU CẦU ĐẦU VÀO
1. CHUẨN BỊ NỘI DUNG
2. YÊU CẦU KIẾN THỨC
3. ĐỀ BÀI VÀ YÊU CẦU ĐẶT RA
II. CÁC BƯỚC THỰC HIỆN
II.a. Tính lương cho nhân viên.
II.b. Highlight ngày nghỉ lễ trong tháng
II.c. Chuyển bảng chấm công thành làm việc 6 ngày trong tuần
III. KẾT LUẬN
1. Trường hợp vận dụng 
2. Ưu điểm
3. Nhược điểm

I. YÊU CẦU ĐẦU VÀO

1. CHUẨN BỊ NỘI DUNG

Để bắt đầu bài học, các bạn cần có ít nhất 01 máy tính để bàn hoặc laptop, trong đó đã cài đặt:

a. Python

b. Visual Studio Code

c. Microsoft Excel từ 2007 trở lên để tối ưu việc lập trình bằng python.

d. Teamviewer hoặc Ultraviewer để được các giảng viên và trợ giảng của trang web Pyan.vn hỗ trợ 24/7 nếu các bạn bị vướng mắc trong quá trình code.

2. YÊU CẦU KIẾN THỨC

Đối với bài học này, các bạn cần nẵm vững các kiến thức sau:

a. Cách sử dụng vòng lặp FOR

b. Cách sử dụng hàm điều kiện IF

c. Cách sử dụng vòng lặp WHILE

d. Nếu chưa nắm vững kiến thức, các bạn có thể trao đổi thêm với các giảng viên và trợ giảng của trang web Pyan.vn để được hỗ trợ.

3. ĐỀ BÀI VÀ YÊU CẦU ĐẶT RA

a. Đề bài:

Tạo một bảng chấm công tự động theo giờ trong excel sử dụng python.

b. Yêu cầu đặt ra:

Lần lượt xây dựng từng thành phần của bảng chấm công bằng code. Cuối cùng chỉ cần 1 click chuột là ta có 1 bảng chấm công tự động theo giờ.

Bảng dữ liệu ban đầu:

Bảng dữ liệu thu được sau khi code hoàn chỉnh

II. CÁC BƯỚC THỰC HIỆN

II.a. Tính lương cho nhân viên.

Trong bài học hôm nay, chúng tôi sẽ hướng dẫn các bạn cách tính lương cho nhân viên và sẽ nói thêm 1 số trường hợp đặc biệt khi sử dụng bảng chấm công tự động này. Như các bạn đã thấy tại bảng tính lương cho nhân viên gồm có 4 cell L2, L3, L4, L5 lần lượt là lương cơ bản trong 1 tháng nếu nhân viên làm đủ thời gian quy định, lương giảm trừ do làm thiếu giờ, lương cộng thêm do làm tăng ca và tổng lương. Lần lượt, các bạn gán giá trị cho các cell L2 bằng hàm sum của các giá trị trong cột G từ cell G6 tới G36 nhân với H4. Tiếp theo, các bạn gán giá trị cho cell L3 bằng hàm sum của các giá trị trong cột H từ cell H6 tới H36 nhân với H4. Sau đó, các bạn gán giá trị cho cell L4 bằng hàm sum của các giá trị trong cột I từ cell I6 tới I36 nhân với H4. Các bạn lưu ý là công thức này sẽ nhân thêm 1 chấm 5. Đây là hệ số chúng ta giả định khi làm thêm giờ sẽ được nhân thêm, tùy tình hình thực tế mà các bạn thay đổi hệ số khi làm thêm giờ sao cho phù hợp. Cuối cùng, các bạn gán cho cell L5 bằng L2 trừ đi L3 cộng L4. Các bạn thực thi code. Kết quả là chúng ta có tổng lương của nhân viên Mr. Pyan trong 1 tháng. Như vậy chúng tôi đã hướng dẫn các bạn cách để tạo một bảng chấm công tự động theo thời gian.

II.b. Highlight ngày nghỉ lễ trong tháng

Sau đây chúng tôi sẽ nói thêm 1 số trường hợp đặc biệt khi sử dụng bảng chấm công này. Trường hợp đầu tiên, là trong tháng có những ngày nghỉ lễ. Trong những ngày này, nhân viên Mr. Pyan được nghỉ ở nhà nhưng vẫn được chấm công như một ngày làm việc bình thường. Để phục vụ cho việc quản lý, chúng tôi sẽ hướng dẫn các bạn fill color những ngày đặc biệt này. Chúng ta sẽ đặt công thức này ngay dưới đoạn code của nhóm cột G, H, I. 

Các bạn khai báo biến list holiday là một list các ngày nghỉ trong tháng 4 năm 2021. Chúng tôi giả định trong tháng này có các ngày nghỉ là ngày 8 tháng 4 năm 2021, ngày 14 tháng 4 năm 2021 và ngày 22 tháng 4 năm 2021. Bây giờ, chúng ta sẽ so sánh các ngày trong list này với các ngày trong tháng 4 tại bảng chấm công. Để làm được điều này, trước hết chúng ta phải chuyển các giá trị trong list holiday về định dạng ngày tháng năm theo chuẩn của Python. Đầu tiên, các bạn import module datetime để làm việc với giá trị thời gian. Tiếp đó, các bạn khai báo biến list convert là một list rỗng. Chúng ta sẽ convert các giá trị trong list holiday và chuyển vào list rỗng này thông qua các bước sau. Trong vòng lặp while với biến j bằng 0, j sẽ lần lượt kiểm tra các giá trị trong list holiday, chúng ta sử dụng module datetime để convert toàn bộ các giá trị thứ j trong list holiday về định dạng ngày tháng năm. Sau đó chúng ta dùng hàm append để chuyển giá trị đã được convert vào list convert. Các bạn cho biến j tăng thêm 1 đơn vị để duyệt phần tử tiếp theo trong list holiday. Tiếp theo, trong vòng lặp while với biến j bằng 6, j nhỏ hơn 37. Các bạn sử dụng hàm điều kiện If để kiểm tra xem giá trị các cell trong cột A có trùng với giá trị trong list convert hay không. Nếu có thì sẽ fill color cho cell đó thành màu xanh dương có mã RGB là 0, 255, 255. Các bạn cho biến j tăng thêm 1 đơn vị để duyệt phần tử tiếp theo trong cột A. Các bạn thực thi code, kết quả là toàn bộ 3 ngày nghỉ lễ trong tháng đã được chuyển thành màu xanh dương.

II.c. Chuyển bảng chấm công thành làm việc 6 ngày trong tuần

Trường hợp thứ hai, là thay vì nhân viên Mr. Pyan làm việc 5 ngày trong 1 tuần, được nghỉ thứ 7 và chủ nhật thì Mr. Pyan sẽ làm việc 6 ngày trong 1 tuần chỉ nghỉ chủ nhật. Trong trường hợp này, chúng ta có 2 cách : cách thứ nhất là sẽ chỉnh sửa lại bảng chấm công tự động bằng việc tìm kiếm và lần lượt xóa đi đoạn code liên quan tới ngày thứ 7 trong script Python. Cách thứ 2 là viết thêm code vào script Python để chuyển ngày thứ 7 từ ngày nghỉ về thành một ngày làm việc bình thường. Trong bài học này, để file script Python có thể áp dụng linh hoạt trong nhiều trường hợp một lúc, chúng tôi sẽ hướng dẫn các bạn sử dụng cách thứ 2. Trước hết, các bạn khai báo biến list day work là một danh sách có chứa các giá trị 2, 3, 4, 5, 6, 7 tương ứng với các ngày trong tuần. Trong vòng lặp while với biến j bằng 6, j nhỏ hơn 37, các bạn khai báo biến day là giá trị các cell trong cột B. Tiếp theo, các bạn dùng hàm điều kiện If để kiểm tra xem biến day có trùng với các giá trị trong list day work hay không. Nếu có thì các cell trong hàng từ cell A j tới cell I j sẽ được fill color thành màu trắng, có mã RGB là 255, 255, 255. Đồng thời, chúng ta cũng gán lần lượt giá trị cho các cell trong các cột C, D, E, G, H, I là các công thức mà chúng ta đã sử dụng trong các bài học trước. Sau đó, các bạn cho biến j tăng thêm 1 đơn vị để duyệt phần tử tiếp theo. Các bạn thực thi code. Kết quả là toàn bộ các ngày thứ 7 trong tháng đã trở thành một ngày làm việc bình thường. Các bạn sẽ điều chỉnh lại các giá trị trong cột F sao cho phù hợp với các giả định mà chúng ta đã sử dụng trong các phần trước. Bài học của chúng tôi đến đây là kết thúc.

III. KẾT LUẬN

1. Trường hợp vận dụng

Sử dụng bảng chấm công tự động theo giờ nhằm mục đích quản lý nhân sự – hành chính.

2. Ưu điểm

Sau khi đã xây dựng công thức xong thì ta chỉ cần thay các giá trị tham số mà ta dùng để so sánh như trong bài học là có thể áp dụng được.

3. Nhược điểm

Số lượng code tương đối nhiều, đối với người mới học có thể phát sinh lỗi trong quá trình code, yêu cầu sự kiên trì, tỉ mỉ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *