TẠO BẢNG CHẤM CÔNG TỰ ĐỘNG THEO NGÀY, THÁNG, NĂM TRONG EXCEL SỬ DỤNG PYTHON P4 (TẠO HÀNG 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 hàng 8 – hàng 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 ngày, tháng, năm 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 ngày, tháng, năm.

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 hàng 8 – hàng ngày trong tháng

Bước 1: Xây dựng công thức cho 28 ngày đầu tiên trong tháng

Trong bài học hôm nay, chúng tôi sẽ tiếp tục hướng dẫn các bạn lập danh sách tự động trong hàng 8 từ cột G tới cột A K , là cột chứa các ngày trong 1 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 hàng 8. 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 7, j nhỏ hơn 35. Các bạn sử dụng công thức sht chấm range của các cell hàng 8 cột thứ j có giá trị bằng. Tại đây, chúng ta sẽ xây dựng công thức trong file excel trước, sau đó sẽ copy công thức và chỉnh sửa lại trong script Python. Tại ô G6, chúng ta sử dụng hàm DATE, các bạn điền lần lượt các giá trị U6 là giá trị năm, R6 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ừ 6 vì j xuất phát từ 7. Tiếp theo, các bạn sẽ chỉnh lại định dạng của các cell tại hàng 8 cột j thông qua hàm number format thành dạng dd. Các bạn cũng sử dụng hàm autofit để căn khoảng cách cho các cell này. Các bạn cho biến j tăng thêm 1 đơn vị để duyệt các phần tử tiếp theo. 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: Xây dựng công thức cho 3 ngày cuối cùng trong tháng

Tiếp theo, chúng ta sẽ xây dựng công thức thứ 2 là dành cho 3 ngày 29, 30 và 31 của tháng. Trong bài này, chúng tôi sẽ hướng dẫn các bạn một phương pháp để xác định ngày cuối cùng trong tháng. Đầu tiên, chúng ta import module calendar. Tiếp đó, chúng ta import module datetime để làm việc với giá trị thời gian. Các bạn lần lượt khai báo biến list month là giá trị của cell R6, biến list year là giá trị của cell U6. Các bạn sẽ dùng phương thức int để chuyển các giá trị này về định dạng integer để chúng ta có thể sử dụng công thức xác định ngày cuối cùng trong tháng. Tiếp theo, các bạn sử dụng module calendar chấm monthrange chứa các tham số this year this month và tham số 1 trong ngoặc vuông. Các bạn đặt tên cho biến này là last day of month, các bạn print biến last day of month, kết quả trả ra là ngày cuối cùng của tháng 1 năm 2021 là ngày 31. Bây giờ, nếu muốn sử dụng biến này để áp dụng vào bảng chấm công, chúng ta phải convert biến này về định dạng ngày tháng năm theo chuẩn của Python. Các bạn sử dụng module datetime chấm strptime với các tham số lần lượt là last day of month this month this year và định dạng phần trăm d phần trăm m phần trăm y. Các bạn đặt tên cho toàn bộ giá trị này này là d convert. Bây giờ, chúng ta đã có giá trị ngày cuối cùng trong tháng theo định dạng của Python. Sau đó, các bạn sử dụng vòng lặp while với biến j bằng 35 j nhỏ hơn 38. Trong vòng lặp while các bạn khai báo biến day là giá trị của cell tại hàng 8 cột thứ j trừ 1. Các bạn sử dụng hàm điều kiện If để kiểm tra xem nếu biến day bằng rỗng hoặc day bằng d convert thì giá trị của cell tại hàng 8 cột thứ j sẽ trả ra là rỗng. Nếu không thì chúng ta sẽ sử dụng mệnh đề else để gán cho giá trị của cell tại hàng 8 cột j có giá trị tương tự như phần từ ngày thứ nhất đến ngày thứ 28. Chúng ta copy công thức của phần 1 vào. 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ả trả ra là các ngày trong tháng tại hàng 8 đã được lấp đầy.

 Bây giờ, chúng ta sẽ kiểm tra xem công thức của chúng ta đã chính xác chưa bằng cách thay tháng 1 thành tháng 2, các bạn thực thi code, kết quả là 28 ngày của tháng 2 đã được lấp đầy.

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 ngày, tháng, năm 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 *