我的数据如下所示。
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实体的日期。我怎么能这样做,以便我可以稍后计算平均值?
答案 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
来引用范围,然后向下拖动它会更好。
<强>截图:强>
希望这有帮助。