我尝试格式化字符串以在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)))
我完全不知道从这里做什么,我已经尝试从细胞中提取值并对其进行排序,但这也不起作用。
任何人都有任何线索该怎么办? 干杯,MS。
编辑:感谢来自@CallumDA和@ elmer007的建议,我现在知道需要首先使用* 1或= VALUE将字符串转换为数字。我可以对C列中的原始日期应用排序,但我希望它以dd / mm / yyyy hh:mm:ss的格式显示,但有些值是单个数字。为了解决这个问题,我分别搜索并提取了日期和时间的每个部分,如果只有一个数字,则在每个部分的开头添加零。这样做使它看起来像是正确的格式但没有* 1它仍然是一个字符串而不是数字因此无法按图表中的日期排序。我理解这仍然非常令人困惑,因为我试图解释所有这些技术性事物,而不是毫不理解它们。遗憾!
答案 0 :(得分:0)
我正在尝试格式化字符串以在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
以使其更具可读性。