这里是场景:快速计算以获得不同级别的数字倍数
我们有几个物品运到很多商店。我们希望能够根据需要为商店分配一定数量的每件商品。这些商店中的每一个也都与特定仓库相关联。
问题是,在仓库级别,每个项目的总数量必须是一个数字的倍数(例如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公式总结为与仓库关联的每个Item-Store组合添加StoreQty。所以我猜每次Item-Store组合显示时,Warehouse/WarehouseQty列实际上都会重复多次。该WarehouseQty是需要为6
林现在要尝试。虽然我也在更新Application.Status来告诉我所在的行,这是否会对速度产生显着影响? – yeenow123 2013-03-20 20:01:21