在列A中查找test1-test4之后如何求和列B中的值

我想知道是否有人愿意跟我分享一下,在列A中寻找一个特定的名字后,你如何做一个B列的总和? 比如说,我想总结test1到test4。 然后总数将被放置在旁边的“In”旁边的“B1”,“In”不需要在“B1”处。 我添加了一张照片来缓解混乱。

在这里输入图像说明

我曾尝试做一些编码:

Sub Macro1() Dim lcell As Range, lrow As Long, rowToSum As Long lrow = 1 Do set lcell = Sheets("Sheet1").cells(lrow,1) If lcell = "Test1" or "Test2" Or "Test3" Or "Test4" Then 'I'm not sure how to i sum different columns, my guess was to do a rowToSum = lcell lrow = lrow + 1 Exit Do End If Loop End Sub 

如果你能清除我的问题,我将不胜感激! 非常感谢!

嗨,我想你误解了我的问题。 我想将test1 – test4的值加在一起,这意味着,我想在Col B上添加值,我应该在B1上有10个值。 您提供的代码实际上是在A栏中对test1-test4进行总结,而不是在B栏中的值 – user1204868

这使我们2我们大声笑。

尝试这个

 =SUMPRODUCT((A1:A10={"Test1","Test2","Test3","Test4"})*(B1:B10)) 

跟进

把这个公式放在C1中

如果你想在B1中使用它,然后将其更改为

 =SUMPRODUCT((A2:A10={"Test1","Test2","Test3","Test4"})*(B2:B10)) 

VBA代码

 Sub Sample() Sheets(1).[b1] = Evaluate("SUMPRODUCT((A2:A10={""Test1"",""Test2"",""Test3"",""Test4""})*(B2:B10))") End Sub 

简单的方法将是B1中的一个公式
=SUM(COUNTIF(A:A, {"Test1","Test2","Test3","Test4"}))

这可以通过VBA来完成

 Sub Test() Sheets(1).[b1] = Evaluate("SUM(COUNTIF(A:A, {""Test1"",""Test2"",""Test3"",""Test4""}))") End Sub 

更新澄清的意图

 Sub Test() Sheets(1).[b1].Value = Evaluate("SUM(SUMIF(A2:A10, {""Test1"",""Test2"",""Test3"",""Test4""},B2:B10))") End Sub