获取Excel中具有相同ID的每个单元格的最后两个日期的天数

时间:2014-01-15 02:13:08

标签: excel date

我的数据如下所示。

ID          Date
8215    3/11/2013
8215    3/11/2011
8215    3/12/2009
8215    3/10/2007
18150   3/1/2013
18150   3/4/2011
18150   3/4/2009
18150   3/1/2008
18150   3/6/2006

期望的结果:

ID          Num_days
8215        731  
18150       641

我想获得ID为8215的实体的最后两个日期的天数。在此示例中,ID 18150的天数为731和641.很难获得最后两天的日期数我拥有超过70k实体的日期。我怎么能这样做,以便我可以稍后计算平均值?

4 个答案:

答案 0 :(得分:3)

如果您从D列中的唯一ID列表开始,这应该可行。无需排序:

=LARGE(IF($D2=$A:$A,$B:$B),1)-LARGE(IF($D2=$A:$A,$B:$B),2)

使用Ctrl+Shift+Enter

确认

如果您限制范围$A:$A$B:$B,则会更快。

编辑:我将“最后两个日期”解释为“最近两个日期”。另一种解释可能是“有序降序列表中最近的两个条目”。在后一种解释中使用此代替:

=SMALL(IF($D2=$A:$A,$B:$B),2)-SMALL(IF($D2=$A:$A,$B:$B),1)

答案 1 :(得分:0)

我不确定我理解你的要求,但是会像:

=IF(A2<>A1,B2-B3,"")

复制到适合服务?

答案 2 :(得分:0)

假设ID在A列中,并且日期在B列中,您将创建C列,以便第2行读取:

=(A2=A1) * (A2<>A3) * (B2-B1)

如果ID与前一行相同,则第一部分(A2 = A1)返回1,否则返回0。如果ID与下一行不同,则下一部分返回1(所以到目前为止,如果您在ID的最后一行,则为1,否则为0),最后一部分(B2-B1) )获取两个日期之间的天数。这将返回0或天数

答案 3 :(得分:0)

即使没有排序也可以。它是一个数组公式,它根据条件得到两个最大的日期并计算差异。

=MAX(IF(A:A=8215,B:B))-LARGE(IF(A:A=8215,B:B),2)

这是数组公式,因此在输入时请使用 Ctrl-Shift-Enter

如果你在某个地方有一个唯一的列表,更好8215来引用范围,然后向下拖动它会更好。

<强>截图:

enter image description here

希望这有帮助。