1

我一直在创建一个庞大的机械设备清单以及组装它们所需的零件。基本上我拥有的是三个工作表。
一张包含所有可订购零件(例如螺钉、螺母、螺栓)及其订购数量,
一张包含构建特定设备所需零件数量和类型的工作表(例如,一个小部件需要 3 个螺钉、0 个螺母和 4 个螺栓)
和一张汇总表应该在哪里输入想要构建的设备。

由于每个零件都不能以单一数量订购,而是以更大的包装(例如 500 个螺钉、100 个螺栓等)订购,我需要一些解决方案来阅读“待建”表,查找所有小工具,添加需要的相应零件并创建一个列表,列出我需要的每个零件的数量。

我尝试过通过 vlookup 以某种方式做到这一点,但这些查询让我大吃一惊,而且我对 VBA 缺乏经验。我忽略了一个简单的解决方案吗?非常感谢你。

编辑

下面的示例数据:

这是设备的配方列表

设备名称 Part 1 数量 1 Part 2 数量 2 Part 3 数量 3 价格
小工具螺丝 20 螺母 40 螺栓 12 6,14 €
小部件螺丝 10 螺栓 12 垫圈 100 2,02 €
Thingie 螺母 11 垫圈 122 螺栓 14 2,93 €

这是零件清单和订单尺寸

零件 订单大小 价格 每单位价格
螺丝 500 20 € 0,040 €
坚果 100 12 € 0,120 €
螺栓 200 9 € 0,045 €
垫圈 1000 10 € 0,010 €

这是设备的订单列表

项目金额
小工具 14
小部件 22
东西121

现在我想创建一个如下所示的表(或报告、文本文件或任何类型的汇总输出):

这些数字现在组成

订购零件 包装数量 价格
螺丝 1 20€
坚果 3 36€
螺栓 2 18€
垫圈 5 50€

我没有任何有用的代码可以分享,因为我在 vlookups 中玩过 vlookups,我得到的只是头疼......

4

1 回答 1

2

首先,通过向订单列表添加列来进行中间步骤(这可以很好地粘贴到带有空格分隔符的 Excel 中,对于此处的格式表示抱歉)。您可能希望考虑以Recipe不同的方式格式化选项卡,但我已经使用了您所拥有的):

Item    Amount  Screws  Bolts   Nuts    Washers
Gadget  14  280 168 560 0
Widget  22  220 264 0   2200
Thingie 121 0   1694    1331    14762

其次,对“螺丝”下的公式使用以下公式并向下/向上拖动:

   =$B2*(SUMIFS(recipe!$C:$C,recipe!$B:$B,order!C$1,recipe!$A:$A,order!$A2)+SUMIFS(recipe!$E:$E,recipe!$D:$D,order!C$1,recipe!$A:$A,order!$A2)+SUMIFS(recipe!$G:$G,recipe!$F:$F,order!C$1,recipe!$A:$A,order!$A2))

SUMIFS会根据您的配方列表中的 Item 和 PartType 来计算 a。因为您需要在Recipe选项卡上检查三列部分,所以您需要将基本相同的公式重复 3 次。乘以这些零件的总数,即可得出每个项目的每个基本零件的总数。如果每个 Item/basicPart 都有自己的行条目,那么公式文本将是 1/3。

现在您已经计算出每个基本部件的总数量Item,您需要编写Report公式来给出包装数量。我添加了一个中间total # required列以使这一点更清楚。

Parts to be ordered total # required    Amount of packages  Price
Screws  500 1   20 €
Nuts    1891    19  228 €
Bolts   2126    11  99 €
Washers 16962   17  170 €

要汇总每个部分的总数,您可以根据每个部分的=sum(order!C:C)列手动设置适当的公式,或使用以下公式:

=SUM(OFFSET(order!B:B,0,MATCH(A2,order!$C$1:$F$1,FALSE)))

这会在上面构建的订单选项卡上找到匹配的列并将其相加。为了降低复杂性,您可以对其进行硬编码。但是,将此添加到单元格 Reports!B2 并向下拖动。

最后,使用以下公式获得Amount of Packages(在 Reports!C2 中输入):

=ROUNDUP(B2/VLOOKUP(A2,ordersize!A:B,2,FALSE),0)

然后获取您的总成本(在报告中输入!D2):

=C2*VLOOKUP(A2,ordersize!A:C,3,FALSE)

您可能必须根据我使用的工作表名称更改一些公式。


我认为值得注意的是,您可能可以通过数据透视表以最少的 Excel 公式为您提供所需的所有输出的方式重组这些数据。因此,“简单的解决方案”是了解数据透视表的工作原理并确定如何最好地重组信息(以及可以更改哪些元素),并让自己避免一些更复杂的 Excel 公式工作。

于 2012-08-22T00:52:50.963 回答