TÌM NHÀ SẢN XUẤT THEO BILL OF MATERIAL CHO MUA HÀNG P3 (THIẾT LẬP THÔNG TIN NHÀ SẢN XUẤT)

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
Thiết lập thông tin nhà sản xuất
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

Thiết lập thông tin nhà sản xuất P1

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. Tiếp theo phần bài học trước, trong phần này, chúng ta sẽ xây dựng công thức để phân tách dữ liệu từ sheet data sang từng sheet thành phần của các công ty sản xuất. Để làm được điều này, ta sẽ sử dụng phương pháp là lấy 1 cột thông tin tại sheet Data làm cột dữ liệu gốc, trong bài này, chúng tôi lựa chọn cột D là cột Ordering code. Các cột còn lại sẽ được xây dựng công thức sao cho phù hợp với cột dữ liệu gốc này. Đầu tiên, ta khai báo biến order list là một list rỗng. Tiếp theo, trong vòng lặp for với biến i trong range từ 15 tới last row +1, ta khai báo biến manufacturer là giá trị của các cell tại cột C. Ta dùng hàm điều kiện If để kiểm tra điều kiện là giá trị dạng string của biến manufacturer trong trường hợp đã thay thế dấu gạch chéo thành dấu gạch ngang bằng giá trị man. Tức là nếu tên nhà sản xuất trong cột C mà trùng với tên của sheet mới tạo ra. Nếu thỏa mãn điều kiện này thì ta sẽ đưa các giá trị ordering code tại cột D tương ứng tên nhà sản xuất tại cột C vào order list thông qua hàm append. Ta sử dụng hàm print cho order list. Kết quả trả ra là các giá trị ordering code của các nhà sản xuất khác nhau đã được chia thành các list order khác nhau, tuy nhiên trong các list này vẫn còn các phần tử trùng lặp nhau. Bây giờ, ta sẽ lọc các phần tử trùng lặp này. Các bạn sử dụng phương thức set cho order list để lọc các phần tử trùng lặp, toàn bộ set này sẽ được đưa vào 1 list, ta đặt tên cho list này là order code list. Ta sử dụng hàm print cho order code list. Các bạn thực thi code, kết quả trả ra là các phần tử trùng lặp trong order list đã được loại bỏ. Tiếp đó, ta gán cho giá trị cho cell D2 trong các sheet mới bằng order code list. Ta thực thi code. 

Kết quả trả ra là giá trị của các ordering code trong sheet Data đã được chuyển sang các sheet của các nhà sản xuất tương ứng. Tiếp theo, ta khai báo biến range of order code là range từ 1 đến phần tử cuối cùng trong order code list cộng 1. Ta sử dụng hàm print cho range of order code. Kết quả trả ra là ta có các range từ 1 đến phần tử cuối cùng trong order code list. Ta sẽ sử dụng biến range of order code này để xây dựng cột số thứ tự cho các sheet của nhà sản xuất. Ta gán giá trị cho cell A2 trong các sheet mới bằng công thức I for I in range of order code. Các bạn thực thi code, như các bạn đã thấy, cột số thứ tự Number tại các sheet của nhà sản xuất đã được điền vào. Như vậy, ta đã xây dựng được công thức cho cột Number và cột ordering code cho các sheet của nhà sản xuất. Tiếp theo, ta sẽ lần lượt xây dựng công thức cho các sheet còn lại, thông qua hàm Match và hàm Index của excel. Các bạn khai báo biến description list là danh sách các giá trị của cột description tại các sheet của nhà sản xuất. Ta sẽ xây dựng công thức trong file excel trước, sau đó chỉnh sửa lại trong script python. Tại cột B của nhà sản xuất, ta sử dụng công thức bằng Index. Tham số đầu tiên là vùng dữ liệu cần tìm kiếm, ta sẽ điền là sheet Data, range dữ liệu từ B14 đến B60, các bạn cố định vùng range này lại. Tham số tiếp theo là hàng trong range tìm kiếm, ta sẽ dùng hàm Match để tìm ra hàng này. Các bạn sử dụng hàm match với tham số D2, vùng tìm kiếm là sheet Data, range dữ liệu từ D14 đến D60, các bạn cố định vùng range này lại. Tham số tiếp theo trong hàm match là 0 để lấy giá trị tuyệt đối. Các bạn kết thúc công thức bằng dấu ngoặc đơn và bấm enter. Kết quả trả ra trong file excel là giá trị description tương ứng với giá trị ordering code của các nhà sản xuất. Ta có thể kiểm tra lại thông tin này trong sheet Data. Tiếp đó, ta copy công thức này vào script python và chỉnh sửa lại. Các bạn sử dụng phương thức format f để thay thế các giá trị 60 bằng last row, giá trị D2 thành D I cộng 1. Kết thúc công thức các bạn sử dụng vòng lặp for với biến I trong range of order code. Sau đó, ta gán cho cell B2 của các sheet của nhà sản xuất có giá trị bằng description list. Ta thực thi code, kết quả trả ra là toàn bộ các sheet của nhà sản xuất đã được điền vào nội dung trong cột description.

Hoàn toàn tương tự, đối với cột Manufacturer, ta khai báo biến manu detail sử dụng hàm Index và hàm match như trong cột description. Các bạn copy công thức mà ta đã sử dụng đối với description list. ta chỉ thay đổi vùng range tìm kiếm của hàm Index từ cột B sang cột C. Ta cũng gán cho cell C2 của các sheet của nhà sản xuất có giá trị bằng manu detail. Các bạn thực thi code, kết quả trả ra là toàn bộ các sheet của nhà sản xuất đã được điền vào nội dung trong cột manufacturer.

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ẽ tiếp tục hướng dẫn các bạn cách xây dựng nội dung cho các cột tiếp theo. 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 *