我正在尝试格式化一个字符串,以便在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
,使其更具可读性。