打印MS Exceldate时间格式

报告服务会生成一个csv文件,某些列(奇怪的是)具有混合的date/时间格式,有些行包含date时间,以m / d / y表示,其他则为dmy

应用= TYPE()时,将返回1或2(Excel将识别文本或数字(Excel时间戳))

如何将任何一种错误的date – 时间格式转换成可以使用的“正常”格式并确保数据的一致性?

我现在想着2个解决scheme:

  • 我应该以某种方式处理与现有的Excelfunction的奇数据
  • 我应该要求从一开始就正确地生成报告,并首先避免这种麻烦

谢谢

当然,你的第二个select是中长期的方式。 但是,如果您现在需要解决scheme,并且如果您有权访问支持Perl兼容正则expression式(如Notepad ++,UltraEdit,EditPad Pro等)的文本编辑器,则可以使用以下正则expression式:

(^|,)([0-9]+)/([0-9]+)/([0-9]+)(?=,|$) 

search格式为m/d/y所有date,并以逗号(或在行首/结尾)包围。

把它replace成

 \1\3.\2.\4 

你会得到格式为dmy的date。

如果你不能改变数据,那么你可能不得不求助于翻译date的另一列:(假定你想改变的date是A1)

 =IF(ISERR(DATEVALUE(A1)),DATE(VALUE(RIGHT(A1,LEN(A1)-FIND(".",A1,4))),VALUE(MID(A1,FIND(".",A1)+1,2)),VALUE(LEFT(A1,FIND(".",A1)-1))),DATEVALUE(A1)) 

它会testing它是否可以读取文本作为date,如果失败,那么它将切断string,并将其转换为date,否则将尝试直接读取date。 无论哪种方式,它应该将其转换为您可以使用的date