报告服务生成csv文件,某些列(奇怪的是)具有混合日期/时间格式,某些行包含日期时间,表示为m / d / y,其他行包含d.m.y
当应用= TYPE()时,它将返回1或2(Excel将识别文本或数字(Excel时间戳))
如何将任何类型的错误日期时间格式转换为可以使用的“普通”格式并确保数据的一致性?
此刻我正在考虑两种解决方案:
由于
答案 0 :(得分:1)
当然,你的第二个选择是中长期的方式。但是,如果您现在需要一个解决方案,并且您可以访问支持Perl兼容的正则表达式的文本编辑器(如Notepad ++,UltraEdit,EditPad Pro等),您可以使用以下正则表达式:
(^|,)([0-9]+)/([0-9]+)/([0-9]+)(?=,|$)
搜索m/d/y
格式的所有日期,用逗号(或在行的开头/结尾)包围。
将其替换为
\1\3.\2.\4
您将获得d.m.y
格式的日期。
答案 1 :(得分:1)
如果您无法更改数据,则可能需要使用另一个翻译日期的列:(假设您要更改的日期为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))
它测试它是否可以将文本作为日期读取,如果它失败,那么它将切断字符串,并将其转换为日期,否则它将尝试直接读取日期。无论哪种方式,它都应该将其转换为您可以使用的日期