HIGHLIGHT SO SÁNH VỚI GIÁ TRỊ TRUNG BÌNH, GIÁ TRỊ LỚN NHẤT, NHỎ NHẤT, TRÙNG LẶP NHAU (CONDITIONAL FORMATTING PART 2)

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. Highlight các ô có giá trị lớn hơn giá trị trung bình.
II.b. Highlight các ô có giá trị lớn nhất, giá trị nhỏ nhất.
II.c. Highlight các ô có giá trị trùng lặp nhau.
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:

Có 1 bảng dữ liệu với vùng excel thể hiện thông tin của các thành viên trong công ty (nội dung như trong hình ở dưới)

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

Sử dụng lập trình Python để thực hiện HIGHLIGHT ô excel trong các điều kiện:

Trường hợp 1: Highlight các ô có giá trị lớn hơn giá trị trung bình.

Trường hợp 2: Highlight các ô có giá trị lớn nhất, giá trị nhỏ nhất.

Trường hợp 3: Highlight các ô có giá trị trùng lặp nhau.

 

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

Bảng dữ liệu thu được sau khi code cho trường hợp thứ 1

Bảng dữ liệu thu được sau khi code cho trường hợp thứ 2

Bảng dữ liệu thu được sau khi code cho trường hợp thứ 3

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

II.a. Highlight các ô có giá trị lớn hơn giá trị trung bình.

Trước hết, các bạn khai báo biến sum_col_D là tổng giá trị của toàn bộ các ô trong range từ D2 đến D13 thông qua hàm sum. Tiếp đó, các bạn khai báo biến len_col_D là số ô trong range từ D2 đến D13 thông qua hàm len. Sau đó, các bạn khai báo biến avg_col_D là giá trị trung bình của các ô trong range từ D2 đến ô D13 bằng công thức sum_col_D chia cho len_col_D . Chúng ta sẽ sử dụng hàm print đối với lần lượt các biến sum_col_D , len_col_D và avg_col_D để xem kết quả. Các bạn thực thi code, như các bạn đã thấy. Chúng ta có tổng giá trị các ô là 442, số phần tử là 12, giá trị trung bình là 36.83. Tiếp đó, trong vòng lặp for với biến i chạy từ dòng 2 tới dòng 13. Chúng ta dùng hàm điều kiện If để kiểm tra xem các giá trị của các ô tại cột D có lớn hơn giá trị trung bình avg_col_D hay không. Nếu có thì sẽ fill color cho cột đó thành màu xanh dương có mã RGB là 0, 255, 255. Chúng ta dùng điều kiện else để fill color cho các cột còn lại không thỏa mãn điều kiện trên là màu hồng, có mã RGB là 255, 0, 255. Các bạn thực thi code, kết quả là các ô trong cột D có giá trị lớn hơn giá trị trung bình đã được fill color màu xanh dương, các cột còn lại được fill color thành màu hồng. 

II.b. Highlight các ô có giá trị lớn nhất, giá trị nhỏ nhất.

Tương tự, chúng tôi sẽ hướng dẫn các bạn fill color giá trị lớn nhất hoặc giá trị nhỏ nhất của cột. Đầu tiên, các bạn khai báo biến max_col_D là giá trị lớn nhất trong cột thông qua hàm max để tìm kiếm giá trị lớn nhất trong range từ D2 đến D13 của cột D. Các bạn khai báo biến min_col_D là giá trị nhỏ nhất trong cột thông qua hàm min để tìm kiếm giá trị nhỏ nhất trong range từ D2 đến D13 của cột D. Trong vòng lặp for với biến i chạy từ dòng 2 tới dòng 13. Chúng ta dùng hàm điều kiện If để kiểm tra xem các giá trị của các ô tại cột D bằng với giá trị lớn nhất hay không. Nếu có thì sẽ fill color cho cột đó thành màu xanh lá cây đậm có mã RGB là 0, 128, 0. Tiếp đó, chúng ta dùng hàm điều kiện If để kiểm tra xem các giá trị trong cột D có bằng với giá trị nhỏ nhất trong cột D hay không. Nếu có thì sẽ fill color cho cột đó thành màu bạc có mã RGB là 192, 192, 192. Chúng ta thực thi code, kết quả là các giá trị lớn nhất trong cột D đã chuyển sang màu xanh lá cây đậm, còn giá trị nhỏ nhất trong cột D đã chuyển sang màu bạc. 

II.c. Highlight các ô có giá trị trùng lặp nhau.

Tiếp theo, chúng tôi sẽ hướng dẫn các bạn đổi màu chữ cho các ký tự trùng lặp nhau trong một cột. Trong bài này, chúng tôi lựa chọn cột C để thực hành. Đầu tiên các bạn dùng phương thức Set để lọc hết các giá trị bị trùng lặp cho dải cell từ c 2 đến c 13 . Tiếp đến các bạn dùng phương thức list để đưa các giá trị đó về thành 1 list danh sách và các bạn đặt tên cho danh sách này là list removing dup C. Bây giờ các bạn sẽ dùng vòng lặp while với biến j để duyệt hết các phần tử có trong list removing dup C. Bên trong vòng lặp while các bạn dùng vòng lặp for với biến i để duyệt hết giá trị của các cell từ c 2 đến c 13, bên trong vòng lặp for chúng ta sử dụng hàm điều kiện if để kiểm tra xem giá trị của các ô thuộc cột C có trùng lặp với các giá trị trong list removing dup C hay không. Nếu có thì sẽ đổi màu của chuỗi string trong ô đó thông qua hàm ColorIndex , chúng tôi sẽ lấy giá trị color index từ 3 trở đi để phân biệt màu sắc được rõ ràng hơn, bởi vì color index bằng 1 là màu đen, bằng 2 là màu trắng, bằng 3 là màu đỏ. Để hiểu rõ hơn về hàm ColorIndex, chúng tôi mời các bạn xem lại bài Định dạng dữ liệu để các bạn hiểu rõ hơn. Quay trở lại bài học này biến j sẽ tăng 1 đơn vị để duyệt tiếp phần tử tiếp theo trong danh sách list removing dup c . Các bạn thực thi code, kết quả là các giá trị giống nhau trong cột C đã được chuyển sang các màu giống nhau.

III. KẾT LUẬN

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

Trong bài học này, chúng tôi sẽ hướng dẫn các bạn các cách định dạng có điều kiện một số nội dung trong một vùng dữ liệu, để nhằm mục đích xác định các dữ liệu quan trọng một cách nhanh chóng.

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

Trong quá trình sử dụng, ta phải áp dụng bảng màu RGB. Do đó, ta cần note lại những màu mà ta muốn sử dụng để có thể áp dụng vào code khi cần.

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 *