TÌM NHÀ SẢN XUẤT THEO BILL OF MATERIAL CHO MUA HÀNG P2 (XUẤT NHÀ SẢN XUẤT SANG CÁC SHEET KHÁC NHAU)

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
Xuất nhà sản xuất sang các sheet khác 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:

Cho 1 bảng Bill of Material như hình ở dưới.

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

Phân tách bảng dữ liệu tổng hợp Bill of Material thành các sheet dữ liệu cụ thể của từng nhà sản xuất.

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

Xuất nhà sản xuất sang các sheet khác nhau

Trong bài học ngày hôm nay, chúng tôi sẽ tiếp tục hướng dẫn các bạn cách để phân tách bảng dữ liệu tổng thành các dữ liệu cụ thể của từng nhà sản xuất. Chúng tôi đã chuẩn bị sẵn template script Python và file excel mẫu để các bạn thực hành.  Đầu tiên, ta sẽ khai báo biến wb là workbook ban đầu có tên là Bill of Material chấm xlsx. Tiếp đó, các bạn khai báo biến sht là sheet có tên là Data nằm trong workbook ban đầu.  Bây giờ, chúng ta sẽ xây dựng công thức để xóa hết các sheet có trong workbook ngoại trừ sheet Data. Hành động này nhằm mục đích, mỗi khi chúng ta cập nhật dữ liệu mới trong sheet Data và thực thi code, thì các sheet nội dung cũ sẽ bị xóa đi để thay thế bằng các sheet đã được cập nhật nội dung mới. Các bạn thực hiện các bước sau. Trong vòng lặp for với biến sheet nằm trong workbook ban đầu, chúng ta sử dụng hàm điều kiện IF để kiểm tra nếu Data không phải là tên của sheet nào thì sheet đó sẽ bị xóa thông qua hàm delete. Các bạn thực thi code, kết quả trả ra là các sheet không phải sheet Data đã bị xóa. Tiếp theo, chúng ta sẽ tìm dòng cuối cùng trong sheet Data. Các bạn khai báo biến last row bằng sht chấm range của giá trị cell cuối cùng trong cột B thông qua hàm sht chấm cells chấm last cell chấm row. Ta sử dụng hàm end với tham số up để dò tìm từ dưới cùng trong file excel dò tìm lên, nếu gặp cell nào có giá trị thì đó là cell cuối cùng. Kết thúc công thức là chấm row. Các bạn dùng lệnh print cho biến last row. Kết quả trả ra là 60, tương ứng với dòng cuối cùng của cột B trong file excel. Bây giờ, chúng ta sẽ sử dụng biến last row trên để tìm xem trong cột C có bao nhiêu tên nhà cung cấp không trùng lặp nhau. Các bạn lưu ý là nếu cùng 1 nhà cung cấp thì cột C sẽ phải viết giống hệt nhau, phân biệt chữ hoa và chữ thường. Các bạn sử dụng phương thức set cho range từ cell C14 đến cell cuối cùng trong cột C, nhằm mục đích lọc ra các phần tử bị trùng lặp. Toàn bộ giá trị này sẽ được đưa về 1 list, ta đặt tên cho list đó là manufacturer list. Các bạn sử dụng lệnh print cho list này và lệnh print với hàm len manufacturer list để check xem list này có bao nhiêu phần tử. Ta thực thi code.

 Như các bạn đã thấy, kết quả trả ra là list này gồm có 12 phần tử như trên màn hình, tuy nhiên lại tồn tại 2 vấn đề. Thứ nhất là tên các nhà sản xuất trong list có chứa dấu gạch chéo, chúng ta sẽ không thể dùng các tên có chứa dấu gạch chéo này để đặt tên cho các sheet trong excel. Vấn đề thứ hai là trong 12 phần tử này vẫn tồn tại phần tử rỗng. Do đó, trong bước tiếp theo, chúng ta sẽ lần lượt giải quyết hai vấn đề này. Trước hết, ta sử dụng phương thức replace để thay thế dấu gạch chéo thành dấu gạch ngang. Trong vòng lặp for với biến I được dùng để duyệt hết các phần tử trong manufacturer list, ta dùng hàm điều kiện if để kiểm tra điều kiện phần tử thứ I trong manufacturer list khác rỗng và dấu gạch chéo nằm trong phần tử đó. Nếu thỏa mãn điều kiện thì phần tử đó sẽ được thay thế dấu gạch chéo thành dấu gạch ngang thông qua phương thức replace. Ta dùng lệnh print cho manufacturer list để kiểm tra. Kết quả trả ra là toàn bộ tên công ty trong list này đã được thay đổi dấu gạch chéo thành dấu gạch ngang trong tên công ty. Tiếp theo, chúng ta sẽ loại bỏ phần tử rỗng trong manufacturer list. Các bạn khai báo biến man list là list không chứa phần tử rỗng, bằng công thức I for I in manufacturer list if i. Ta dùng lệnh print cho man list để kiểm tra. Các bạn thực thi code, kết quả trả ra là list này đã không còn phần tử rỗng nữa. Bây giờ, chúng ta sẽ thiết lập để các sheet mới tạo ra đều có các đề mục như trong sheet Data. Ta khai báo biến title là list gồm lần lượt các phần tử Number, Description, Manufacturer, Ordering Code, Unit, Quantity, Note. Tiếp theo, chúng ta sẽ tạo các sheet mới tương ứng với các nhà sản xuất khác nhau. Trong vòng lặp for với biến man là phần tử trong man list, ta dùng công thức new sht bằng wb chấm sheets chấm add. Trong hàm add ta điền vào tham số name bằng man để các sheet này có tên tương ứng với các phần tử trong man list, ta điền tham số after bằng data để các sheet mới tạo ra nằm bên phải sheet Data. Trong các sheet mới này, ta dùng công thức new sht chấm range của cell A1 chấm value bằng title để các sheet mới có title như chúng ta đã thiết lập. Các bạn thực thi code, kết quả trả ra là các sheet mới tương ứng với các nhà sản xuất đã được tạo ra.

Đồng thời các title của các sheet cũng được thiết lập. Phần Bài học này đến đây là kết thúc, trong phần tiếp theo, chúng tôi sẽ hướng dẫn các bạn cách phân tách nội dung chi tiết của sheet Data sang các sheet thành phần căn cứ theo tên nhà sản xuất. Hẹn gặp lại các bạn ở phần tiếp theo.

III. KẾT LUẬN

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

Như các bạn đã thấy, chúng ta có bảng dữ liệu trong sheet Data, bảng dữ liệu này có tên là Bill of Material, có thể sử dụng cho nhiều mục đích khác nhau. Trường hợp đầu tiên là khi chúng ta lên danh sách để mua hàng hóa từ các nhà sản xuất, bảng tổng hợp sẽ giúp chúng ta dự trù được kinh phí để mua sắm. Các bạn có thể phân tách dữ liệu từ bảng tổng hợp về thành các sheet khác nhau, mỗi sheet tương ứng với 1 nhà sản xuất để phục vụ cho việc quản lý mua sắm. Trường hợp thứ hai là khi chúng ta có hàng hóa vật tư trong kho. Các bạn muốn bán cho các nhà phân phối hoặc tiêu thụ, việc phân tách dữ liệu sẽ giúp chúng ta biết được lượng hàng hóa của chúng ta có đáp ứng nhu cầu mua sắm của bên mua hay không. Từ đó ta có phương án nhập mới hàng hoặc sản xuất hàng để đáp ứng nhu cầu bên mua. Ngoài ra, tùy theo tính chất công việc của các bạn, mà các bạn có thể vận dụng bảng dữ liệu và cách thức phân tách dữ liệu trong bài học này, để phục vụ nhu cầu của các bạn.

2. Ưu điểm

Như đã nêu trên.

3. Nhược điểm

Do tính chất phức tạp của bảng code, cần hiểu rõ cách sử dụng để vận dụng vào công việc.

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 *