Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 有哪些VBA代码选项可以将数据分组到时间段中,将其复制到另一个工作表中,并循环多个部分(标准)_Excel_Inventory_Vba - Fatal编程技术网

Excel 有哪些VBA代码选项可以将数据分组到时间段中,将其复制到另一个工作表中,并循环多个部分(标准)

Excel 有哪些VBA代码选项可以将数据分组到时间段中,将其复制到另一个工作表中,并循环多个部分(标准),excel,inventory,vba,Excel,Inventory,Vba,我有两个文件: 文件#1包含具有需求信息的客户。只有三个栏目对我很重要: 部分# 需求量 需求日期 该文件有数千行 文件#2是我自己的文件,具有更多MRP设置: 列标有日期(每周) 对于每个零件:有以下行: 需要 进货存货 净库存 我的总体想法是,我可以通过某种方式按部分过滤这两个文件,然后让代码“sumif”按周计算总需求,并将其从客户文件复制到相应需求行上的我的文件中。然后将此循环用于所有零件 在我的电子表格中不断添加/删除部分(随着新项目的发展,旧项目逐渐淘汰),因此,如果在我的文件更新为

我有两个文件: 文件#1包含具有需求信息的客户。只有三个栏目对我很重要:
部分# 需求量 需求日期 该文件有数千行

文件#2是我自己的文件,具有更多MRP设置: 列标有日期(每周) 对于每个零件:有以下行: 需要 进货存货 净库存

我的总体想法是,我可以通过某种方式按部分过滤这两个文件,然后让代码“sumif”按周计算总需求,并将其从客户文件复制到相应需求行上的我的文件中。然后将此循环用于所有零件


在我的电子表格中不断添加/删除部分(随着新项目的发展,旧项目逐渐淘汰),因此,如果在我的文件更新为新的部分时不需要维护代码,这将是一个理想的选择。

似乎可以使用SUMPRODUCT公式,在没有代码的情况下输入这些数字。本例在同一工作簿中使用了两张工作表,因此您必须针对不同的工作簿进行轻微调整。在Sheet1中有三个范围,我将它们命名为rngPartNum、rngdemandate和rngdemandaqty。我使用了随数据扩展的动态范围名称,但可以使用覆盖足够行数的单元格引用。数据如下所示

PartNum Demand Qty  DemandDate
1           18          3/28/2011
1           6           3/30/2011
1           6           4/2/2011
2           18          3/28/2011
2           6           3/30/2011
2           6           4/2/2011
2           16          3/28/2011
3           3           3/30/2011
3           15          4/2/2011
3           9           3/28/2011
3           18          3/30/2011
表2每行有一周结束日期和零件号

Part    Week       Demand
1       4/1/2011    24
1       4/8/2011    6
1       4/15/2011   0
2       4/1/2011    40
2       4/8/2011    6
2       4/15/2011   0
3       4/1/2011    30
3       4/8/2011    15
3       4/15/2011   0
“需求”列中的公式如下

=SUMPRODUCT((rngPartNum=A2)*(rngDemandDate<=B2)*(rngDemandDate>B2-7)*(rngDemandQty))
=SUMPRODUCT((rngPartNum=A2)*(rngdemandateb2-7)*(rngdemandaqty))

这将对rngDemandQuaty中的所有内容求和,其中rngPartNum与A2匹配,rngDemandDate小于或等于B2,且rngDemandDate大于B2前一周。只要您的表2上有每个零件号和足够的周数,总数就应该与表1相匹配。

似乎您可以使用SUMPRODUCT公式来输入这些数字,而无需代码。本例在同一工作簿中使用了两张工作表,因此您必须针对不同的工作簿进行轻微调整。在Sheet1中有三个范围,我将它们命名为rngPartNum、rngdemandate和rngdemandaqty。我使用了随数据扩展的动态范围名称,但可以使用覆盖足够行数的单元格引用。数据如下所示

PartNum Demand Qty  DemandDate
1           18          3/28/2011
1           6           3/30/2011
1           6           4/2/2011
2           18          3/28/2011
2           6           3/30/2011
2           6           4/2/2011
2           16          3/28/2011
3           3           3/30/2011
3           15          4/2/2011
3           9           3/28/2011
3           18          3/30/2011
表2每行有一周结束日期和零件号

Part    Week       Demand
1       4/1/2011    24
1       4/8/2011    6
1       4/15/2011   0
2       4/1/2011    40
2       4/8/2011    6
2       4/15/2011   0
3       4/1/2011    30
3       4/8/2011    15
3       4/15/2011   0
“需求”列中的公式如下

=SUMPRODUCT((rngPartNum=A2)*(rngDemandDate<=B2)*(rngDemandDate>B2-7)*(rngDemandQty))
=SUMPRODUCT((rngPartNum=A2)*(rngdemandateb2-7)*(rngdemandaqty))
这将对rngDemandQuaty中的所有内容求和,其中rngPartNum与A2匹配,rngDemandDate小于或等于B2,且rngDemandDate大于B2前一周。只要您的表2上有每个零件号和足够的周数,总数应与表1匹配