Excel에서 줄 바꿈이있는 셀을 복사하여 메모장에 붙여 넣으면 텍스트가 한 줄에 붙여집니다. 왜 그런가요?
Excel에서 줄 바꿈이있는 셀을 복사하여 메모장에 붙여 넣으면 텍스트가 한 줄에 붙여집니다. 왜 그런가요?
답변:
스프레드 시트 작동 방식으로 인해 발생합니다. 데이터로 가득 찬 스프레드 시트가 있다고 가정하십시오. 전체 데이터 행을 복사 한 다음 메모장에 붙여 넣으려면 모든 데이터가 한 줄에 있어야합니다. 다른 행의 데이터를 복사하여 붙여 넣으려면 다음 행의 데이터가 한 줄에 있어야하기 때문입니다. 복사 한 첫 번째 행에 줄 바꿈이 있으면 데이터가 더 이상 두 개의 선형 행에 있지 않습니다. 메모장에서 데이터를 복사하여 스프레드 시트에 다시 복사하면 제대로 붙여 넣지 않습니다.
Alt+Enter
) 전체 0xD 0xA가 아닌 0xA 만 입력 LF
됩니다 CR/LF
. Excel은 이것을 해석하고 줄 바꿈을 표시하지만 일반 메모장은 예상하지 않기 때문에 줄 바꿈을 표시하지 않습니다 CR/LF
. 버그 이상으로 감지되는 형식의 차이이지만 여전히 올바른 이유입니다.
Windows에 이미 사전 설치된 Microsoft의 기본 텍스트 편집기 인 메모장을 사용하는 경우에도 마찬가지입니다.
그러나 PSPad 또는 Notepad ++ (고급 및 무료)와 같은 고급 텍스트 편집기를 사용하면 줄 바꿈이 전송됩니다.
엑셀 :
셀이 표시된 다음 메모장 ++에 복사하여 붙여 넣습니다 .
메모장에 붙여 넣은 내용 (Windows 기본 편집기) :
두 경우 모두 따옴표가 자동으로 추가되었습니다!
더 나은 편집기는 LineFeed (LF) 및 CarriageReturn (CR)과 같은 제어 문자를 표시하는 옵션도 제공합니다. 메모장 ++에서는 다음과 같습니다.
결론적으로 : 필요에 따라 도구를 선택하십시오. 편집기에서 셀 경계를 유지해야하지만 셀 내용이 약간 변경 될 수있는 경우 메모장을 사용하십시오. 줄 바꿈을 포함하여 셀 내용을 그대로 유지해야하고 셀 경계의 1 : 1 재현성이 중요하지 않은 경우 다른 편집기를 사용하십시오.
이러한 데이터의 대량 처리
셀 경계와 셀 내용을 동시에 1 : 1로 유지해야하는 경우 문제가 발생할 수 있습니다.
더 지능적인 솔루션이있을 수 있지만 그런 경우 내가 한 일은 내용을 읽고 줄 바꿈을 위해 자리 표시 자 문자열을 추가하는 모든 언어 (VBA, Python 또는 가장 좋아하는 언어)로 작은 프로그램을 작성하는 것입니다. "### Linebreak ###"(나중에 CR 및 LF 제어 문자로 대체 될 수 있음) 물론,이 작업은 제대로 작동하며 많은 양의 데이터를 처리해야하는 경우에만 의미가 있습니다.
추가 된 따옴표에도 문제가 발생할 수 있습니다. 이것들은 언뜻 보면 줄 바꿈이 포함되어 있어도 셀 경계를 유지하는 데 유용 할 수 있습니다. 그러나 셀에 원래 내용의 일부인 인용 부호가있을 수 있으며 새로운 문제가 발생합니다. 이에 대한 다양한 솔루션이 있지만주의를 기울여야합니다.
CR
LF
은 실제로 거기에 표시 되어 있기 때문에 LF
가득 차 있다고 가정 CR
LF
하고 변환 하기 때문에 실제로 존재 합니다.
켈 타리 의 답변 은 논리적 추론을 제공하는 반면,이 답변은 기술적 차이에 중점을 둡니다.
컴퓨팅에 사용되는 세 가지 다른 형태의 줄 바꿈이 있습니다.
LF
)를 사용합니다CR
)를 사용합니다.CRLF
) 의 조합을 사용합니다.이것은 타입 라이터가 작동하는 방식을 방해합니다.
Excel에서는 이러한 줄 바꿈을 조합하여 여러 줄이있는 셀을 나타냅니다.
Tab
문자 로 구분됩니다 .CRLF
문자 로 구분됩니다 .LF
문자 만 사용하여 각 줄을 구분 합니다.통합 문서를 .txt
파일 로 저장 하고 이러한 문자 표시를 지원하는 텍스트 편집기로 열면 나타납니다.
메모장 CRLF
은 개행으로 만 처리 되며 무시 LF
하거나 CR
스스로 처리 합니다. 그들은 여전히 문서에 있지만 어떤 식으로도 보이지 않습니다.
참고 : 메모장 ++은 줄 끝을 자동으로 조정하지만 일반 메모장은 그렇지 않으므로 앞뒤로 붙여 넣을 때이를 볼 수 없습니다.
LF
하다 메모장 단순히 눈에 띄게를 표시하지 않고, 메모장에 붙여 넣을 때 여전히 실제로 존재. (폭이 0 인 공간과 사실상 동일하게 렌더링됩니다.) 따라서 붙여 넣은 데이터를 메모장에서 Excel로 다시 복사하면 이러한 줄 바꿈이 포함됩니다 (Excel은 행의 크기를 자동으로 조정하지는 않지만).
CRLF
.
="A"&CHAR(13)&CHAR(10)&"B"
. 수식으로 생성 된 줄 바꿈은 Excel에서 보이지 않지만 "붙여 넣기 값"을 통해 복사 한 후 붙여 넣으면 제대로 작동합니다. "A<CRLF>B"
메모장에 수동으로 입력 하고 복사 하여 붙여 넣은 값 도 CRLF를 유지합니다.
LF
EOL이있는 텍스트 파일을 빠르게 읽을 수있게했습니다. 즉,이 찾기 LF
를 선택, 문자, Ctrl
+ C
, Ctrl
+ Home
, Ctrl
+ F
, Ctrl
+ V
, Enter
, Esc
, Enter
. 그리고 반복적으로 F3
, Enter
끝까지. [편집 : <kbd>가 댓글에서 작동하지 않습니까?]
Excel은 LF를 사용하여 셀 내의 새 줄을 나타냅니다. Windows는 일반적으로 줄 바꾸기에 CRLF를 사용하므로 메모장은이 줄을 줄 바꿈으로 간주하지 않습니다.
Notepad ++는 비교적 간단한 메모장보다 지능적이므로 LF를 줄 바꾸기로 해석합니다.
"
되고 Notepad ++는 모든 줄 끝을 일치하도록 정규화합니다. 여기를 참조 하십시오 . .txt
메모장 ++ 로 다른 이름으로 저장 하고 열면 여러 줄 셀만 있습니다 LF
. 여기를 참조 하십시오 .