如何将多个" IF"没有" Sumifs"

时间:2014-10-09 23:53:34

标签: excel sumifs

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

为此,我使用了" SUMIFS"收集数据,方法如下:

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

(B7是确定一周开始日期的单元格参考,C7是本周末)

SUMIFS以及SUMIF,COUNTBLANK,COUNTIF和COUNTIFS的问题在于它们在采购文件关闭时不起作用。 Microsoft在此处有一个解决方法:https://support.microsoft.com/kb/260415?wa=wsignin1.0

我似乎无法弄清楚如何调整建议的解决方法,不仅适用于简单的IF语句,还适用于倍数。我想我需要使用&#34; AND&#34;声明,但我在尝试时一直都会遇到错误。

我有大约六种不同的计算方法,但我非常有信心,如果我能解决这个问题,其他人应该开始更好地凝聚。

2 个答案:

答案 0 :(得分:1)

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

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

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

正如我所提到的,在输入公式后,您需要输入Ctrl + Shift + Enter作为数组公式。否则,它将作为常规公式。

答案 1 :(得分:1)

试试这个:

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

使用 Ctrl + Shift + 输入

非数组公式等价物:

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

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

<强> EDIT1:

经过多次挖掘后,上面会有效,但您需要使用正常范围,而不是表范围
唯一的问题是,你失去了表的动态数据范围的优势 因此,即使关闭源,这样的事情也会起作用:

=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)