在列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