Excel 날짜를 문자열로 변환


125

Excel 시트의 셀에는 다음과 같은 날짜 값이 있습니다.

01/01/2010 14:30:00

해당 날짜를 텍스트로 변환하고 텍스트가 날짜와 정확히 똑같이 보이기를 원합니다. 따라서 Date 값은 01/01/2010 14:30:00비슷해야 01/01/2010 14:30:00하지만 내부적으로는 Text 여야합니다.

Excel에서 어떻게 할 수 있습니까?


6
많은 snobbish 프로그래머들은 Excel이 프로그래밍 환경이 아니기 때문에이 질문을 닫을 수 있다고 주장합니다. 나는 그들이 당신에게 경고하지 않기를 바랍니다.
Nick Fortescue

4
Excel은 완전한 IDE가 아닐 수 있지만 Excel로 데이터가 제공되고 Excel에서 결과가 필요한 경우 일부 VBA 프로그래밍은 모든 종류의 의미가 있습니다.
brichins

답변:


241
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")

(24 시간)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")

(표준 시간)


3
특히 서식 설정 방법을 알기 위해 TEXT 기능에 대한 전체 참조 :이 페이지의 날짜 및 시간 형식에 대한 지침 참조 office.microsoft.com/en-us/excel-help/…
codea

이 변환을 수행하려고하면 "#AD?" 텍스트에 문제가 있다고 말합니다.
AloneInTheDark

1
@AloneInTheDark 코덱의 링크를 따라갈 때 영어 형식을 사용하는 Windows OS가있는 경우에만 형식이 작동합니다. 내 네덜란드어 형식을 사용합니다. 예를 들어 "DD / MM / YYYY hh : mm : ss"는 네덜란드어에서 'year'는 'jaar'및 'hour'이므로 "DD / MM / JJJJ uu : mm : ss"가됩니다. 'uur', 즉 다른 시작 문자입니다 ( 'day', 'month', 'minutes'및 'seconds'는 네덜란드어와 영어에서 동일한 문자로 시작합니다). 기본적으로 형식의 시작 문자를 OS의 언어로 번역하십시오.
Sem Vanmeenen

3
그리고 반대 변환은DATEVALUE("01/01/2010")
Zenadix

날짜 표시에 이미 사용중인 형식을 지정하지 않고 사용할 수 있습니까?
palswim

8

VBA 접근 방식은 다음과 같습니다.

Sub change()
    toText Sheets(1).Range("A1:F20")
End Sub

Sub toText(target As Range)
Dim cell As Range
    For Each cell In target
        cell.Value = cell.Text
        cell.NumberFormat = "@"
    Next cell
End Sub

프로그래밍없이 솔루션을 찾고 있다면 질문은 수퍼 유저로 이동해야합니다.


6

다른 옵션이 있습니다. Excel에 내장 된 'Text to Columns'마법사를 사용하십시오. Excel 2007의 데이터 탭에 있습니다.

하나의 열을 선택한 경우 파일 형식 및 구분 기호의 기본값이 작동하면 열의 데이터 형식을 변경하라는 메시지가 표시됩니다. 텍스트를 선택하면 텍스트 형식으로 설정되어 날짜로 저장되지 않습니다.


4

''문자를 사용하는 일부 상황에서는 사전에 작동하지만 CSV에 저장하고 다시로드하면 불가능합니다.

'01/01/2010 14:30:00

4

TEXT () 수식을 작동시킬 수 없습니다

가장 쉬운 해결책은 붙여 넣기 전에 열을 텍스트로 설정 한 상태에서 붙여 넣기를 메모장에 복사하고 Excel로 다시 복사하는 것입니다.

아니면 이런 식으로도 똑같이 할 수 있습니다

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)


1
내가 이해했기 때문에 언어 설정이 적용되지 않는 유일한 작동 방법입니다. 작업 내용을 공유하려는 경우 TEXT ()를 사용하면 문제가 발생합니다. 한 국가 (예 : 독일) 내에서도 독일어 및 영어 구성을 가진 사람들을 찾을 수 있습니다.
Dr. V

1
큰 감사와 공감! = TEXT (파이썬 라이브러리 수식)를 사용할 수 없기 때문에 저에게
효과적입니다.

1

프로그래밍을 사용하지 않는 경우 다음을 수행하십시오. (1) 열을 선택하고 (2) 마우스 오른쪽 버튼을 클릭하고 셀 서식을 선택하십시오. (3) "사용자 정의"를 선택하십시오. (4) "유형 :"바로 아래에서 dd / mm / yyyy hh : mm을 입력하십시오. : ss


0

Excel 2010에서 marg의 답변 은 내 스프레드 시트에 가져온 일부 데이터 (가져온 데이터)에 대해서만 작동했습니다. 다음 솔루션은 모든 데이터에서 작동했습니다.

Sub change()
    toText Selection
End Sub

Sub toText(target As range)
Dim cell As range
Dim txt As String
    For Each cell In target
        txt = cell.text
        cell.NumberFormat = "@"
        cell.Value2 = txt
    Next cell
End Sub

0

나는 그 질문이 출판 된 해에 대해 전혀 모른다. 지금 늙었을 수도 있습니다. 따라서 내 게시물 이후에 내 대답이 향후 비슷한 질문에 대한 참조가 될 것으로 기대합니다.

나는 거기에있는 누군가가 내가주고 자하는 것과 비슷한 답변을 이미 받았는지 모른다. 그러나 나는 그것을 보지 못했습니다. 여기에 TEXT 대신 CStr을 사용하는 대답이 있습니다.

셀 A1에 날짜가 있고 VBA 코드를 사용한다고 가정합니다.

Dim strDate As String

'Convert to string the value contained in A1 (a date)
strDate = CStr([A1].Value)

그런 다음 문자열 함수 (MID, LEFT, RIGHT, LEN, CONCATENATE (&) 등)를 사용하여 일반 문자열로 조작 할 수 있습니다.


-1

Excel에서 여전히 텍스트를 날짜로 변환하지 않았으므로 선택한 답변이 작동하지 않았습니다. 여기 내 해결책이 있습니다.

첫 번째 열 A에 유형의 데이터가 2016/03/25 21:20:00있지만 텍스트로 저장되어 있다고 가정 하십시오. 그런 다음 B 열 쓰기 =DATEVALUE(A1)및 C 열 쓰기=TIMEVALUE(A1) .

그런 다음 D 열 =B1+C1에서 날짜 및 시간의 숫자 형식을 추가하십시오.

마지막으로 E 열을 마우스 오른쪽 버튼으로 클릭하고을 선택하여 D에서 E 열로 값을 복사합니다 Paste Special -> Paste as Values.

E 열의 숫자 값을 강조 표시하고 데이터 유형을 날짜로 변경하십시오 YYYY-MM-DD HH:MM:SS. 양식의 사용자 정의 날짜를 사용하는 것이 좋습니다.

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