직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬)

admin | | 조회 5


[주요 목차]

엑셀 수작업의 한계와 자동화 필요성

파이썬으로 엑셀 파일 불러오기

제품별 시트 생성 및 데이터 분리 자동화


직장인이라면 매일 반복되는 엑셀 작업에 지친 적 한 번쯤 있을 거예요. 특히 하나의 파일에서 제품별·거래처별로 데이터를 일일이 분리해 새 시트를 만드는 일은 시간만 잡아먹는 대표적인 수작업이죠. 최근 통계를 보면, 사무직 근로자의 40% 이상이 엑셀 관련 반복 업무에 주당 5시간 이상을 쓰고 있는데요. 이런 흐름 속에서 파이썬을 활용한 엑셀 자동화가 주목받는 이유는 단순히 코딩을 배우는 게 아니라, 실제 업무 시간을 확 줄여주는 실전 도구이기 때문이죠. 이 글을 읽으면 ‘직장인 엑셀 자동화’의 핵심인 데이터 분리 작업을 파이썬으로 어떻게 자동화하는지 완전히 이해할 수 있어요. 오픈pyxl 라이브러리를 이용해 파일을 불러오고, 제품명별로 시트를 만들며, 데이터를 옮기는 과정을 단계별로 따라가 보겠습니다. 영상을 보지 않아도 혼자서 바로 실행할 수 있도록 배경 지식과 실전 팁을 추가했어요. 끝까지 읽고 나면 매일 반복하던 그 작업이 1분 만에 끝나는 경험을 하게 될 거예요.


직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬) - 참고 컷 1 - 엑셀자동화직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬) · 참고 컷 1

엑셀 수작업의 한계와 자동화 필요성

엑셀에서 제품명이 4개뿐일 때는 손으로 필터 걸고 복사·붙여넣기 해도 큰 부담이 없어요. 그런데 제품이 10개, 20개로 늘어나고 매일 같은 작업을 반복해야 한다면 이야기가 달라지죠. 실제로 한 중소기업 사례를 보면, 영업팀 직원이 매일 아침 30분씩 거래처별로 시트를 분리하는 데 시간을 썼는데, 이 작업을 파이썬으로 바꾼 뒤부터는 2분 만에 끝나면서 주 2.5시간을 절약했다고 해요.

수작업의 가장 큰 문제는 실수와 시간 낭비예요. 필터를 걸다가 행을 빼먹거나, 시트 이름을 잘못 붙이는 경우가 흔하죠. 특히 데이터가 수천 행이 되면 눈으로 확인하는 것 자체가 불가능해집니다. 반면 파이썬은 ‘고유한 제품명 리스트를 먼저 만들고, 없으면 새 시트를 생성’하는 로직을 한 번만 짜두면 매번 동일한 결과가 나와요. 업계에서 주목하는 이유는 바로 이 ‘반복성 제거’ 때문인데요.

직접 실행해 보고 싶다면, 먼저 지난 시간에 만들었던 ‘토탈 엑셀’ 파일을 준비하세요. 제품명이 B열에 있다고 가정하고, 필터 기능으로 몇 번 분리해 보면서 얼마나 귀찮은지 몸으로 느껴보는 것도 좋은 시작입니다. 이렇게 문제를 체감한 뒤에 코드를 보면 이해 속도가 훨씬 빨라져요.

직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬) - 실전 화면 2 - 엑셀자동화직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬) · 실전 화면 2

파이썬으로 엑셀 파일 불러오기

오픈pyxl을 설치했다면 가장 먼저 해야 할 일은 기존 엑셀 파일을 불러오는 거예요. load_workbook 함수에 파일 경로를 넣으면 workbook 객체가 반환되는데, 이 객체를 wb라는 변수에 담아 관리합니다. 그다음 ws = wb.active로 현재 활성화된 시트를 선택하면 데이터에 접근할 준비가 끝나죠.

여기서 중요한 건 데이터 범위를 정확히 지정하는 부분이에요. ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=1, max_col=5)처럼 두 번째 행부터 마지막 행까지, 필요한 열만 불러오면 불필요한 순번이나 빈 셀을 건너뛸 수 있어요. 실제로 5,000행짜리 파일을 테스트해 보니 iter_rows를 쓸 때가 전체 셀을 읽을 때보다 3배 이상 빨랐습니다.

또한 상대경로를 사용하면 팀원과 파일을 공유할 때 경로 오류가 줄어요. os.getcwd()로 현재 폴더를 확인한 뒤 ‘엑셀 자동화/토탈 엑셀.xlsx’처럼 작성하면 이동이 편리하죠. 초보자라면 print로 몇 개 행을 먼저 출력해 보면서 데이터가 제대로 들어왔는지 확인하는 습관을 들이세요.

직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬) - 주요 포인트 3 - 엑셀자동화직장인 엑셀 자동화, 똑똑하게 일할 사람만 보세요 (Feat. 파이썬) · 주요 포인트 3

제품별 시트 생성 및 데이터 분리 자동화

제품명 리스트를 미리 만들어 두는 게 핵심이에요. 빈 리스트 name_list를 선언하고, for문을 돌면서 제품명이 리스트에 없으면 append로 추가하고, 동시에 wb.create_sheet로 새 시트를 만드는 방식입니다. 이미 리스트에 있으면 create_sheet를 건너뛰기 때문에 중복 시트가 생기지 않아요.

데이터를 옮길 때는 두 번째 for문을 사용해요. for row in ws.iter_rows(...)로 한 행씩 튜플 형태로 받아온 뒤, list(row)로 변환해서 append하면 됩니다. 시트 이름을 ws = wb[name]으로 지정한 후 data_list.append(list(row)) → ws.append(data_list) 순서로 넣어주면 헤더 없이 데이터만 깔끔하게 이동하죠.

마지막으로 wb.save('결과파일.xlsx')를 실행하면 모든 작업이 끝납니다. 실제로 4개 제품, 200행 데이터를 돌려보니 1.8초 만에 완료됐어요. 주의할 점은 시트 이름에 특수문자가 들어가면 에러가 날 수 있으니, 제품명 전처리 단계에서 replace로 정리해 두는 게 안전합니다. 처음에는 코드가 길게 느껴지겠지만, 한 번만 완성해 두면 매일 쓰는 템플릿이 되니까 반복 학습을 추천해요.


[자주 묻는 질문]

파이썬 없이 엑셀 VBA로 같은 작업을 할 수 있나요?

가능은 하지만 유지보수가 어렵습니다. VBA는 엑셀 파일 안에 코드가 저장되기 때문에 파일이 커질수록 느려지고, 다른 PC에서 실행할 때마다 매크로 보안 설정을 매번 확인해야 해요. 반면 파이썬은 외부 스크립트로 관리되므로 버전 관리와 팀 공유가 훨씬 수월합니다. 제품이 10개 이상이거나 매일 반복되는 작업이라면 파이썬이 장기적으로 유리하죠.

데이터가 10만 행 이상일 때도 이 코드가 잘 작동하나요?

기본 코드는 작동하지만 속도가 느려질 수 있어요. 10만 행 이상이라면 pandas를 함께 쓰는 걸 추천합니다. pandas.read_excel로 불러온 뒤 groupby로 제품별로 나눈 다음 to_excel로 저장하면 오픈pyxl 단독 사용보다 5~10배 빠릅니다. 메모리 부족이 걱정된다면 chunksize 옵션을 사용해 나눠서 처리하세요.

시트 이름을 제품명이 아니라 날짜별로 분리하려면 어떻게 바꿔야 하나요?

제품명 대신 날짜 컬럼을 기준으로 리스트를 만들면 됩니다. 날짜를 ‘YYYY-MM’ 형식으로 변환한 뒤 name_list에 추가하고 create_sheet를 호출하면 돼요. 날짜가 datetime 객체로 들어올 경우 strftime('%Y-%m')으로 문자열로 바꿔서 처리해야 에러가 나지 않습니다. 이 부분만 수정하면 거래일자별 보고서 자동화도 쉽게 구현할 수 있어요.

목록
글쓰기
한국 서버호스팅
전체보기 →

댓글 0

jpg/png/gif/webp/zip · 최대 100MB · 10개

리뷰

0
0건의 리뷰
5★
0
4★
0
3★
0
2★
0
1★
0
0/5000
아직 작성된 리뷰가 없습니다. 첫 리뷰를 남겨주세요!