ABOUT ME

-

  • 엑셀 줄바꿈 특수문자 없애기
    IT(Tip) 2023. 4. 5. 20:00

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

     

     

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

    엑셀 작업을 할 때 엑셀 텍스트 줄바꿈 즉, 엑셀 셀 줄바꿈을 할 때 엑셀 엔터 줄바꿈(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: 충청북도 충주시 연원562
    cols2: 충청북도 충주시 연원562
    
    '충청북도 충주시 연원5길 62'
    '충청북도 충주시 연원5길 62\n'
    .
    .
    .

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

     

    good4me.co.kr

     

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

     

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

     

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


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

     

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

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

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

Designed by goodthings4me.