본문 바로가기
IT(Tip)

엑셀 줄바꿈 특수문자 없애기

by good4me 2023. 4. 5.

goodthings4me.tistory.com

엑셀 줄바꿈 특수문자가 들어있는 엑셀 파일 작업은 어떻게 할까요? 구글 스프레드시트 자료를 받아서 도로명주소 맞추는 작업을 하려고 했는데, 문제가 발생했는데...

 

 

엑셀 줄바꿈 특수문자 제거하는 방법

엑셀 작업을 할 때 엑셀 텍스트 줄바꿈 즉, 엑셀 셀 줄바꿈을 할 때 엑셀 엔터 줄바꿈(Alt+Enter)를 입력한다. 그런데 이번에 구글 스프레드 시트를 넘겨받아서 데이터 전처리 작업을 하던 중 줄바꿈이 되어 있는지도 알 수 없는 경우가 발생한 것이다.

눈으로는 정확히 일치하는 두 개의 셀값이 비교를 하니 FALSE가 나왔다. 정말 신기하게도... 당황하셨어요?라는 개그맨 멘트가 생각이 난다.


혹시 몰라서 바꾸기(Ctrl+h)로 공백 2개 제거하고, SUBSTITUTE() 함수와 TRIM() 함수로 공백을 또 제거해 보았지만 그대로였고, LEN() 함수로 해당 셀의 크기를 보니, 이게 뭔 일인가!!

 

엑셀 셀값 비교
엑셀 셀값 비교


숫자가 큰 부분을 더블클릭해 보니 엑셀 셀 줄바꿈 결과인 엔터값이 있었다.

 

엑셀 셀의 엔터값 확인
엑셀 셀의 엔터값 확인


뭔가 좀 이상해서 파이썬으로 각 셀을 불러서 repr() 함수로 확인해 보니 역시나 '\n' 특수문자가 보인다.

import openpyxl

## 엑셀 파일 읽기 - 워크북, 워크시트
wb1 = openpyxl.load_workbook('./test/spe_test.xlsx')
ws1 = wb1['Sheet1']  # rwb.active
maxRow = ws1.max_row  # 최대 row
# print(maxRow)


## 추출하기
for r in range(2, maxRow + 1):
    gubun_row = ws1.cell(r, 1).value
    cols1 = ws1.cell(r, 2).value  # 셀 읽어오기
    cols2 = ws1.cell(r, 3).value  # 셀 읽어오기
    print(f'\ncols1: {cols1}\ncols2: {cols2}')
    print(f'{repr(cols1)}\n{repr(cols2)}')

    if r == 10:
        break
 

[실행 결과]
cols1: 충청북도 충주시 중원대로 3379
cols2: 충청북도 충주시 중원대로 3379

'충청북도 충주시 중원대로 3379'
'충청북도 충주시 중원대로 3379\n'

cols1: 충청북도 충주시 연원5길 62
cols2: 충청북도 충주시 연원5길 62

'충청북도 충주시 연원5길 62'
'충청북도 충주시 연원5길 62\n'
.
.
.

즉, 구글 스프레드시트에서 받은 자료라고 넘겨받은 자료에는 개행 문자 (엑셀 엔터 줄바꿈 결과)가 있었다는 것이다.

 

good4me.co.kr

 

구글에서 엑셀의 이 문제를 해결하는 방법을 찾아보니 엑셀의 바꾸기(Ctrl+h)기능을 통해 줄바꿈 문자를 간단하게 없앨 수 있었다.

 

줄바꿈 삭제하기
줄바꿈 삭제하기

 

  • 바꾸기 단축키(Ctrl+h)를 누르고
  • '찾을 내용'에는 엑셀 셀 줄바꿈 단축키인 Ctrl+j를 입력 (아무것도 입력되지 않으나 줄바꿈이 입력되었음에 주의)
  • '바꿀 내용'에는 아무것도 입력하지 않음
  • 그리고 '모두 바꾸기' 버튼 클릭


그러면 줄바꿈이 삭제되어 두 셀 값 비교 결과가 TRUE 값으로 변경된다.

 

※ 위 제거 기능을 사용해 본 결과로 얻은 팁(Tip)

이 방법은 해당 엑셀 시트에서 한번만 먹히는 것 같다.

다시 하고 싶은 경우 엑셀을 닫았다가 다시 열어서 그래도 하니 정상적으로 해결되었다.

댓글