[excel] Excel에서 특정 텍스트 값을 날짜로 자동 변환하지 못하도록 중지

누군가가 특정 필드에 대해 내 CSV에 추가 할 수있는 토큰이 있는지 알고 있습니까? 그래서 Excel은 날짜로 변환하려고하지 않습니까?

내 응용 프로그램에서 .csv 파일을 작성하려고하는데 값 중 하나가 Excel에서 자동으로 텍스트를 날짜로 변환하는 날짜처럼 보입니다. 모든 텍스트 필드 (날짜처럼 보이는 필드 포함)를 큰 따옴표 안에 넣으려고했지만 아무런 효과가 없습니다.



답변

큰 따옴표 앞에 ‘=’를 넣으면 원하는 것을 얻을 수 있습니다. 데이터를 텍스트로 만듭니다.

예. = “2008-10-03”, = “추가 텍스트”

편집 (다른 게시물에 따라) : Jeffiekins가 지적한 Excel 2007 버그 때문에 Andrew가 제안한 솔루션을 사용해야합니다 ."=""2008-10-03"""


답변

나는 이것이 오래된 질문이라는 것을 알고 있지만 문제는 곧 사라지지 않습니다. CSV 파일은 대부분의 프로그래밍 언어에서 쉽게 생성 할 수 있으며 일반 텍스트 편집기를 사용하는 크런치에서 사람이 읽을 수있는 작고 읽기 편하며 유비쿼터스입니다.

문제는 텍스트 필드의 날짜 뿐만 아니라 숫자 도 텍스트에서 숫자로 변환되는 것입니다. 이것이 문제가되는 몇 가지 예 :

  • 우편 번호
  • 전화 번호
  • 정부 ID 번호

때로는 하나 이상의 0으로 시작할 있으며 숫자로 변환하면 버려집니다. 또는 값에 수학 연산자와 혼동 될 수있는 문자가 포함되어 있습니다 (날짜 : /,-).

앞에서 언급 한 것처럼 “prepending =”솔루션 이 이상적이지 않다고 생각할 수있는 두 가지 경우 는

  • 파일을 MS Excel 이외의 프로그램으로 가져올 수있는 경우 (MS Word의 편지 병합 기능이 떠오름)
  • 인간의 가독성이 중요한 곳.

이 문제를 해결하기위한 해킹

값에 숫자가 아닌 문자 및 / 또는 날짜가 아닌 문자를 사전 / 추가하면 값이 텍스트로 인식되고 변환되지 않습니다. 인쇄되지 않은 문자는 표시된 값을 변경하지 않기 때문에 좋습니다. 그러나 일반 이전 공백 문자 (\ s, ASCII 32)는 Excel에서 잘린 다음 값이 계속 변환되므로이 기능이 작동하지 않습니다. 그러나 잘 작동하는 다양한 다른 인쇄 및 비 인쇄 공간 문자가 있습니다. 그러나 가장 쉬운 방법 은 간단한 탭 문자 (\ t, ASCII 9)추가 (뒤에 추가)하는 것입니다.

이 방법의 장점 :

  • 키보드 또는 기억하기 쉬운 ASCII 코드 (9)로 제공
  • 수입을 귀찮게하지 않습니다.
  • 일반적으로 편지 병합 결과를 방해하지 않습니다 (템플릿 레이아웃에 따라 다름). 일반적으로 줄 끝에 넓은 공간을 추가합니다. (그러나 이것이 문제가되는 경우 너비가 0 인 공간 (ZWSP, 유니 코드 U + 200B)과 같은 다른 문자를보십시오.
  • 메모장 등에서 CSV를 볼 때 큰 방해가되지는 않습니다.
  • Excel (또는 메모장 등)에서 찾기 / 바꾸기로 제거 할 수 있습니다.
  • CSV 를 가져올 필요는 없지만 Excel에서 CSV 를 열려면 두 번 클릭하면 됩니다.

탭을 사용하지 않으려는 이유가있는 경우 유니 코드 테이블에서 다른 것이 있는지 찾아보십시오.

다른 옵션

최신 MS Excel 버전에서 가져 오기 위해 특정 형식을 허용하고 .XLS 형식과 비슷한 옵션을 더 많이 허용하는 XML 파일을 생성하는 것이 될 수도 있지만 이에 대한 경험은 없습니다.

다양한 옵션이 있습니다. 요구 사항 / 응용 프로그램에 따라 하나가 다른 것보다 낫습니다.


부가

MS Excel의 최신 버전 (2013+)은 더 이상 스프레드 시트 형식으로 CSV를 열지 않는다고 말해야합니다. 워크 플로에서 속도가 한 번 더 높아져 Excel의 유용성이 떨어집니다. 예를 들어이 Stackoverflow : Excel 2013에서 .csv 파일을 올바르게 표시하는 방법은 무엇입니까?
.


답변

Jarod의 솔루션과 Jeffiekins가 제기 한 문제를 해결하면서 수정할 수 있습니다.

"May 16, 2011"

"=""May 16, 2011"""


답변

비슷한 문제가 있었고 이것은 CSV 파일 내용을 편집하지 않고도 도움이되는 해결 방법입니다.

파일 이름을 “.csv”이외의 다른 이름으로 지정할 수있는 경우 “Myfile.txt”또는 “Myfile.csv.txt”와 같이 “.txt”확장명으로 파일 이름을 지정할 수 있습니다. 그런 다음 끌어서 놓기가 아니라 파일-> 열기 또는 가장 최근에 사용한 파일 목록을 사용하여 Excel에서 열면 “텍스트 가져 오기 마법사”가 제공됩니다.

마법사의 첫 페이지에서 파일 유형으로 “구분”을 선택하십시오.

마법사의 두 번째 페이지에서 “,”를 구분 기호로 선택하고 값을 따옴표로 묶은 경우 텍스트 한정자를 선택하십시오.

세 번째 페이지에서 모든 열을 개별적으로 선택하고 “일반”대신 “텍스트”유형을 지정하여 Excel이 데이터를 엉망으로 만드는 것을 막으십시오.

이것이 당신이나 비슷한 문제를 가진 누군가를 돕기를 바랍니다!


답변

경고 : Excel ’07 (적어도) 버그가 있습니다 : 필드의 내용에 쉼표가 있으면 = “필드, 내용”을 올바르게 구문 분석하지 않지만 쉼표 뒤에있는 모든 것을 인용 부호에 관계없이 다음 필드.

내가 찾은 유일한 해결 방법은 필드 내용에 쉼표가 포함될 때 =를 제거하는 것입니다.

이것은 Excel에서 정확히 “올바른”을 나타내는 것이 불가능한 일부 필드가 있음을 의미하지만 지금까지 아무도 놀라지 않을 것이라고 믿습니다.


답변

C #으로 CSV 파일에 쓸 문자열을 만드는 동안 다음과 같이 형식을 지정해야했습니다.

"=\"" + myVariable + "\""


답변

2018 년

나를 위해 일한 유일한 올바른 솔루션 (및 CSV를 수정하지 않은 경우) ).

엑셀 2010 :

  1. 새 통합 문서 만들기
  2. 데이터> 텍스트에서> CSV 파일 선택
  3. 팝업에서 “구분”라디오 버튼을 선택한 다음 “다음>”을 클릭하십시오.
  4. 구분 기호 확인란 : “쉼표”만 선택하고 다른 옵션을 선택 취소 한 다음 “다음>”
  5. “데이터 미리보기”에서 맨 오른쪽으로 스크롤 한 다음 Shift 키를 누른 상태에서 마지막 열을 클릭하십시오 (모든 열이 선택됨). “열 데이터 형식”에서 “텍스트”라디오 버튼을 선택한 다음 “마침”을 클릭하십시오.

Excel Office365 : (클라이언트 버전)

  1. 새 통합 문서 만들기
  2. 데이터> 텍스트 / CSV에서> CSV 파일 선택
  3. 데이터 유형 감지> 감지하지 않음

참고 : Excel office365 (웹 버전)는이 글을 쓰고 있으므로 그렇게 할 수 없습니다.