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

How to sum values in the same column based on other values in the same row

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

在这个 table 之外的其他单元格中,我有卡的总数。例如,类型为 "ranged".

的卡片总数
=COUNTIF(D2:D70; "*ranged*")

这只是告诉我有多少张类型为 "ranged," 的不同卡片,而不是有多少张类型为 "ranged" 的卡片实际上会包含在牌组中。

我想要的是一种计算 "ranged" 卡片数量的方法。意思是,所有 "ranged" 张牌的 "amount" 的总和。

在 for 循环中,这将是:如果第 2 行中的类型 = "ranged," 将第 2 行中的金额添加到总数中,然后对所有行重复此操作。

我已经用 VBA 做到了,但是,我必须手动更新它。另外,我不能在 "type" 列中有多个不同的值,因为 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*")

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

通过查看 SUMIFS 函数 here.

的文档,可以解决您与该函数有关的大部分问题

您上面的 sumifs 语句使用了错误的语法。你应该使用逗号,而不是分号,你的等号也应该是逗号,你不应该在 "ranged" 前面使用星号。那么你的公式就可以正常工作了。

如果上图显示A列、B列和C列,那就是这样的

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