글목록

2021년 4월 11일

Module 3. 여러 파일을 하나의 워크시트에 담기-(1)시작하며

엑셀로 아스키파일로 받은 원데이터를 열어서 병합하고, 편집하는 작업을 많이 하시는 분은 많지 않을 수도 있겠습니다. 공학적인 분석 결과 파일을 적당한 소프트웨어를 이용하여 한꺼번에 Import를 하고, 한꺼번에 플로팅하는 소프트웨어들이 많이 있기 때문에 불필요할 수도 있고... 그냥 묵묵히 반복 작업을 하는 것이 성실함의 척도라고 보시는 분들도 계시기 때문이지요. 그러나, 그런 상용소프트웨어를 업무용으로 사용하지 못하는 경우라든지(저처럼 말이지요..), 혹은 그런 소프트웨어조차도 제 입맛에 맞지 않다면, 엑셀 매크로를 적절하게 활용하는 것도 좋을 것 같습니다.


저의 경우, 30개 성분이 가로 방향으로 나열되어있고, 길이 방향으로 수천~수만개의 상세 데이터가 포함된 데이터를 정리해야하는 경우가 있습니다. 그것도 적은 경우 3~4개, 많은 경우 수십개의 CSV 파일로 데이터를 받아서 엑셀로 정리를 합니다.

다행히 이 데이터들은 각 열에는 똑같은 성분에 대한 정보를 가지고 있습니다만, 길이 방향으로 데이터 수가 다른 경우가 있습니다.

이 데이터 중에 제가 필요한 데이터는 약 5~10개 열의 데이터이며, 1개의 시트에 필요한 데이터만 수집하면 그래프를 그리거나, 최대, 최소값을 구하거나, 혹은 어떤 트랜드를 구하는 등.. 각각의 측정 결과를 빠르게 확인할 수 있겠지요.


이번엔 다른 분석을 진행합니다. 이 파일은 각각 X, Y값으로 구성된 2개 열의 데이터로 구성되어 있고, CSV (콤마로 데이터가 구분된 파일)가 아닌 TXT 혹은 DAT 확장자이며, '탭' 또는 '공란'으로 구분되어 있습니다. 이번에도 만찬가지로 10개가 넘는 파일을 받았고, 한꺼번에 워크시트로 합쳐서 분석하려고 합니다.


공통점을 찾아보면, 여러개의 파일을 열어서 '필요한' 부분만 잘라서 한개의 워크시트로 옮기는 작업을 한다는 것입니다. 그 이후에 데이터에서 어떠한 부분을 어떻게 해석할지, 혹은 옮겨진 데이터를 어떻게 가공할지 결정합니다.

그런데, 엑셀에 CSV나 TXT 파일을 끌어오거나 열게 되면, 구분자를 지정하는 창이 뜨고, 1개의 워크시트만 있는 엑셀 파일로 열립니다. 2개를 열면 2개의 엑셀창이 생성되고, 각각 1개의 시트만 있지요. 데이터들을 1개 시트에 모으려면, 일일이 엑셀창을 선택하고, 범위를 선택해서 복사해와야합니다. 그럴바에야 Notepad++ 같은 프리웨어로 열어서 엑셀에 붙여넣는 것이 더 실용적일 수 있습니다. 물론 특정 행이나 열을 선택하기가 곤란하다는 것 빼면 말입니다.

매크로란, 공통적인 반복 작업을 하기 위해 만든 도구라는 점을 감안하면, 이러한 반복작업은 매크로로 구현하는 것이 적절할 것 같습니다. 따라서, 다음과 같이 매크로를 구성하려고 합니다.


<1번 매크로>
1. 동일한 구조를 갖는 아스키 파일을 여러개 선택하여 열기
2. 선택된 파일의 인코딩, 구분자 등을 확인하여 1개 워크북 내 각각 시트에 열기

<2번 매크로>
1. 잘라내고 싶은 데이터 영역(셀, 열, 행, 영역...)만 사용자가 선택
2. 선택된 영역을 1개의 워크시트에 병합하기


데이터 파일의 형식이 어떠하든 위의 매크로를 작성해두면, 클릭 몇번만으로도 수십개의 데이터 파일에서 원하는 영역만 가져올 수 있습니다. 제 주변에도 열심히 고생해서 분석했는데, 데이터를 열고 정리하는데 시간이 걸리다보니, 막상 그 속의 데이터를 비교하고 해석할 시간이 없어서 결론을 내지 못하는 경우를 많이 봤습니다. 인간이다보니 반복작업을 하다가 지쳐버리는 것이죠.

다음 글에서는 위의 순서대로 매크로를 작성하도록 하겠습니다.


댓글 없음:

댓글 쓰기

의견이나 질문이 있으신 분은 언제든지 댓글을 달아주세요~

많이 본 글 :