我必须在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;声明,但我在尝试时一直都会遇到错误。
我有大约六种不同的计算方法,但我非常有信心,如果我能解决这个问题,其他人应该开始更好地凝聚。
答案 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)