TẠO BẢNG CHẤM CÔNG TỰ ĐỘNG THEO GIỜ TRONG EXCEL SỬ DỤNG PYTHON P2 (TẠO CỘT NGÀY TRONG THÁNG)

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
Lập danh sách tự động cho cột A – cột chứa ngày trong tháng
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

Lập danh sách tự động cho cột A – cột chứa ngày trong tháng

 Bước 1. Lập công thức cho 28 ngày đầu tiên trong tháng

Như các bạn đã biết, trong 1 năm thì tháng ngắn nhất có 28 ngày, tháng dài nhất có 31 ngày. Vì vậy, chúng ta sẽ xây dựng 2 công thức ngày tự động cho cột A. Công thức thứ 1 là từ ngày đầu tiên của tháng tới ngày 28 của tháng. Trong vòng lặp while, với biến j bằng 6, j nhỏ hơn 34. Chúng ta sẽ gắn công thức chỉ ngày cho các cell trong cột A. Ở đây chúng ta có hai cách: cách thứ 1 là trực tiếp gắn công thức vào file script Python, cách thứ 2 là gắn công thức vào file excel, sau đó copy công thức và chỉnh sửa trong script python. Để giúp các bạn dễ theo dõi và tránh nhầm lẫn, chúng tôi sẽ sử dụng cách thứ 2. Tại ô A6, chúng ta sử dụng hàm DATE, các bạn điền lần lượt các giá trị C3 là giá trị năm, B3 là giá trị tháng và 1 để chỉ ngày đầu tiên của tháng. Các bạn bấm enter và chúng ta có được ngày đầu tiên của tháng. Tiếp theo, các bạn copy công thức này vào script Python và chỉnh sửa lại bằng việc thông qua phương thức format f để chỉnh 1 thành j trừ 5 vì j xuất phát từ 6. Các bạn cho biến j tăng thêm 1 đơn vị để lần lượt duyệt hết các phần tử trong cột A. Các bạn thực thi code, kết quả 28 ngày đầu tiên của tháng 3 năm 2021 đã được điền vào cột A.

Bước 2. Lập công thức cho ngày 29, 30, 31 trong tháng

Tương tự, công thức thứ 2 là dành cho 3 ngày 29, 30 và 31 của tháng. Trong vòng lặp while, với biến j bằng 33, j nhỏ hơn 36. Chúng ta sẽ gắn công thức chỉ ngày cho các cell trong cột A hàng thứ j+1. Chúng ta sẽ thực hành trên excel trước. Tại ô A34 trong excel, các bạn sử dụng hàm if để kiểm tra xem nếu ô A33 có giá trị rỗng thì sẽ trả về kết quả là rỗng, nếu không thì sẽ trả ra kết quả là 1 hàm if khác. Trong hàm if đó, nếu ô A33 trả ra kết quả là ngày cuối cùng của tháng, chúng ta dùng hàm End of month. Excel sẽ gợi ý cho chúng ta cấu trúc của hàm này, bao gồm ngày đầu tiên của tháng chúng ta sẽ chọn ô A6, và giá trị tháng là số tháng tăng thêm, chúng ta chọn là 0. Nếu đúng thì giá trị trả ra là giá trị rỗng, nếu không đúng thì sẽ trả ra ngày A33 cộng 1. Các bạn bấm enter, nếu thiếu dấu ngoặc thì excel sẽ tự động thêm giúp chúng ta. Như vậy là chúng ta đã có giá trị ngày thứ 29 của tháng. Sau đó chúng ta copy công thức vào script Python, và sử dụng phương thức format để thay thế 33 thành j. Các bạn cho biến j tăng thêm 1 đơn vị để lần lượt duyệt hết các phần tử trong cột A. Các bạn thực thi code, kết quả là ngày 29, 30, 31 của tháng đã được tạo. Để kiểm tra cột A đã tự động thay đổi theo thời gian tháng năm chưa, chúng ta sẽ thử với giá trị là tháng 2 năm 2021. Chúng ta thực thi code, như các bạn đã thấy, tháng 2 năm 2021 chỉ có 28 ngày thì ngày 29, 30, 31 sẽ không xuất hiện.  Tiếp theo, chúng ta sẽ đổi kiểu định dạng ngày bằng cách sử dụng công thức sht chấm range từ ô A6 đến ô A36 chấm number format bằng dd mm yyyy. Các bạn thực thi code, kết quả là toàn bộ cột A đã thay đổi định dạng ngày về dạng ngày tháng năm. 

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 *