在sumproduct中使用两个标准列表

我想通过使用两个标准列表来分析下表

在这里输入图像说明

如果A包含List 1中的一个元素而B包含List 2中的一个元素,我想总结C列。我可以想象使用公式:

((A:A =清单1)*(B:B =清单2)*(C:C))= SUMPRODUCT

我的公式产生2(a,x,1 + b,y,1),但是我想得到3(a,x,1 + b,y,1 + a,y,1)。

谁能帮我?

像这样的东西应该工作:

=SUM(SUMIFS(C:C,A:A,{"a","b"},B:B,"x"),SUMIFS(C:C,A:A,{"a","b"},B:B,"y")) 

可能会有更紧凑的数组公式,可以编写,但是如果在每个列表中只有两个variables,那么这也不算太坏。

如果你可以使用数组公式来代替一个sumproduct公式(我发现它们更容易阅读,但是它们在编辑时会带来错误input的风险),试试这个:

= SUM(IF(ISERROR(MATCH(B1:B6,G2:G3,0)) “”,(IF(ISERROR(MATCH(A1:A6,F2:F3,0)), “”,C1:C6) )))

这通过创build一个新的A列数组来实现,其中与List1匹配的行显示C列中的值,而与List1不匹配的行显示“”。 然后使用这个新数组创build一个新的B列数组,其中与List2匹配的行显示来自“新列A数组”(其中包括列C中的值以及一些“”)和行哪个不符合list2显示“”。 结果是一个数组,它必须被总结为提供结束单个答案。

由于这是一个数组公式,所以当你input它时,你需要按下button来完成(每次你编辑单元格)

CNTRL + SHIFT + ENTER

而不仅仅是

input

请注意,虽然您可以改为select索引中的所有列A / B,但通常不build议这样做(在我的理解中),数组公式将search列的所有内容,包括使用范围之外的区域。 这大大降低了性能,所以为了您的目的,您可能需要使用其他方法之一(如索引一个任意大的“A1:A500”,或创build某种forms的间接公式,其中包括search最后一个有数据的行)。

在C1中试试这个公式:

 =COUNTIF(F:F,A1)+COUNTIF(G:G,B1) 

所有值= 2符合您的AND标准(在List1和List2中)