我如何总结多个“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。 否则,它将作为一个常规公式。