次のセルがある場合:
Tuesday, April 16th 2009
その文字列を Excel で認識される日付形式に変換するにはどうすればよいですか。MID() および FIND() 関数を使用する必要があると思います。
これは、VBAからユーザー定義関数として機能する関数です。
Function GetDate(InString As Range) As Date
Dim newDate As Date
Dim tmpDate As String
'Sample Date
'Tuesday, April 16th 2009
'Remove the Day of the Week.
tmpDate = Trim(Mid(InString, InStr(InString, ",") + 1))
'Get rid of "th"
tmpDate = Replace(tmpDate, "th ", " ")
'Get rid of "rd"
tmpDate = Replace(tmpDate, "rd ", " ")
'Get rid of "nd"
tmpDate = Replace(tmpDate, "nd ", " ")
'Get rid of "st"
tmpDate = Replace(tmpDate, "st ", " ")
'Convert string to date
newDate = DateValue(tmpDate)
GetDate = newDate
End Function
テキストがA1にあると仮定すると、それを別々の部分に分割し、それを使用DATEVALUE
してまとめることができます.
B1: =MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+2)-FIND(" ",A1))
B2: =IFERROR(VALUE(MID(A1,FIND(" ",A1,FIND(" ",A1)+2),3)),VALUE(MID(A1,FIND(" ",A1,FIND(" ",A1)+2),2)))
B3: =RIGHT(A1,4)
B4: =DATEVALUE(B2&" "&B1&" "&B3)
または、一度に実行できます。
=DATEVALUE(IFERROR(VALUE(MID(A1,FIND(" ",A1,FIND(" ",A1)+2),3)),VALUE(MID(A1,FIND(" ",A1,FIND(" ",A1)+2),2)))&" "&MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+2)-FIND(" ",A1))&" "&RIGHT(A1,4))