2014-10-09 33 views
0

我必须在Excel中汇总每周报告系统。我需要报告本月的销售结果和完成的一周(星期五至星期四)。这是从存储在Sharepoint中的销售文档中的多个销售代理收集的。我如何总结多个“IF”陈述而没有“Sumifs”

对于这一点,我使用“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的问题在于它们在关闭源文档时不起作用。微软在这里有一个解决方法:https://support.microsoft.com/kb/260415?wa=wsignin1.0

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

我做了大约六种不同的计算,但是我非常有信心,如果我能解决这个问题,其他人应该开始凝胶化一点。

回答

1

试试这个:

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

使用按Ctrl ++输入进入

非数组公式相当于:

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

+0

我试过这个(几乎是逐字的,除了替换实际的文件路径),它的计算很好。但是当我关闭文档时它仍然给我'#REF!'。 – LincM 2014-10-10 00:31:53

+0

@LincM是的。我也看到了。事实上,这与你发布的链接相反。我也测试了'SUMIFS',并且发生了同样的'#REF!'错误。 – L42 2014-10-10 00:38:01

+0

@LincM算出来。看我的编辑。 – L42 2014-10-10 00:48:22

1

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

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

这个公式会从A1每个细胞检查,A10,并把它比作“苹果”,如果是真的,那将$ B $ 1返回相应的行:$ B $ 10结果将是列B的值的数组,其中列A是“苹果”,其中不是零。周围的SUM()聚合数组并给出SUMIF()的等价物。

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

+0

我曾经尝试这样做,甚至与阵列,但我仍然得到了可怕的''#REF每次! 即使使用数组和嵌套参数而不是简单的,较少识别的函数,是否有可能难以采集这些信息? – LincM 2014-10-10 00:27:25