TẠO BẢNG CHẤM CÔNG TỰ ĐỘNG THEO NGÀY, THÁNG, NĂM TRONG EXCEL SỬ DỤNG PYTHON P5 (TẠO HÀNG NGÀY TRONG TUẦN)

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 9 – hàng 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 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 9 – hàng ngày trong tuần

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 cho các cell tại hàng 9 từ cột G tới cột A K , là cột chứa các ngày trong 1 tuần. Các bạn sẽ sử dụng vòng lặp while với biến j bằng 7, j nhỏ hơn 38. Trong vòng lặp while, chúng ta dùng hàm điều kiện If để kiểm tra xem giá trị của các cell trong hàng 8 cột j có bằng rỗng hoặc giá trị các cell trong hàng 8 cột j có bằng dấu ngoặc kép. Dấu ngoặc kép ở đây được hiểu là rỗng trong excel và phân biệt với giá trị rỗng của Python. Nếu đúng thì giá trị của cell tại hàng 9 cột j sẽ trả ra là rỗng. Ngoài ra, những cell thỏa mãn điều kiện này sẽ được chúng ta fill color để phân biệt với các cell khác. Trong vòng lặp for với biến i trong khoảng từ 10 đến last row ID cộng 1, chúng ta sẽ fill color cho các cell hàng i cột j thành màu dark slate gray 1. Tiếp theo, với các trường hợp không thỏa mãn hàm điều kiện IF, các bạn sử dụng mệnh đề else để gán cho giá trị các cell hàng 9 cột j bằng. Ở đây chúng ta sẽ xây dựng công thức trong excel trước. Tại cell G9, các bạn dùng hàm weekday với tham số là ngày trong tháng, chúng ta sử dụng hàm date để gọi ra giá trị ngày, trong hàm date các bạn nhập vào tham số năm là U6, tham số tháng là R6 và tham số ngày là 1. Các bạn copy công thức trong excel và paste vào file script python, các bạn sử dụng phương thức format f để chuyển các giá trị 1 thành j trừ 6 do biến j xuất phát từ 7. Chúng ta sẽ kết hợp fill color cho ngày thứ 7 và ngày chủ nhật trong tuần để làm nổi bật 2 ngày này trong bảng chấm công. Các bạn sử dụng vòng lặp for với biến i trong khoảng từ 10 đến last row ID cộng 1. Nếu giá trị của các cell tại hàng 9 cột j là 7 thì ngày đó là thứ 7, các bạn sẽ fill color cho cột chứa ngày đó thành màu hồng, có mã RGB là 250, 0, 255. Nếu giá trị của cell tại hàng 9 cột j là 1 thì ngày đó là ngày chủ nhật, các bạn sẽ gán cho cell là Su, có nghĩa là ngày chủ nhật. Các bạn lưu ý trong hàm điều kiện If chúng ta phải thêm vào điều kiện kiểm tra xem giá trị cell hàng 9 cột j có bằng Su hay không. Lý do là sau khi chúng ta gán cho các cell có giá trị là 1 thành Su, nếu chúng ta muốn fill color cho các cột chứa cell này thì phải thêm điều kiện kiểm tra xem cell đó có bằng Su là giá trị chúng ta vừa gán.  Các bạn sẽ fill color cho cột chứa ngày đó thành màu xanh có mã RGB là 0, 255, 0.  Với các trường hợp còn lại, các bạn dùng mệnh đề else để fill color cho cell trong hàng i cột j thành màu dark slate gray 1 có mã RGB là 151, 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. Các bạn thực thi code, kết quả trả ra là toàn bộ hàng 9 cột từ cột G tới cột AK đã được lấp đầy, đồng thời các cột trong bảng chấm công của các ngày thứ 7 và chủ nhật đã được fill color thành màu mà chúng ta chọn lựa.

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 2 thành tháng 3, các bạn thực thi code, kết quả là các cell tại hàng 9 cột từ cột G tới cột AK đã được lấp đầy các giá trị của tháng 3, tương tự như với tháng 2.

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 *