下面的文字是我的示例数据集。我在字符串中注明了日期。我需要将下面字符串中的所有日期从mm / dd / yyyy格式转换为yyyy-mm-dd。所有数据都是单个单元格中的字符串
细胞内容:
' ===注意===
02/07/2013
在此输入备注
' ===注意===
02/12/2013
在此输入备注
' ===注意===
02/14/2013
在此输入备注
所需的细胞内容:
' ===注意===
2013年2月7日
在此输入备注
' ===注意===
2013年2月12日
在此输入备注
' ===注意===
2013年2月14日
在此输入备注
我已经尝试过公式来挑选日期字符串甚至重新格式化它们,但它只会选出字符串中的第一个日期。我需要搜索并重新格式化字符串中所有日期的内容。
我可以使用以下内容来挑选第一个日期
= IFERROR(0 + MID(AB2,SEARCH(" ++ / ++ / ????",AB2),10),"&#34)
然后我可以使用以下内容更改格式
= TEXT(AC1," YYYY-MM-DD&#34)
但是,这只会选出第一个日期,甚至不会取代它。非常感谢任何帮助。
答案 0 :(得分:0)
使用标准Excel功能无法做到这一点。但是,您可以使用VBA和正则表达式来完成此任务。创建一个新模块并添加以下代码:
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)