需要一个公式来确定多个连续日期之间的最大天数。

问题描述 投票:0回答:1

我在一个excel表格里有一串连续的日期,这些日期代表了从一家商店取货的时间。 我需要确定是否有超过60天的间隔或最大的间隔。 例如:9518, 91819, 112018

9518, 91819, 112018, 122118

第2个和第3个日期的差距最大的是63。 我要么需要 "63",要么需要 "是",如果>63。 我有几百行这些日期,所以想找一个不需要建立辅助表的公式。

先谢谢你。

excel date max difference
1个回答
1
投票

如果日期是在不同的单元格中。

=MAX(B1:D1-A1:C1)>60

根据不同的版本,当退出编辑模式时,可能需要用Ctrl -Shift -Enter确认,而不是Enter。

enter image description here


如果它们在同一个单元格中,以逗号分隔。

=MAX(FILTERXML("<a><b>"&SUBSTITUTE(A1,",","</b><b>")&"</b></a>","//b["&ROW($ZZ$2:INDEX($ZZ:$ZZ,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))&"]")-FILTERXML("<a><b>"&SUBSTITUTE(A1,",","</b><b>")&"</b></a>","//b["&ROW($ZZ$1:INDEX($ZZ:$ZZ,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))))&"]"))>60

根据不同的版本,在退出编辑模式时可能需要用Ctrl-Shift-Enter代替Enter来确认。

enter image description here


1
投票

如果日期都在一个单元格中,并且你的Excel最近版本有 SEQUENCE 函数,你可以使用

=AGGREGATE( 14,6,DATEVALUE(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),SEQUENCE(10)*99,99)))-DATEVALUE(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),IF(SEQUENCE(10)=1,1,(SEQUENCE(10)-1)*99),99))),1)

其中的 10 主张 SEQUENCE 只是比可能包含的条目总数大一些的值。

如果你没有 SEQUENCE 函数,你可以使用类似:

=ROW(INDEX($A:$A,1,1):INDEX($A:$A,255,1))

我更喜欢把它做成一个命名公式,并命名为 seq所以最后的公式会是这样的。

=AGGREGATE( 14,6,DATEVALUE(TRIM(MID(SUBSTITUTE(A3,",",REPT(" ",99)),seq*99,99)))-DATEVALUE(TRIM(MID(SUBSTITUTE(A3,",",REPT(" ",99)),IF(seq=1,1,(seq-1)*99),99))),1)

0
投票

excel中的日期-时间的单位是自纪元以来的天数,浮点数,有一个你可以调整的演示数字格式(我喜欢YYYY-MM-DD等日期)。 如果你的字符串还没有自动转换为日期的话,应该很容易转换为日期。 我敢打赌,一定有一个函数可以做到这一点 减去它们,但是由于它们是带分数的日期时间浮点数,你可能需要找到一个名为int或integer的函数来刮去任何分数。 当然,如果它们都缺少时间成分,那部分默认为相同的时间,所以减法返回的是整日。

© www.soinside.com 2019 - 2024. All rights reserved.