1

我有一个 Excel 表,其中包含 2 列的创建日期和关闭日期。我正在尝试获取某个生命周期值范围内的记录计数(生命周期 = 创建和关闭日期之间的 # 天)。例如,有多少记录的生命周期为 40 天以上。

我无法修改表格以添加新列(我试图在单独的表格中进行计算而不用数据修改主表格)。

我试图做的是:

=COUNTIF(DATEDIF(MyTable[CreatedDate], MyTable[ClosedDate], "d"), "> 40")

该公式不起作用,我相信有几个原因:您不能将范围传递给 DATEDIF,DATEDIF 也返回一个离散值,但 COUNTIF 需要一个范围。

看来我正在尝试做的事情显然不适用于 Ranges。有没有办法在两个范围之间做一个 DATEDIF,然后返回一个新的范围,以便我可以 COUNTIF 它?或者其他方式来实现我的目标?

一些示例数据(Lifetime 不是我表中的实际列,只是为了方便而包含在此处):

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 文件中试用它,您可以在此处获取:示例 Excel 文件

4

2 回答 2

2

请注意,如果您将 @pnuts 的公式用作数组公式,即如果您使用Ctrl+ Shift+ ,则它会起作用Enter

您可以使用的非数组公式是:

=SUMPRODUCT(((Table1[Closed Date]-Table1[Created Date])>40)*1)

Table1[Closed Date]-Table1[Created Date]是日期之间的差异,当你把它放在>40后面时,你会得到一系列布尔值(True/False),*1最后将 True 转换为 1,将 False 转换为 0。SUMPRODUCT将它们全部加起来。

于 2013-09-25T05:03:05.603 回答
1

使用这个数组公式(Ctrl+Shift+Enter):

=SUM(IF((Table[ClosedDate])-(Table[CreatedDate])>=40,1,0))

于 2013-09-25T04:20:17.103 回答