我在excel表中有一串连续的日期,表示商品从商店提货的时间。我需要确定是否有超过60天的差距或最大差距。示例:
18-9-5-19,11-20-18,12-21-18
第二次约会和第三次约会之间的差距在63岁时最大。我要么需要"63“,要么在>63的情况下回答”是“。我有几百行这样的日期,所以我在寻找一个公式,而不需要构建助手表。
提前谢谢。
发布于 2020-06-04 00:17:17
如果日期在不同的单元格中:
=MAX(B1:D1-A1:C1)>60
根据用户的版本,这可能需要在退出编辑模式时使用Ctrl-Shift-Enter组合键而不是Enter组合键进行确认。
如果它们位于同一单元格中,则以逗号分隔:
=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组合键进行确认。
发布于 2020-06-04 00:43:36
如果日期都在一个单元格中,并且您有最新版本的带有SEQUENCE
函数的Excel,则可以使用:
=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)
其中,SEQUENCE
的10
参数只是大于可能包含的条目总数的某个值。
如果没有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)
发布于 2020-06-04 00:05:18
日期- excel中的时间是自纪元以来的天数,浮点数,具有可以调整的演示文稿数字格式(我喜欢YYYY-MM-DD iso date)。如果字符串还不是自动转换的日期,那么将字符串转换为日期应该很容易。我打赌有一个函数可以做到这一点!减去它们,但是因为它们是带有分数的日期-时间浮点数,所以您可能需要找到一个名为int或integer的函数来剔除任何分数。当然,如果它们都缺少时间部分,则该部分缺省为相同的时间,因此减法将返回整日。
https://stackoverflow.com/questions/62177268
复制相似问题