我如何总结多个“IF”陈述没有“Sumifs”

我必须在Excel中整理一个每周报告系统。 我需要报告当月的销售结果和完成的一周(周五至周四)。 这是从存储在Sharepoint中的销售文档中的多个销售代理收集的。

为此,我使用“SUMIFS”来收集数据,方法如下:

=SUMIFS('SHAREPOINTREF/FILE.xlsm'!SalesResults[One off],'SHAREPOINTREF/FILE.xlsm'!SalesResults[Date],">="&B7,'SHAREPOINTREF/FILE.xlsm'!SalesResults[Date],"<="&C7) 

(B7是确定一周的开始date的单元格引用,C7是一周的结束)

SUMIF,SUMIF,COUNTBLANK,COUNTIF和COUNTIFS的问题在于,当源文档closures时,它们不起作用。 微软在这里有一个解决方法: https : //support.microsoft.com/kb/260415?wa=wsignin1.0

我似乎无法弄清楚如何调整build议的解决方法,不仅适用于简单的IF语句,而且适用于倍数。 我假设我需要使用“AND”语句,但是当我尝试的时候我总是收到错误。

我有大约6种不同的计算方法,但是如果我能解决这个问题,我相当自信,其他人应该开始更好一点。

尝试这个:

=SUM(IF('SHAREPOINTREF/FILE.xlsm'!SalesResults[Date]>=B7,IF('SHAREPOINTREF/FILE.xlsm'!SalesResults[Date]<=C7,'SHAREPOINTREF/FILE.xlsm'!SalesResults[One off])))

使用Ctrl + Shift + Enterinput

非数组公式等效:

=SUMPRODUCT(--('SHAREPOINTREF/FILE.xlsm'!SalesResults[Date]>=B7),--('SHAREPOINTREF/FILE.xlsm'!SalesResults[Date]<=C7),'SHAREPOINTREF/FILE.xlsm'!SalesResults[One off])

但是两者似乎都返回#REF! 当源WBclosures时,即使问题中提供的链接另有说明。

EDIT1:

更多挖掘后,上面将工作,但你需要使用正常范围,而不是表范围
唯一的问题是,你失去了表的dynamic数据范围的优势。
所以即使源代码closures,这样的东西也能工作:

=SUMPRODUCT(--('SHAREPOINTREF/[FILE.xlsm]Sheet1'!$A$2:$A$11>=B7),--('SHAREPOINTREF/[FILE.xlsm]Sheet1'!$A$2:$A$11<=C7),'SHAREPOINTREF/[FILE.xlsm]Sheet1'!$B$2:$B$11)

推荐的解决scheme是使用数组公式 。 这些是特殊types的公式,在input时必须通过在公式栏中按Ctrl + Shift + Enter来激活。 这样的function通过应用通常接受单个单元(例如IF())的函数来工作。 您将需要将结果包装在聚合公式中,例如SUM()或COUNT()。 这是一个例子:

 =SUM(IF($A$1:$A$10="Apple", $B$1:$B$10, 0)) 

此公式将检查从A1到A10的每个单元格,并将其与“Apple”进行比较,如果为真,则将从$ B $ 1:$ B $ 10返回相应的行。 结果将是列B的值的数组,其中列A是“苹果”,其中不是零。 周围的SUM()聚合数组并给出SUMIF()的等价物。

正如我所提到的,input公式后需要inputCtrl + Shift + Enter,才能以数组公式input。 否则,它将作为一个常规公式。