엑셀 반복작업 자동화, 매크로·파이썬·AI 비교: 같은 보고서로 실측

사람이 직접 검수한 글 · 검수 검수 방식

예제 파일 3개 받기 ↓

매달 같은 엑셀 보고서를 만든다면, AI에게 매번 맡기기보다 코드를 한 번 받아 매크로나 파이썬으로 굳혀 두는 쪽이 훨씬 빨랐습니다. 같은 월별 매출 보고서(3,000행)를 파이썬 스크립트는 0.24~0.28초, 엑셀 매크로는 0.34~0.41초에 만들었고, AI에게 매번 맡기면 57.5~92.6초가 걸렸습니다. 대신 AI가 짜 준 코드는 그대로 믿으면 안 됩니다. AI가 짜 준 매크로는 10월 시트가 추가되자 오류 없이 10월을 뺀 합계를 냈습니다.

직접 해 본 결과

파이썬 실행 3,000행 3회. 같은 일을 매크로는 0.34~0.41초
0.24~0.28초
AI에게 맡기기 4회 모두 정답과 일치
57.5~92.6초
AI 코드 재사용 맨 위에 제목 행이 있는 파일에서
4개 중 4개 실패

이 글의 파일

상황별 추천 한 줄

  • 매달 같은 양식, 회사 PC에 설치 가능 → AI에게 파이썬 코드를 받아 스크립트로 굳히기
  • 설치 권한이 없음 → 엑셀 VBA 매크로(이 글의 매크로를 쓰거나, AI에게 받으면 검산 후 사용)
  • 한두 번만 할 일, 양식이 매번 다름 → 합성·비식별 데이터로 AI에게 그때그때 맡기기
  • 회사 데이터를 외부 AI에 올릴 수 없음 → AI에게는 머리글과 가짜 데이터 몇 줄만 보여 주고 코드만 받기
Windows 11, 엑셀 2010, Python 3.14.4, openpyxl 3.1.5, Claude Code 2.1.311(Claude Opus 5.5). 매크로는 엑셀이 매크로를 실행한 시간, 파이썬은 스크립트가 잰 처리 시간(파이썬 시작 포함 명령 전체는 0.67~0.73초). 3,000행·30,000행 각 3회, AI 맡기기는 서로 다른 입력으로 4회, 코드 받기는 각 1회. AI가 짜 준 매크로는 30,000행을 돌리지 않아 7가지. 합성 데이터
항목매크로(VBA)파이썬 스크립트AI에게 매번 맡기기
설치없음(엑셀만)Python + openpyxlAI 도구 계정
AI에게 코드만 받기1회 요청, 67.1초1회 요청, 49.6초필요 없음
실행 1회(3,000행)0.34~0.41초0.24~0.28초57.5~92.6초
30,000행0.89~0.90초2.11~2.66초측정 안 함
이 글의 코드, 정답과 일치8가지 입력 모두8가지 입력 모두4회 모두
AI가 짜 준 코드, 정답과 일치7가지 중 5가지8가지 중 7가지해당 없음
데이터가 나가는 곳내 PC내 PCAI 서비스
측정 조건 Windows 11, 엑셀 2010, Python 3.14.4, openpyxl 3.1.5, Claude Code 2.1.311(Claude Opus 5.5). 매크로는 엑셀이 매크로를 실행한 시간, 파이썬은 스크립트가 잰 처리 시간(파이썬 시작 포함 명령 전체는 0.67~0.73초). 3,000행·30,000행 각 3회, AI 맡기기는 서로 다른 입력으로 4회, 코드 받기는 각 1회. AI가 짜 준 매크로는 30,000행을 돌리지 않아 7가지. 합성 데이터 측정일

’AI에게 코드만 받기’는 Claude Code를 명령 창에서 쓰면서 파일 읽기·실행 기능을 모두 끄고, 기본 안내문을 “You are a helpful assistant.” 한 줄로 바꿔 잰 값입니다. 웹의 ChatGPT·Claude 채팅 화면과는 조건이 달라 시간도 다를 수 있습니다. 코드를 받는 데 1분 안팎이 걸린다는 정도로 보세요.

이런 분께 / 준비물

여러 시트나 파일의 표를 매달 같은 모양의 보고서로 정리하고 있다면 이 비교가 맞습니다.

  • 예제 파일: sales.xlsx(가상 지점 5곳, 7~9월 시트, 시트마다 1,000행)
  • 파이썬 방법: Windows에 Python 설치, 이 글의 make_report.py
  • 매크로 방법: Windows용 엑셀(설치 없음), 이 글의 MakeReport.bas
  • AI 방법: 파일을 읽고 코드를 실행할 수 있는 AI 도구(이 글은 Claude Code를 썼습니다)

여러 파일을 먼저 한 표로 모아야 한다면 엑셀 여러 파일 합치기를 먼저 보세요.

비교에 쓴 작업

사무직이 흔히 하는 ’월별 시트를 모아 요약 보고서 만들기’를 골랐습니다. 세 방법 모두 결과를 같은 정답과 대조했습니다.

왼쪽에 7월·8월·9월 시트가 각 판매 내역 1,000행, 가운데에 매크로(VBA)·파이썬·AI에게 시키기 세 가지 방법, 오른쪽에 보고서 시트의 지점별·월별 금액 표와 품목별 금액 표가 있는 흐름도
같은 원본으로 같은 보고서를 세 가지 방법으로 만들었습니다.

AI에게는 사무직이 쓸 법한 말투로 그대로 요청했습니다. 요청문 앞부분은 이렇습니다.

sales.xlsx 파일에 7월, 8월, 9월 시트가 있습니다. 각 시트 1행에 날짜, 지점,
담당자, 품목, 수량, 단가, 금액 머리글이 있고 ...
'보고서' 시트에 아래 두 표를 만들고 싶어요.
1) 지점별·월별 금액 합계 표 (행: 지점, 열: 7월, 8월, 9월, 합계, 맨 아래에 합계 행)
2) 그 아래 한 줄 띄고 품목별 금액 합계 표 (품목, 금액 두 열, 금액 큰 순서)

1단계 AI에게 매번 맡기기: 정확하지만 한 번에 57.5~92.6초

파일을 주고 “보고서를 만들어 저장해 줘”라고 하면, AI는 4번 모두 정답과 같은 보고서를 만들었습니다. 걸린 시간은 57.5~92.6초였습니다.

  • AI는 매번 파일 내용을 먼저 살펴보고, 파이썬 코드를 짜서 돌린 뒤 결과 합계를 원본과 맞춰 봤다고 답했습니다.
  • 맨 아래 합계 행이 있는 파일도 알아서 빼고 계산했습니다. 열이 하나 추가된 파일도 맞았습니다.
  • 같은 요청이어도 결과 모양은 조금씩 달랐습니다. 한 번은 보고서 시트를 맨 앞에, 다른 한 번은 맨 뒤에 두었습니다.

이 방법은 매번 파일이 AI 서비스로 넘어갑니다. 회사 매출 자료라면 보안 규정부터 확인해야 합니다.

2단계 파이썬: 한 번 굳혀 두면 0.3초

스크립트를 한 번 만들어 두면 다음 달부터는 명령 한 줄로 끝납니다. 이 글의 스크립트는 3,000행을 0.24~0.28초, 30,000행을 2.11~2.66초에 처리했습니다.

  1. Python을 설치합니다. 공식 문서는 Python install manager를 python.org 또는 Microsoft Store에서 받도록 안내합니다.
  2. 명령 프롬프트(시작 메뉴에서 cmd 검색)를 열고 엑셀 파일을 다루는 부품 openpyxl을 설치합니다.
python -m pip install openpyxl
  1. make_report.py를 엑셀 파일과 같은 폴더에 두고, 그 폴더로 이동해 실행합니다.
python make_report.py sales.xlsx

같은 폴더에 sales_보고서.xlsx가 생깁니다. 원본 파일은 바꾸지 않습니다. 화면에는 이런 요약이 나옵니다.

시트 3개(7월, 8월, 9월), 집계한 행 3000개, 건너뛴 빈·합계 행 0개, 0.24초 → sales_보고서.xlsx

이 스크립트는 시트 이름과 열 위치에 기대지 않습니다. 머리글을 이름으로 찾고, 빈 행과 합계·소계 행은 건너뜁니다. 금액이 비었거나 숫자가 아닌 행은 빼고 몇 행인지 알려 줍니다.

3단계 매크로: 설치 권한이 없을 때

회사 PC에 파이썬을 설치할 수 없다면 엑셀 안의 VBA 매크로를 씁니다. 이 글의 매크로는 엑셀 2010에서 3,000행을 0.34~0.41초, 30,000행을 0.89~0.90초에 처리했습니다. 30,000행에서는 파이썬보다 빨랐습니다.

  1. 원본을 복사해 두고 엑셀에서 엽니다.
  2. Alt+F11로 VBA 편집기를 엽니다.
  3. 파일 메뉴의 가져오기(Import File, Ctrl+M)로 MakeReport.bas를 고릅니다. AI에게 받은 코드라면 삽입 → 모듈을 누르고 붙여 넣습니다.
  4. 엑셀로 돌아와 Alt+F8을 누르고 MakeReport를 골라 실행합니다.
  5. 매크로를 남겨 두려면 ’엑셀 매크로 사용 통합 문서(.xlsm)’로 저장합니다.

실행하면 맨 뒤에 ‘보고서’ 시트가 생기고, 집계한 행 수와 걸린 시간을 알리는 창이 뜹니다. 이미 ‘보고서’ 시트가 있으면 지우고 새로 만듭니다.

엑셀 2010에서 연 보고서 시트. 1~7행에 지점별 7월·8월·9월·합계 금액 표가 있고 합계 행 총액은 1,004,519,500이다. 9~17행에는 토너 685,656,000부터 클립 7,263,000까지 품목별 금액이 큰 순서로 있다
이 글의 매크로를 엑셀 2010에서 실행한 결과(합성 데이터). 천 단위 쉼표와 굵은 머리글까지 만들어 줍니다.

AI에게 같은 요청 끝에 “엑셀 2010에서 쓸 VBA 매크로를 짜 주세요”라고 붙이자, 1회 요청에 67.1초 만에 코드와 넣는 법을 받았습니다. 기본 파일에서는 정답이었지만, 아래 결과처럼 다음 달 파일에서는 틀린 경우가 있었습니다.

인터넷이나 메일로 받은 매크로 파일은 Windows용 Office에서 기본으로 막힙니다. 믿을 수 있는 파일만 파일을 마우스 오른쪽 버튼으로 눌러 속성 → 일반 탭의 ’차단 해제’로 풉니다.

직접 해 본 결과: 입력이 바뀌면 깨지는가

다음 달 파일이 이번 달과 똑같다는 보장은 없습니다. 그래서 일부러 8가지로 바꾼 파일을 만들고, 스크립트를 고치지 않은 채 다시 돌렸습니다.

'AI가 짜 준' 코드는 도구 없이 코드만 요청해 받은 것, '남긴 스크립트'는 AI에게 맡긴 1·2회째에 AI가 폴더에 남긴 파이썬 파일. 모두 고치지 않고 실행. 매크로는 엑셀 2010. 정답 여부는 미리 계산한 정답과 검산 스크립트로 대조. 합성 데이터, 표시 없는 칸은 1회
입력 상황이 글의 파이썬·매크로AI가 짜 준 파이썬AI가 짜 준 매크로AI가 남긴 스크립트 2개AI에게 그때그때 맡기기
기본(3,000행)둘 다 정답(각 3회)정답(3회)정답2개 모두 정답2회 모두 정답
데이터 10배(30,000행)둘 다 정답(각 3회)정답실행 안 함1개 실행, 정답측정 안 함
중간에 열 추가둘 다 정답정답정답2개 모두 정답1회 정답
빈 행 15개둘 다 정답정답정답2개 모두 정답측정 안 함
새 달 시트(10월) 추가둘 다 정답(10월 열 생김)정답틀림(10월을 뺀 채 보고서 만듦)2개 모두 정답측정 안 함
한 시트만 열 순서 다름둘 다 정답정답정답2개 모두 정답측정 안 함
맨 아래 합계 행둘 다 정답(합계 행 건너뜀)정답정답2개 모두 멈춤(알 수 없는 지점)1회 정답
맨 위 제목 행둘 다 정답멈춤(한글 안내)멈춤(한글 안내)2개 모두 멈춤(오류)측정 안 함
측정 조건 'AI가 짜 준' 코드는 도구 없이 코드만 요청해 받은 것, '남긴 스크립트'는 AI에게 맡긴 1·2회째에 AI가 폴더에 남긴 파이썬 파일. 모두 고치지 않고 실행. 매크로는 엑셀 2010. 정답 여부는 미리 계산한 정답과 검산 스크립트로 대조. 합성 데이터, 표시 없는 칸은 1회 측정일
  • 가장 위험한 경우는 AI가 짜 준 매크로였습니다. 시트 이름을 7·8·9월로 못 박아 두어서, 10월 시트가 생기자 오류 없이 10월을 뺀 보고서를 만들었습니다. 총액이 1,004,519,500으로 정답 1,348,267,000보다 적었습니다.
  • AI가 짠 파이썬 코드 3개는 열 추가, 빈 행, 새 시트, 열 순서 변경을 모두 버텼습니다.
  • 맨 위에 제목 행이 있으면 AI가 만든 코드 4개 모두 머리글을 찾지 못해 멈췄습니다. 채팅으로 받은 파이썬·매크로는 한글로 이유를 알렸고, 남긴 스크립트 2개는 영어 오류를 냈습니다.
  • 맨 아래 ‘합계’ 행은 채팅으로 받은 파이썬·매크로가 건너뛰었습니다. 남긴 스크립트 2개는 ’알 수 없는 지점’이라며 멈췄습니다.
  • 멈추면 결과 파일이 생기지 않아 바로 알 수 있습니다. 조용히 틀린 결과는 총액을 원본 합계와 맞춰 봐야 잡힙니다.
  • 이 글의 파이썬 스크립트는 따로 만든 13가지 까다로운 입력(병합된 제목 셀, 빈 시트, ‘89,000원’ 같은 글자 금액, 손상 파일, .xls 파일 등)에서도 멈추지 않고 한글로 이유를 알렸습니다.

주의할 점과 한계

  • 매크로는 엑셀 2010에서만 실행했습니다. 엑셀 2016 이상이나 Microsoft 365에서는 재 보지 않았습니다.
  • AI가 짜 준 매크로는 끝에 완료 창을 띄워, 창을 닫기까지의 시간이 섞여서 처리 시간은 싣지 않았습니다. 30,000행도 실행하지 않았습니다.
  • 사람이 직접 코드를 짜는 시간은 재지 않았습니다. 이 글의 ’준비’는 AI에게 코드를 받는 시간입니다.
  • 코드만 받는 요청(67.1초, 49.6초)은 첫 표 아래에 적은 조건으로 1회씩 보냈습니다. Claude Code의 기본 설정 그대로 도구만 끄고 보냈을 때는 파이썬 요청이 832~885초 동안 헛돌다 쓸 수 있는 코드 없이 끝나 비교에서 뺐습니다.
  • AI는 Claude Code 한 가지만 썼습니다. ChatGPT·엑셀 Copilot 같은 다른 AI 도구는 직접 해 보지 않았습니다.
  • AI 결과는 실행할 때마다 달라질 수 있습니다. 같은 조건을 4회만 돌렸습니다.
  • 시간은 PC 성능에 따라 다릅니다.
  • 회사 자료를 외부 AI에 올리기 전에는 보안 규정을 확인하세요. 이 글은 전부 합성 데이터로 실험했습니다.

자주 묻는 질문

매크로, 파이썬, AI 중 가장 빠른 것은 무엇인가요?

한 번 만들어 둔 매크로나 파이썬 스크립트가 가장 빠릅니다. 3,000행 보고서를 파이썬은 0.24~0.28초, 엑셀 2010 매크로는 0.34~0.41초에 만들었습니다. 30,000행에서는 매크로가 0.89~0.90초로 파이썬(2.11~2.66초)보다 빨랐습니다. 같은 일을 AI에게 매번 맡기면 57.5~92.6초가 걸렸습니다.

AI가 짜 준 코드를 다음 달에도 그대로 써도 되나요?

그대로 쓰기 전에 검산이 필요합니다. AI가 만든 코드 4개는 맨 위에 제목 행이 생기자 모두 보고서를 만들지 못했습니다. AI가 짜 준 매크로는 10월 시트가 추가된 파일에서 오류 없이 10월을 뺀 보고서를 만들었습니다. 다음 달 파일로 한 번 돌려 보고 결과 합계를 원본과 맞춰 보세요.

회사 PC에 파이썬을 설치할 수 없으면 어떻게 하나요?

엑셀에 들어 있는 VBA 매크로를 씁니다. 설치가 필요 없고, 이 글의 매크로는 엑셀 2010에서 3,000행을 0.34~0.41초에 처리했습니다. 다만 인터넷에서 받은 매크로 파일은 Windows용 Office에서 기본으로 막히므로, 믿을 수 있는 파일만 파일 속성의 '차단 해제'로 풉니다.

근거와 출처

직접 해 본 근거

  • 직접 측정 2026년 10월 29일, 합성 매출 파일(시트 3개 × 1,000행)로 '지점별·월별 합계와 품목별 합계 보고서'를 만들었습니다. 파이썬은 3,000행과 30,000행에서 각 3회, 엑셀 2010 매크로는 3,000행·30,000행 각 3회, AI(Claude Code)는 파일을 주고 맡기는 방식으로 4회, 코드만 받는 방식으로 매크로·파이썬 각 1회 실행해 시간을 쟀습니다. 모든 결과는 미리 계산해 둔 정답과 검산 스크립트로 대조했습니다.
  • 직접 측정 입력이 바뀌는 경우 8가지(중간에 열 추가, 빈 행, 새 달 시트, 열 순서 변경, 합계 행, 제목 행, 데이터 10배 등)를 만들어, 이 글의 파이썬·매크로와 AI가 만든 코드 4개(파이썬 3개, 매크로 1개)를 고치지 않고 다시 돌렸습니다.
  • 직접 캡처 이 글의 매크로를 엑셀 2010에서 실행해 만든 보고서 시트를 직접 캡처했습니다.
  • 결과 파일 비교에 쓴 합성 예제 파일(sales.xlsx), 보고서 스크립트(make_report.py), 매크로(MakeReport.bas)를 내려받을 수 있습니다.
  • 실행 코드 AI에게 보낸 요청문, AI의 답과 AI가 만든 스크립트, 실행 기록을 원문 그대로 보관했습니다.

참고한 출처