如何根据同一行中的其他值求和同一列中的值

时间:2018-10-02 20:22:03

标签: excel vba excel-formula excel-2007

我在Excel电子表格中有三列:名称,类型和数量。 (我还有更多,但其他与这个问题无关)。每行包含一张纸牌的名称,其类型和卡组中包含的副本数,例如:

Table example image

在此表之外的其他单元格中,我拥有卡的总数。例如,“范围”类型的卡总数。

=COUNTIF(D2:D70; "*ranged*")

这向我显示的是,牌组中实际上包含多少张不同类型的“ ranged”牌,但实际上没有多少张“ ranged”牌。

我想要一种计算“远程”卡数量的方法。意思是所有“远程”卡的“金额”之和。

在for循环中,这将是:如果第2行中的Type =“ ranged”,则将第2行中的Amount添加到总数中,然后对所有行重复此操作。

我已经使用VBA进行了此操作,但是,我必须手动对其进行更新。另外,在“类型”列中不能有多个不同的值,因为x必须等于该单元格的内容的100%才能注册。

Sub Cardtypetotal()
 result = 0
 x = InputBox("SortBy", "Enter_Info")
  For i = 2 To 63
   If Cells(i, 3).value = x Then
    result = result + Cells(i, 5).value
   End If
  Next
 ActiveCell.value = result
End Sub

是否可以使用excel公式执行此操作?谢谢。

我尝试使用:

=SUMIF(E2:E63; D2:D63 = "*ranged*")

但是显然,这没有任何意义,因为我需要比较单个单元格而不是数组。

1 个答案:

答案 0 :(得分:-1)

您可以通过查看SUMIFS函数here的文档来解决大多数该函数问题。

您上面的sumifs语句使用了错误的语法。您应该使用逗号,而不是分号,等号也应该是逗号,并且不要在“ ranged”前使用星号。这样您的公式就可以正常工作了。

如果上面的图像显示的是A,B和C列,则可能是这样

 =SUMIFS(C:C,B:B,"ranged")