1

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

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

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

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

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

谢谢

4

2 回答 2

1

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

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

搜索格式中的所有日期m/d/y,用逗号括起来(或在行的开头/结尾)。

将其替换为

\1\3.\2.\4

你会得到格式的日期d.m.y

于 2012-10-18T19:54:42.183 回答
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))

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

于 2012-10-18T20:10:31.610 回答