Excel:重新格式化string中的所有date值
下面的文本是我的示例数据集。 我有一个stringdate的笔记。 我需要将下面的string中的所有date从mm / dd / yyyy格式转换为yyyy-mm-dd。 所有的数据都是单个单元格中的一个string
单元格内容:
'===注意===
2013年2月7日
在此input注释
'===注意===
2013年2月12日
在此input注释
'===注意===
2013年2月14日
在此input注释
希望的单元格内容:
'===注意===
2013年2月7日
在此input注释
'===注意===
2013年2月12日
在此input注释
'===注意===
2013年2月14日
在此input注释
我已经尝试公式来挑出datestring,甚至重新格式化它们,但它只会挑出string中的第一个date。 我需要一些search和重新格式化string中的所有date。
我可以使用以下select第一个date
= IFERROR(0 + MID(AB2,SEARCH( “?? / ?? / ????”,AB2),10), “”)
然后我可以使用以下来更改格式
= TEXT(AC1, “YYYY-MM-DD”)
但是,这只是挑选了第一个date,它甚至没有取代它。 任何帮助是极大的赞赏。
这是不可能的,一个标准的Excel函数。 但是,您可以使用VBA和正则expression式来完成此操作。 创build一个新模块并添加下面的代码:
Function ConvertDates(rng As Range) If (rng.Rows.Count > 1 Or rng.Columns.Count > 1) Then ConvertDates = CVErr(xlErrRef) End If Dim regex As Object Set regex = CreateObject("vbscript.regexp") regex.Global = True regex.Pattern = "([\d]{2})/([\d]{2})/([\d]{4})" ConvertDates = regex.Replace(rng.Value, "$3-$1-$2") End Function
然后,从工作表中的其他单元格使用以下函数:
=ConvertDates(A1)