답변:
문자열 구문 분석을 수행 한 다음 적절한 형식의 값을 DATEVALUE
다음과 같이 전달해야합니다 .
=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))
(편집 : 업데이트 된 수식-테스트되었으며 하나의 예에서 작동합니다-입력에 따라 다듬어야 할 수도 있습니다)
PARSEDATE([string_value], [date format])
월 이름은 Windows 국가 별 옵션에 따라 다릅니다. 따라서 Windows 국가 별 옵션이 우크라이나어로 설정되어 있으면 DATEVALUE는 #VALUE를 반환합니다. "07-Nov-2012"에 대해 "07-Лис-2012"를 허용합니다.
Excels DateValue 함수는 지역에 따라 다릅니다. 유럽에서 "04-11-2008"과 같은 문자열을 구문 분석하면 11 월 4 일로, 미국에서는 4 월 11 일으로 구문 분석됩니다.
이 문제를 해결하려면 DateSerial 함수를 사용하고 구문 분석을 직접 수행하십시오. 이것은 또한 자신의 비표준 날짜 형식에 쉽게 적용 할 수 있습니다.
' Region independent date parsing
' Expects a datetimestr in the format "04-11-2008 21:39:39"
' The function VBA.DateTime.DateValue() mixes up the date and month in different regions
Function parseDateTime(dateTimeStr As String) As Date
Dim parts As Variant
parts = VBA.Strings.Split(dateTimeStr, " ")
Dim datePart As String, timePart As String
datePart = parts(0)
timePart = parts(1)
Dim dateParts As Variant, day As Integer, month As Integer, year As Integer
dateParts = VBA.Strings.Split(datePart, "-")
day = dateParts(0)
month = dateParts(1)
year = dateParts(2)
Dim parsed_date As Date, parsed_time As Date
parsed_date = VBA.DateTime.DateSerial(year, month, day)
parsed_time = VBA.DateTime.TimeValue(timePart)
parseDateTime = parsed_date + parsed_time
End Function