#03: A 40/60 Rule for Monthly Allocation | PythonDA Course
40% phân phối trong 30 ngày đầu tiên – 60% phân phối trong 30 ngày tiếp theo
40% của giá trị tháng hiện tại sẽ được phân phối đều trong 30 ngày đầu tiên. Nếu tháng hiện tại có ít hơn 30 ngày còn lại, phần giá trị chưa phân phối hết sẽ được chuyển sang tháng tiếp theo.
Sau khi phân phối 40%, 60% còn lại sẽ được phân phối đều trong 30 ngày tiếp theo. Nếu có ngày dư từ phân phối 40% (do tháng hiện tại không đủ 30 ngày), những ngày này sẽ được cộng vào 30 ngày của phân phối 60%.
Tháng 2 (A2) – Tổng giá trị (Sum_of_Val): 1556
Tính 40% và 60% của giá trị tháng 2: 40% * 1556 = 622.4, 60% * 1556 = 933.6
Phân phối 40% trong 30 ngày đầu tiên
Phân phối trong tháng 2. Hôm nay là 24/02/2025, tháng 2 chỉ còn 5 ngày
Giá trị phân phối mỗi ngày trong 30 ngày đầu: 622.4 / 30 = 20.75
Giá trị phân phối trong 5 ngày của tháng 2 = 20.75 × 5 = 103.73 (Output F2)
Phân phối phần còn lại của 40% sang tháng 3 (25 ngày):
Giá trị còn lại của 40% = 20.75 × 25 = 518.67.
Tháng 3 có 31 ngày, nhưng 25 ngày đầu đã được sử dụng để phân phối 40%. Số ngày còn lại trong tháng 3 là 6 ngày. 6 ngày này sẽ sử dụng 60% vì 40% đã phân phối hết.
Giá trị phân phối mỗi ngày trong 30 ngày tiếp theo = 933.6 / 30 = 31.12.
Giá trị phân phối trong 6 ngày của tháng 3 (Hết tháng 3) = 31.12 × 6 = 186.72.
Tổng giá trị phân phối trong tháng 3 = 518.67 + 186.72 = 705.39 (Output G2)
Phân phối phần còn lại của 60% sang tháng 4 (24 ngày): 31.12 * 24 = 746.88 (Output H2)
#06: Distributing Application Numbers Among Employees Based on Specific Conditions | PythonDA Course
Có danh sách số đơn đăng ký (application numbers) ở cột A và danh sách nhân viên ở các cột từ C đến AA, hàng 03. Mục tiêu là tự động phân chia random đều số đơn này cho các nhân viên theo số được cho tại D1 , nhưng với một số điều kiện đặc biệt:
Nếu ô ở hàng 2 (Phía trên tên của nhân viên) có giá trị là “No Assignments”, thì bỏ qua cột đó (không gán đơn cho người đó).
Nếu ô ở hàng 4 (Phía dưới tên của nhân viên) có giá trị lớn hơn 40, thì bỏ qua cột đó (không gán đơn cho người đó).
#07: Optimizing Promotion Strategy for Maximum Discounts on Product Purchases | PythonDA Course
Danh sách sản phẩm mua cột A: 5 sản phẩm A, B, C, D, E với số lượng cụ thể.
Chương trình khuyến mãi cột F: Có 4 chương trình Promotion 4, 5, 6, 7.
Sản phẩm áp dụng: Mỗi chương trình chỉ áp dụng cho một số sản phẩm nhất định. Ví dụ: Promotion 4 áp dụng cho A, B, C, E (tức là D không được tính vào chương trình này).
Điều kiện khuyến mãi: Mỗi chương trình có điều kiện nhận ưu đãi, ví dụ nếu tổng tiền của các sản phẩm đủ điều kiện vượt mức tiền nào (Dòng 1, cột H-K) thì được giảm ở mức tương ứng.
Mỗi chương trình chỉ có thể được áp dụng tối đa 5 lần.
Ví dụ: chương trình 4, 5 đều áp dụng được cho sản phẩm C.
Sản phẩm C có tổng là 935000 (D4) > 500000 (I1)
Như vậy sản phẩm C có thể sẽ nhận được mức khuyến mãi là 18000 và 16000. Ưu tiên lấy mức cao nhất là 18000 (Output O4)