在 Excel 中,如果相应名称与不同表中的名称匹配,我该如何对某个范围内的值求和?

在 Excel 中,如果相应名称与不同表中的名称匹配,我该如何对某个范围内的值求和?

由于标题可能不太清楚,让我解释一下我的问题。我有一个数据集,其值与名称相对应:

表格1

name      amount
adrian    1
alice     2
austin    3
bob       4
bruce     5
clarice   6
cathy     7
charles   8
adrian    9
alice     10
austin    11
bob       12
bruce     13
clarice   14
cathy     15
charles   16

这些名字都与表中的另一个名字相匹配(对于这个例子,我使用了他们名字的首字母,但实际问题是完全不同的)。

表 2

name1  name2
a      adrian
a      alice
a      austin
b      bob
b      bruce
c      clarice
c      cathy
c      charles

我有第三个表,其中我想对表 1 中的所有值求和,其中名称与第三个表中的正确值相对应:

表3

name    amount
a       this should be 36 (the sum of arian, alice and austin)
b       this should be 34 (the sum of bob and bruce)
c       this should be 66 (the sum of clarice, cathy and charles)

我尝试在表 3 中使用以下函数,但结果总是 0。有人能帮我找出我做错的地方吗?

=SUMIF(INDEX(Table1;;2);INDEX( <range name 1> ;MATCH(INDEX(Table1;;1); <range name 2> ;0)); <letter in table 3>)

答案1

这将遍历第二个表,如果 Name1 匹配,则它将返回第一个表中 Name2 的 SUMIF() 值并将它们全部相加:

=SUMPRODUCT(SUMIF(A:A,$F$2:$F$9,B:B)*($E$2:$E$9=H2))

请注意,对表 2 的引用仅限于实际数据,而对表 1 的引用可以是完整的列引用。这与公式的迭代方式有关。由于它实际上将迭代第二个表,因此我们希望将迭代次数限制为数据集本身。而 SUMIF() 公式已经过优化,并且不会损害完整的列引用。

在此处输入图片描述

相关内容