如何根据同一行中的其他值对同一列中的值求和
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")
我在 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")