Google表格:根据RANGE中的DATE使用ArrayFormula到COUNTIF
好,所以我有两个公式我想一起使用,一个我用来从前一天'SUM'项目总数:
=ArrayFormula(SUM(1*(INT(Archive!M3:M)=Today()-1)))
这将统计前一天完成的所有项目。
现在我有几个不同types的项目,我使用下面的公式来分离项目types,并给出总计:
=COUNTIF('V1 Archive'!D:D,"25A")
我想要做的是能够从前一天“总结”一个特定项目的总数。
更多的细节:
数据是纯文本项目代码ex; 25A,25B,25C等。date格式化为; 6/3/2014 16:41:36
在我直接回答您的问题之前,应该注意的是,在新的Google Spreadsheets中可以使用COUNTIFS()
,而且这个公式更容易。
但是,您具体询问了如何使用ARRAYFORMULA()
来执行此操作。
首先,我们分解一个ARRAYFORMULA()
:
我将在名为“ Archive
的工作表上使用以下数据
假设我在Master
表上执行以下操作: =Arrayformula(Int(Archive!B$1:B$10))
输出结果如下。 注意我没有拖下去。 Google电子表格会自动执行此操作,因为公式将返回整列而不是逐个单元格地执行
现在你看到了arrayformula()
概念,我们可以build立你的公式。
首先,根据你的标准你有:必须在昨天完成(标准1),它必须等于某个项目(标准2)。
使用它我们将组成一个公式,将发现这些交集。 逻辑思想是在if语句中使用“AND()”,但是这样做不起作用,因为它会试图find整个集合的逻辑交集(逻辑AND)。
所以我们将利用“任何数字0是0”的结果,并且使得我们想要的所有事情在一个arrayformula
是1,而其他标准的所有东西都是1在一个单独的数组expression式中,如下所示:criteria 1: =arrayformula(if(int(Archive!B$1:B)=Today()-1,1,0))
criteria 2: =arrayformula(if(Archive!A$1:A=A2,1,0))
(注:在这个公式中,我在A列中查找了一个比较表,即“A2”)。
然后我们将使用sumproduct()
来合并它们。
=sumproduct(arrayformula(if(int(Archive!B$1:B)=Today()-1,1,0)),arrayformula(if(Archive!A$1:A=A2,1,0)))
以下是主屏幕上的输出。