我有一个Excel表格,其中有2列用于创建日期和关闭日期。我正在尝试获取一定范围内的生命值(生命周期=创建日期和关闭日期之间的#天数)。例如,有多少记录的生命周期为40天以上。
我无法修改表格以添加新列(我正在尝试在单独的工作表中关闭计算,而不使用数据修改主工作表)。
我试图做的是:
=COUNTIF(DATEDIF(MyTable[CreatedDate], MyTable[ClosedDate], "d"), "> 40")
该公式不起作用,我认为有几个原因:你不能将范围传递给DATEDIF,DATEDIF也会返回一个离散值,但COUNTIF需要一个范围。
看来我正在尝试做的事情显然不适用于Ranges。有没有办法在两个范围之间做一个DATEDIF,然后返回一个新的范围,以便我可以对它进行计算?或者其他一些方法来实现我的目标?
一些示例数据(生命周期不是我表格中的实际列,为方便起见,此处仅包括在内):
Created Date Closed Date Lifetime
9/20/2012 10/19/2012 29
9/20/2012 10/27/2012 37
9/20/2012 12/26/2012 97
9/20/2012 10/23/2012 33
9/20/2012 11/23/2012 64
10/19/2012 12/14/2012 56
注意:每条记录都有一个有效的创建和关闭日期。
更新:@pnuts提出了一个可能有效或无效的公式:
=COUNTIF(MyTable[ClosedDate], ">"&MyTable[CreatedDate]+40)
我不确定到底发生了什么,但根据我的工作表中的哪些单元格,我将该公式放入其中会得到不同的结果。这是一个截图,每个单元格都有一个相同的公式,如公式栏所示。
如果有人想在我的示例Excel文件中试用它,您可以在此处抓取它:Sample Excel File
答案 0 :(得分:2)
请注意,如果您将@pnuts的公式用作数组公式,即使用 Ctrl + Shift + Enter ,则该公式有效。
您可以使用的非数组公式是:
=SUMPRODUCT(((Table1[Closed Date]-Table1[Created Date])>40)*1)
Table1[Closed Date]-Table1[Created Date]
是日期之间的差异,当你把>40
放在它之后,你会得到一系列布尔值(真/假),最后的*1
转换为真为1,False为0. SUMPRODUCT
将它们全部加起来。
答案 1 :(得分:1)
使用此数组公式(Ctrl + Shift + Enter):
=SUM(IF((Table[ClosedDate])-(Table[CreatedDate])>=40,1,0))