728x90

제목부터가 너무 길죠? 하나씩 따지면 별로 어렵지 않습니다만 이슈를 구체적으로 나열하기가 귀찮아서 몇 달을 수작업으로 해 왔던 문제입니다.
 
저는 매일매일 웹으로 일을 해주고 있는 고객사가 있습니다. 이 고객사는 매 영업일마다 N개의 프로젝트를 제게  할당하고, 그 프로젝트에는 n개의 작업이 있습니다. 그리고 프로젝트별로 작업별/match별 처리한 단어 수가 나열되어 있는 CSV 파일을 다운로드할 수 있습니다.

CSV 한 파일이 대충 이런 양식입니다. 여기서 TASK는 각 행이고 한 프로젝트는 마지막 Grand Total, 총 합계죠. 문제는 제가 2주에 한 번씩 고객사에다가 청구할 때는 이 프로젝트 파일이 80~100개 정도 되는데 총괄표로 프로젝트 파일 명, 프로젝트 작업 일자, 그리고 %별 단어 수를 일목요연하게 정리해야 합니다. 그러면 
 
프로젝트 파일 명: 파일별로 이름바꾸기를 클릭해서 파일 명을 복사한다
프로젝트 생성 일자: 이미 날짜 폴더 별로 정리되어 있기 때문에 그대로 갖다 쓴다
프로젝트별 매치율별 단어 수: 마지막 행을 총괄표에 갖다붙이기 하고 적당히 편집한다
 
이렇게 총괄표를 만들고 각 일자별 폴더-파일과 함께 FTP에 업로드하는데 총 한 시간~한 시간 반이 걸립니다. 이 짓을 미련하게 반복했던 이유는...언제까지 이 프로젝트를 할 지 몰라서요. 언제 짤릴지 모르는데 자동화를 왜 하나 싶었는데 생각보다 오래 가는 겁니다. 그리고 지금이 미국 독립기념일 주간이라 일도 많지 않아서 자동화를 해 보았습니다. 뭐 독창적인 건 아니고 여기저기 구글링이나 유튜브 보고 요령별로 베낌.
 
0. 총괄 폴더를 만들고 2주치 CSV 파일 100여개를 다 때려넣습니다.(하지만 일자별 폴더도 FTP에 업로드하여야 하므로 따로 관리합니다)

1-1. 폴더 안 CSV 파일을 CSV 파일 하나로 합친다

1-1-1. 메모장을 열고 다음과 같이 입력합니다

1-1-2. 이 파일을 파일병합.bat로 총괄 폴더 내에 저장합니다. 메모장은 디폴트 확장자가 txt 파일인데 확장자를 txt가 아니라 '모든 파일'로 바꾸고 ANSI 타입으로 선택 후 파일병합.bat로 저장하면 됩니다.
 
1-1-3. 파일병합.bat를 더블클릭합니다.
 
1-1-4. 파일병합.CSV가 다음과 같이 생성되었습니다.

1-2. 머리행과 Grand total data만 필요하므로 필터링해서 나머지는 제거하면 됩니다.

총괄 시트에 사용할 단어 수 데이터가 추출되었습니다.
 
2. 이제 각 프로젝트별 파일 명을 추출해 보겠습니다.

2-1-1. 또 메모장을 켜고

을 입력합니다

2-1-2. 저장 시 확장자를 txt가 아니라 '모든 파일'로 바꾸고 ANSI 타입으로 선택, 추출.bat로 저장합니다.

2.1-3. 추출.bat를 더블 클릭하면

이렇게 파일 명이 추출됩니다. 

2-1-4. 텍스트 파일을 전체 선택하여 복사한 후 아까 파일병합.csv에 붙여 봅니다. 앞 두 열은 쓸모가 없으므로 파일명과 생성일로 바꿔 봅시다.

 
2-1-5. 여기서 scope_info_ko_KR.csv는 공통되는 텍스트이므로 고객사에서 삭제하고 달라고 합니다. Ctrl+H를 누른 다음

모두 바꾸기를 누르면...

파일 길이가 예쁘게 짧아졌습니다.
 
3.이제 각 파일의 생성 일자 정보를 알아내면 되는데, 매크로 짜기는 귀찮으니까 파워 쿼리를 이용해 봅시다.

여기서 총괄 폴더를 지정합니다. 그러면... 다음과 같이 폴더 안 정보들이 뜹니다.

3-2.
기존 엑셀에다가 수정 일자를 붙이면 이렇게 됩니다

여기서 뒤의 정보는 필요가 없으니 해당 셀들을 선택해 마우스 오른쪽- 셀 서식으로 들어가서 형식 변환을 합시다.

3-3. 완성.

앞으로는 많이 잡아도 3분이면 되겠군요. 휴... 그 동안 안 해도 될 고생을 했다 나새끼...
-자랑하려고 쓴 거 맞습니다 끗-

덧. 근데 요즘 파워쿼리 쓸 일이 가끔 있는데 꽤 강력한 툴이군요. VBA 상당 부분을 대체할 듯.

+ Recent posts