FIxing MS Excel日期时间格式

时间:2012-10-18 19:27:29

标签: excel csv

报告服务生成csv文件,某些列(奇怪的是)具有混合日期/时间格式,某些行包含日期时间,表示为m / d / y,其他行包含d.m.y

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

如何将任何类型的错误日期时间格式转换为可以使用的“普通”格式并确保数据的一致性?

此刻我正在考虑两种解决方案:

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

由于

2 个答案:

答案 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))

它测试它是否可以将文本作为日期读取,如果它失败,那么它将切断字符串,并将其转换为日期,否则它将尝试直接读取日期。无论哪种方式,它都应该将其转换为您可以使用的日期