Sumif函数动态

时间:2018-11-28 14:46:46

标签: excel vba

我在编写VBA代码时遇到麻烦,该代码将基于多个ID将一个工作簿的一列汇总到另一个工作簿。数据设置如下。 我希望工作簿2读取工作簿1的id列并将该值列求和。

WORKBOOK 1
ID     |    VALUE
2454         10
6333          5
3345         10
5667         20



Workbook 2
ID 1  | ID2  | ID 3 | ID 4  |  Sum Value    
2454   6333    3345    5667       45

我想我可以使用这样的东西:

Dim Rng As Range
Set Rng = Range("workbook 2 sum value column")
Rng.Formula = "=SUMIF(workbook 1 ID column,workbook 2 ID 1,workbook 1 VALUE column)"
Rng.Value = Rng.Value

但是我想我必须对工作簿2中的每一行和每个ID重复此代码?

我对此很陌生,对我来说有点先进。感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

以下数组公式有效:

=SUM(IF($A$1:$A$4=A8:D8,$B$1:$B$4))

enter image description here

请确保在退出单元格之前按Ctrl+Shift+Enter。然后向下拖动其余的列。如果您在工作表2上的某些列具有更多/更少的ID,则甚至可以使用。不需要VBA,但是如果您出于其他原因需要,可以将该公式直接应用到代码中。