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)