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