这是场景:
我们有几件商品被运送到许多商店。我们希望能够根据需要为商店分配一定数量的每件商品。这些商店中的每一个也与特定的仓库相关联。
问题是在仓库级别,每个项目的总数量必须是数字的倍数(例如 6)。
我已经计算出每个商店在商店级别所需的数量,但在仓库级别上它们的总和不等于 6 的倍数。
我的解决方案是使用 Excel:
使用 SUMIFS 公式来跟踪在仓库级别分配的每个项目的总和。然后是另一个 MOD(6) 公式,它计算剩余直到 6 的倍数。然后我的实际 VBA 代码循环并从所需的商店级别单位中减去 1(如果 MOD <= 3)或添加(如果 MOD > 3),直到 MOD = 0 对于所有行。
现在这对我有用,但即使我只有约 5000 行也非常慢。
我正在寻找更快的解决方案,因为每次我减去/添加所需的单位时,都需要再次计算 SUMIFS 和 MOD。
编辑:(试图更清楚)
我有一个模板文件,我使用以下设置将数据粘贴到其中:
+------+-------+-----------+----------+--------------+--------+
| Item | Store | Warehouse | StoreQty | WarehouseQty | Mod(6) |
+------+-------+-----------+----------+--------------+--------+
| 1 | 1 | 1 | 2 | 8 | 2 |
| 1 | 2 | 1 | 3 | 8 | 2 |
| 1 | 3 | 1 | 1 | 8 | 2 |
| 1 | 4 | 1 | 2 | 8 | 2 |
| 2 | 1 | 2 | 1 | 4 | 2 |
| 2 | 2 | 2 | 3 | 4 | 2 |
+------+-------+-----------+----------+--------------+--------+
目前,WarehouseQty 列是 SUMIFS 公式,用于汇总与 Warehouse 关联的每个 Item-Store 组合的 StoreQty。所以我猜每次出现 Item-Store 组合时,Warehouse/WarehouseQty 列实际上都会重复多次。WarehouseQty 需要是 6 的倍数。