Excel에서 비표준 날짜 형식을 구문 분석하려면 어떻게합니까?


24

yyyy-mm-dd와 같은 형식의 날짜와 같은 문자열 값의 열이 있습니다 2011-Sep-13. 수식에서 사용할 수 있도록 이들을 Excel 날짜 일련 번호로 변환해야합니다.

DATEVALUE는이 형식을 인식 할 수 없습니다. 내가 #VALUE!시도하면 그냥 얻을 . 또한 대부분의 프로그래밍 언어와 달리 사용자 정의 날짜 형식을 사용하지 않습니다.

임의의 날짜 형식을 Excel 날짜 값으로 변환하려면 어떻게해야합니까?

답변:


21

문자열 구문 분석을 수행 한 다음 적절한 형식의 값을 DATEVALUE다음과 같이 전달해야합니다 .

=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))

(편집 : 업데이트 된 수식-테스트되었으며 하나의 예에서 작동합니다-입력에 따라 다듬어야 할 수도 있습니다)


1
+1 : 게시 할 때 클립 보드에 표시 할 준비가되었습니다. = DATEVALUE (RIGHT (A1,2) & MID (A1, FIND ( "-", A1), 5) & MID (A1,3,2))
Excellll

허, 난 그냥 비트를 다시 정렬 생각하지 않았다. 감사!
Craig Walker

2
8 년 후 여러 Excel 버전을 사용하더라도 여전히 가장 관련성이 높은 답변입니다! Excel이 기능을 제공 할 수 있기를 바랍니다PARSEDATE([string_value], [date format])
Manu Manjunath

5

월 이름은 Windows 국가 별 옵션에 따라 다릅니다. 따라서 Windows 국가 별 옵션이 우크라이나어로 설정되어 있으면 DATEVALUE는 #VALUE를 반환합니다. "07-Nov-2012"에 대해 "07-Лис-2012"를 허용합니다.


1
매우 중요한 메모 !! 그것은 엑셀은 기본적으로 영어 월 / 일 이름 + 두 지역 설정을 인식하지 않는 것을 유감
athanassis

1

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.