SAP에서 리포트 프로그램을 실행해서 나온 결과를 로컬 파일로 저장하거나 ABAP의 인터널 테이블 내용을 로컬 파일로 저장한 뒤 엑셀에서 바로 열어서 작업하는 일이 무척 많습니다.
일반적으로 SAP에서 로컬 파일로 저장할 때 확장자를 xls로 저장해서 엑셀에서 바로 열어 보는 경우가 대부분입니다.
하지만 엄밀히 따지면 SAP에서 로컬 파일로 저장한 파일은 실제로는 csv 형식의 텍스트 파일 입니다.
CSV 형식의 텍스트 파일이기 때문에 엑셀에서 바로 열리지만 메모장 같은 텍스트 편집기에서도 잘 열리게 됩니다.
물론 ABAP 프로그램을 이용하여 엑셀 형식의 파일로 저장할 수도 있지만 SAP에서 기본적인 로컬 파일 저장은 CSV 형식의 텍스트 파일임을 염두 해 두시기 바랍니다.
가끔 SAP에서 내려받은 xls 파일을 엑셀에서 바로 열 때 예기치 못한 현상이 발생하는 경우가 있습니다.
▶ 첫 번째 현상은 두 개의 셀이 하나로 합쳐지고 이후 셀들이 모두 한 셀씩 앞으로 당겨지는 현상이 있습니다.
▶ 두 번째 현상은 특정 셀 하나에 그 뒤의 셀을 포함해서 여러 행의 셀 데이터가 하나로 뭉쳐져서 들어오는 현상이 있습니다.
저장하는 항목 중에 자재 내역과 같이 텍스트 필드가 포함 된 경우 위와 같은 이상 현상이 자주 발생하며 특히 두 번째 현상인 여러 셀이 하나로 뭉쳐지는 현상이 더욱 빈번히 발생합니다.
이번 글에서는 SAP에서 저장한 파일을 엑셀로 바로 열 때 특정 셀이 뭉쳐지는 현상을 해결하는 방법에 대해 알아보겠습니다.
※ 참고로 SAP에서 로컬 파일을 열거나 로컬 파일을 저장할 때 보안 경고창이 뜨는 경우가 있습니다. 이를 경우 SAP GUI 보안 경고창이 뜨지 않도록 보안 구성을 비활성화 하는 방법 글을 참고하세요.
SAP에서 저장한 파일을 열 때 엑셀의 셀이 합쳐지거나 뭉쳐지는 원인
1. 두 개의 셀이 하나의 셀로 합쳐지고 그 뒤의 셀들이 한 셀씩 앞으로 당겨지는 현상은 합쳐지는 셀의 데이터가 한글 2바이트가 1바이트로 잘려서 생기는 현상일 때가 많습니다.
1바이트로 잘리면서 끝에 ‘?’ 기호가 삽입되고 이것으로 인해 뒤의 셀 데이터가 합쳐지게 되는 것입니다.
2. 하나의 셀에 여러 셀 또는 여러 행이 모두 뭉쳐서 들어오는 현상은 쌍따옴표(“)가 하나만 붙어 있기 때문입니다.
일반적으로 쌍따옴표는 시작과 끝, 이렇게 쌍으로 붙어 있게 됩니다. 하지만 SAP에서 내릴 때 어떤 이유로 하나만 붙게 되는 경우 엑셀에서는 짝이 나올때까지 뒤의 데이터가 모두 하나의 셀 데이터로 인식하게 됩니다.
아래 화면은 SAP에서 내려받은 파일을 텍스트 편집기에서 열어본 화면입니다.
빨간 별표로 표시한 부분이 문제가 되는 부분입니다. (이해를 돕기 위해 직접 삽입을 했습니다.)
4번 행이 1번의 문제 현상에 대한 예 이고, 7번 행과 11번 행은 2번의 문제 현상에 대한 예 입니다.
▼ 위의 파일을 엑셀에서 바로 열었을 때 화면입니다.
4번 행이 1번 현상에 의해 원래 C셀의 내용이 B셀과 합쳐지고 D셀부터 한 셀씩 앞으로 당겨졌습니다.
7번 행의 경우 원래 파일의 7번 행부터 11번 행까지 B셀에 모두 합쳐져서 들어온 모습입니다.
SAP에서 저장한 파일을 열 때 엑셀의 셀이 합쳐지거나 뭉쳐지는 현상 해결 방법
▶ 앞 단락에서 원인을 알았다면 해결 방법은 간단해 집니다.
1. SAP에서 내려받은 파일을 먼저 메모장 같은 텍스트 편집기로 엽니다. (대용량 파일인 경우 AcroEdit 추천)
2. 바꾸기 메뉴를 실행해서 쌍따옴표(“)와 물음표(?)를 모두 Blank(“”)로 바꿉니다.
– 아래 화면처럼 바꾸기에는 아무것도 입력하지 않고 모두 바꾸기 하면 됩니다.
3. 쌍따옴표와 물음표를 모두 없애고 저장을 합니다.
4. 이렇게 저장한 파일을 엑셀로 엽니다.
5. 아래 화면은 쌍따옴표와 물음표를 모두 없애고 열어본 엑셀 화면입니다. 원하는 대로 모든 데이터가 엑셀로 잘 열렸습니다.
마무리
이상으로 SAP에서 저장한 파일을 엑셀로 바로 열 때 특정 셀이 뭉쳐지는 현상을 해결하는 방법에 대해 알아보았습니다.
참고로 가져오는 데이터 양이 많지 않은 경우 파일이 저장하기 전에 REPLACE 함수를 사용하여 쌍따옴표(“)나 물음표(?)를 모두 제거하고 저장하는 방법도 있습니다. 데이터 양이 많은 경우 REPLACE 함수가 처리되는데 시간이 많이 소요될 수 있으니 잘 고려해 보시기 바랍니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
♥ 이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.