我在同一个Excel中有2张。
第一个Excel工作表包含以下字段
No Material 10th july 11th july
1 DATUM DCP ESD Black
2 DATUM DCP ESD Blue
我的第二个工作表包含以下字段
No Date Material Stock size+Wastage
1 10th july DATUM DCP ESD Black 283.47
2 10th july DATUM DCP ESD Black 661.6
3 11th july DATUM DCP ESD Blue 665.6
4 11th july DATUM DCP ESD Black 50.8
我希望在第一个工作表中显示以下预期结果: -
No Material 10th july 11th july
1 DATUM DCP ESD Black 945.07 50.8
2 DATUM DCP ESD Blue 665.6
答案 0 :(得分:4)
答案 1 :(得分:2)
这里不需要VBA。忽略第一张工作表并从第二张工作表创建一个数据透视表。
答案 2 :(得分:0)
Sub summ()
With Worksheets("Sheet2")
.Range("B2:B" & Range("B" & "65536").End(xlUp).row).Name = "Dates"
.Range("C2:C" & Range("C" & "65536").End(xlUp).row).Name = "Materials"
.Range("D2:D" & Range("D" & "65536").End(xlUp).row).Name = "Numbers"
End With
With Worksheets("Sheet1")
.Cells(2, 3).FormulaR1C1 = _
"=SUMPRODUCT( (Worksheets("Sheet2")!Dates=R1C) * (Worksheets("Sheet2")!Materials=RC1) * (Worksheets("Sheet2")!Numbers)"
.Range(Cells(2, 3).Address).AutoFill _
Destination:=Range(Cells(2, 3).Address, Cells(2, Y)), Type:=xlFillDefault
.Range(Cells(2, X).Address).AutoFill _
Destination:=Range(Cells(2, Y).Address, Cells(X, Y)), Type:=xlFillDefault
End Sub
其中“Sheet1”和“Sheet2”分别是第一张和第二张的名称 其中X是最后一次使用的行(number_of_materials - 1) 其中Y是最后一次使用的列(number_of_dates - 1) 由于这不是一项复杂的任务,我建议使用公式,而不是宏。