2017-02-22 52 views
2

我试图找到使用单独的电子表格中的多IF声明SUMIF数组公式

=SUM(IF(AND([Doc.xlsx]Sheet1!$B$7:$B$348="APPL*", C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$I$7:$J$348)) 

注:C15 = “A1”

我试图打破这个公式分解成两个独立的部分:

=IF(C15=[Doc.xlsx]Sheet1!$A$4:$BG$4,TRUE) 

=IF([Doc.xlsx]Sheet1!$B$7:$B$348 = "APPL*",TRUE) 

但是,这些都失败了。

如何使用两个标准(如列头和行标题)找到单个输出?

这是我正在使用的图像。我需要使用Column标题和Row标题来总结网格中所有条件符合的数字。

+0

你的面积之和是不一样的号码作为标题列。同样看看SUMPRODUCT()它可以很好地工作,但只有它的总和区域是相同的列数。 –

回答

0

根据我的意见,必须有统一的输出到输入范围;与行标题相同的行数和与列标题相同的列数。

然后这将找到两个相交和相应的交点的总和。

使用Array公式不能使用AND()OR()函数。分别使用*+来完成同样的事情。

因此,像:

=SUM(IF((A2:A12=B15)*(B1:K1=B16),B2:K12)) 

作为它需要被证实数组公式按Ctrl-Shift键输入,而不是退出编辑模式时输入。如果正确完成,Excel将在公式周围放置{}

但是可以在不需要Ctrl-Shift-Enter的情况下对SUMPRODUCT()进行相同操作。

=SUMPRODUCT((A2:A12=B15)*(B1:K1=B16),B2:K12) 

SUMPRODUCT不需要按Ctrl-Shift键回车进入,但正常的输入方法。它仍然是一个数组类型公式。

enter image description here


我们第二部分IF/SUMPRODUCT不使用通配符,所以你需要使用搜索(),这将允许使用通配符。

=SUM(IF((ISNUMBER(SEARCH("APPL*",[Doc.xlsx]Sheet1!$B$7:$B$348)))*(C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$C$7:$BG$348)) 

的SUMPRODUCT:

=SUMPRODUCT((ISNUMBER(SEARCH("APPL*",[Doc.xlsx]Sheet1!$B$7:$B$348)))*(C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$C$7:$BG$348) 
+0

谢谢Scott,这对我有很大的帮助。我也遇到了我的通配符问题,尽管...不幸的是,我的行标题是相似的,但不一样,所以通配符是必要的。 = SUMPRODUCT(( '[Doc.xlsx] Sheet 1中' $ A $ 7:!$ A $ 348 = “底肥*”)*( '[Doc.xlsx] Sheet 1中'!$ B $ 4:$ AM $ 4 = C15),'[Doc.xlsx] Sheet1'!$ B $ 7:$ AM $ 348) –

+0

@EmilioBolton请参阅编辑。 –

+0

如何添加“ISNUMBER(SEARCH(”)到SUMPRODUCT公式?以下是我有的和我的返回结果是“0”。= SUMPRODUCT(('[Doc.xlsx] Sheet1'!$ A $ 7:$ A $ 348 =(ISNUMBER(SEARCH( “底肥*”, '[Doc.xlsx] Sheet 1中' $ A $ 7:!$ A $ 348页))))*( '[Doc.xlsx] Sheet 1中' $ B $ 4:!$ AM $ 4 = C15),[[Doc.xlsx] Sheet1'!$ B $ 7:$ AM $ 348) –