从混合文本中提取日期并设置日期格式



我正在尝试格式化一个字符串,以便在excel中显示为日期和时间。

字符串是6/1/2009 17:55:9,正如您所看到的,它缺少零,并且不会格式化为dd/mm/yyyy hh:mm:ss,因此无法启动。

经过一整天的尝试,我已经到了可以将其输出为01:06:2009 17:55:09的阶段。然而,无论我尝试什么自定义格式,它仍然无法排序。我得出的公式是:

=IF(VALUE(TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),2*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),2*99-98,99))&":"&(IF(VALUE(TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),1*99-98,99)))<10,"0",""))&TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),1*99-98,99))&":"&(IF(VALUE(TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),3*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),3*99-98,99)))&"  "&(IF(VALUE(TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),1*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),1*99-98,99)))&":"&IF(VALUE(TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),2*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),2*99-98,99))&":"&(IF(VALUE(TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),3*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),3*99-98,99)))

我完全不知道该怎么办,我试着从单元格中提取值并进行排序,但这也不起作用。

有人知道该怎么办吗?干杯,女士

编辑:感谢@CallumDA和@elmer007的建议,我现在知道字符串需要首先转换为数字,使用*1或=VALUE。我本可以对C列中的原始日期进行排序,但我希望它以dd/mm/yyyy hh:mm:ss的格式显示,但有些值是个位数。为了解决这个问题,我分别搜索并提取了日期和时间的每个部分,如果只有一位数字,则在每个部分的开头加一个零。这样做看起来它的格式是正确的,但如果没有*1,它仍然是一个字符串,而不是一个数字,因此无法在图表中按日期排序。

我知道这仍然是非常令人困惑的,因为我试图解释所有这些技术性的东西,却一点也不理解。很抱歉

我正在尝试格式化一个字符串,以在excel中显示为日期和时间。
。。。并且不会格式化为dd/mm/yyyy hh:mm:ss,因此无法启动。

如果由于某种原因,您的日期被格式化为字符串,则只能按A>Z排序。您需要将字符串转换为数字,以便按时间对其进行排序。然后,您可以使用自定义格式为它们提供所需的dd/mm/yyyy hh:mm:ss

以下是将字符串转换为数字的几种方法:

=A1*1
=VALUE(A1)

现在,您的字符串6/1/2009 17:55:9应该变成39819.7466319444(确保格式为General)。整数部分表示日期,小数部分表示时间。

此时,您的日期将可以排序,但您也可以应用自定义格式dd/mm/yyyy hh:ss:mm,使其更具可读性。

最新更新