sumproduct excel多表

时间:2013-09-09 00:04:10

标签: excel excel-formula lookup excel-2003

我有两个表,我想通过引用另一个表来计算项目的出现次数,

例如,我想知道Bob拥有多少蛇,显而易见的答案是两个,但我如何在一个公式中做到这一点?我已经使用sumproduct来计算单个蛇的出现次数,但我想通过引用第二个表来将它们全部放在一个公式中。这可能吗?

注意: 我有excel 2003,因此sumproduct

    A      B    
1  Bob    Boa
2  Ann    Cow
3  Bob    Sheep
4  Bob    Python

    A      B
1  Farm   Snake
2  Cow    Boa
3  Sheep  Python

2 个答案:

答案 0 :(得分:3)

使用现有布局和没有辅助列可以做到这一点。假设A1:B4中的第一个表和D1:E3中的第二个表,您可以通过此公式获得Bob拥有的蛇数

=SUMPRODUCT((A1:A4="Bob")*ISNUMBER(MATCH(B1:B4,INDEX(D2:E3,0, MATCH("snake",D1:E1,0)),0)))

我认为第一个标准是不言而喻的。

对于第二部分,这部分找到了所有蛇的名字:

INDEX(D2:E3,0,MATCH("snake",D1:E1,0))

....因为它与D1中的标题匹配“snake”:E1并返回下面的整个列[通过使用零作为INDEX中的行参数得到整列]。

然后,拥有所有的蛇名称,您可以使用MATCH来匹配B1:B4。如果有匹配则得到一个数字,如果没有,你会得到#N / A,所以你在ISNUMBER中包装MATCH函数返回TRUE / FALSE。

另一种方法是使用COUNTIF代替ISNUMBER / MATCH

=SUMPRODUCT((A1:A4="Bob")*(COUNTIF(INDEX(D2:E3,0, MATCH("snake",D1:E1,0)),B1:B4)>0))

答案 1 :(得分:1)

首先,您需要正确设置查找表。无法按原样查找第二个表。首先将其更改如下:

Farm  Cow
Farm  Sheep
Snake Boa
Snake Python

现在,您可以使用以下公式查找事物的类型:

=INDEX(Sheet2!A:A,MATCH(B1,Sheet2!B:B,0))

如果将其添加到原始工作表中的C列,您将得到:

Bob Boa Snake
Ann Cow Farm
Bob Sheep   Farm
Bob Python  Snake

然后你可以使用sumproduct:

=SUMPRODUCT((A1:A4="Bob")*(C1:C4="Snake"))