
수식 설명부터 데이터 검품까지 ── Excel 안에서 AI가 일하게 만든 이야기
요약
Excel VBA와 Claude Code CLI를 결합하여 수식 해설 및 데이터 검품을 자동화하는 워크플로우를 구축한 사례를 소개합니다. 단순한 채팅 형태를 넘어 AI를 VBA의 부품처럼 배선하여 작업 흐름에 직접 통합하는 방식을 제안합니다.
핵심 포인트
- Claude Code CLI를 VBA에서 호출하여 매크로 및 수식 자동화 구현
- AI를 별도 채팅창이 아닌 기존 도구의 부품(Component)으로 통합
- 시트의 문맥(Context)을 포함한 데이터 전달로 AI 응답 정확도 향상
- 수식 해설, 오류 체크, 데이터 이상치 탐지 등 실무 적용 가능성 확인
저는 사무원입니다. 프로그래머가 아닙니다. 집의 개인 PC에서 Excel VBA와 Claude Code를 조합하여 놀이와 실익을 병행하고 있습니다.
지난번에는 Excel의 버튼에서 Claude Code CLI를 직접 호출하여, 북(Book) 자체의 매크로를 AI가 수정하는 메커니즘을 작성했습니다 ("대화도 필요 없이 매크로가 수정된다" 에셀의 신의 답에 도달한 이야기). 매크로 수정이 채팅 화면으로의 복사-붙여넣기도 필요 없이, 버튼 한 번으로 실측 8초 만에 끝나게 된 이야기입니다.
이번에는 그 후속편입니다. 동일한 배관(Pipeline)을 "매크로 이외"의 용도로 전용했더니, 수식 설명도, 데이터 검품도, Excel 안에서 AI가 일하게 되었습니다.
그리고 만들면서 확신에 가까워진 것이 하나 있습니다. 앞으로는 Excel과 AI의 콤비네이션(Combination) 시대가 될 것이라는 점입니다. 크게 말하는 것처럼 들릴 수도 있겠지만, 본문에서 실물을 보여드리며 그렇게 생각하는 이유를 쓰겠습니다.
- 매크로 수정을 위해 만든 "VBA에서 Claude Code CLI를 호출하는 배관"을 수식과 데이터로 전용했습니다.
- AI 수식 폼: 선택한 셀의 수식을 시트의 문맥(Context)과 함께 AI에게 전달하여 "해설·체크·작성"을 수행합니다.
- AI 검품 폼: 선택 범위의 데이터를 AI에게 전달하여 "표기 불일치·이상치(Outlier)·사실과의 괴리"를 찾게 합니다. 읽기 전용(Read-only)으로 작동하며 시트에는 일절 쓰지 않습니다. - 첫 업무에서 공휴일 리스트의 표기 불일치를 찾아내는 동시에, 2021년의 공휴일 이동(올림픽 특례)을 상식(World knowledge)과 대조하여 "이 대응은 옳다"라고 단언했습니다.
- "Excel에 AI를 얹는" 서비스는 늘어났지만, 이것은 조금 다릅니다. 자신의 도구의 부품으로서 AI를 배선(Wiring)하는 이야기입니다. Excel과 AI는 기계로서의 특기가 정반대라, 결합하면 서로의 빈틈을 메워줍니다. "Excel인가 AI인가"가 아니라 Excel × AI의 콤비네이션이 본체라고 생각합니다.
Excel에서 AI를 사용하는 수단은 이제 드문 일이 아닙니다. Copilot은 Excel에 탑재되어 있고, AI 어시스턴트를 표방하는 애드인(Add-in)도 많이 있습니다.
다만, 그들 중 상당수는 "Excel 옆에 채팅창이 열리는" 형태입니다. 물어보면 답해주지만, 답은 화면 안에 있으며 사용자의 도구나 작업 흐름과는 연결되어 있지 않습니다.
제가 한 것은 그 반대로, AI를 채팅창에서 꺼내어 자신의 VBA 자산의 일부 부품으로 만드는 것이었습니다.
- AI의 답은 기존의 치환 처리나 퇴피·복원 메커니즘에 그대로 흘러 들어간다.
- AI에게 전달할 재료(수식·시트의 헤더·실제 데이터)는 VBA가 자동으로 준비한다.
- 호출하는 것은 범용 채팅이 아니라, "이 작업의 이 검분을 수행하라"라는 정형화된 지시이다.
부품이기 때문에 겉모습은 평범한 UserForm입니다. 버튼을 누르면 수 초에서 수십 초 내에 답이 돌아옵니다. 그뿐입니다. 하지만 사용해 보면 이 "그뿐"이라는 점이 효과를 발휘합니다.
매크로 다음에 손을 댄 것은 수식이었습니다. 일반적인 Excel 사용자에게는 매크로보다 수식이 본진(Main target)이기 때문입니다.
폼은 3단계 구조입니다.
- 대상: 선택한 셀의 수식이 표시됨
- 요청: "해설해줘", "틀린 게 없는지 체크해줘", "이런 식을 만들어줘"라는 정형 콤보 + 자유 기입
- 답변: AI의 응답. 식이 반환되었을 때만 "적용" 버튼을 누를 수 있음
핵심은 식 그 자체보다 문맥(Context)을 전달하는 방식입니다. 수식의 의미는 시트의 문맥이 9할이기에, VBA 측에서 다음과 같은 다이제스트(Digest)를 구성하여 함께 전달합니다.
- 헤더 행·열의 내용
- 식이 참조하고 있는 범위의 실제 데이터 샘플
- 동일한 식이 아래로 채워져 있는 경우, R1C1 방식으로 비교하여 한 줄로 압축 (전달하는 크기는 셀 수가 아니라 패턴 수로 결정됨)
- 빈 셀에 새로운 식을 만들 때는 대상 행의 실제 데이터도 전달
이렇게 하면 "이 식은 무엇을 하고 있는가"라고 물었을 때, 셀 주소의 나열이 아니라 헤더의 단어로 설명이 돌아옵니다. 타인으로부터 인계받은 시트를 해독할 때 확실히 효과적입니다. 실측 결과, 전체 해설은 50초, "결론 우선·지적 사항 3점까지"라고 제한한 단축 버전은 25초 정도 걸립니다.
적용한 식은 기존의 메모리 퇴피(Memory evacuation) 프로세스를 타기 때문에, 복원 버튼 한 번으로 되돌릴 수 있습니다. 이 부분이 "배선"의 의미이며, 다시 쓰기(Write-back)에 대한 안전장치는 매크로 수정용으로 만든 것을 그대로 재사용하고 있습니다.
수식 다음은 데이터입니다. 이쪽은 과감하게 읽기 전용으로 만들었습니다. 시트에는 아무것도 쓰지 않습니다. 범위를 선택하고 버튼을 누르면 지적 사항이 1행당 1건씩 돌아올 뿐입니다.
대상은 폼을 연 시점의 선택 범위입니다 (1셀이면 표 전체에 자동 확장). 데이터는 행 번호와 열 기호를 붙여 접어 AI에게 전달합니다 (큰 표는 앞 300행×30열로 나누고, '나머지는 미검품'이라고 AI에게도 명시). 정형 지시는 총 13가지입니다: 표기 불일치・형식 혼재・이상치(Outlier)・중복・공란・사실 대조・열 대응・합계・정렬 순서・오탈자・경칭 통일 등. 반환되는 결과는 '셀 주소: 지적 내용 (근거)'입니다. 확신이 가지 않는 지적에는 (확인 필요)가 붙습니다.
직접 쓰지 않기 때문에 사고가 일어날 일이 없습니다. 배포할 때도 설명하기 쉽습니다.
처음에 검품시킨 것은 공휴일 리스트였습니다. 돌아온 지적 중 하나는 '2021/09/20만 월의 0 채움이 다른 것과 맞지 않다'라는 표기 불일치였습니다. 이것은 일반적인 검사입니다.
재미있었던 것은 그 다음으로, 2021년 공휴일은 도쿄 올림픽 특례로 해의 날 등이 이동했는데, AI는 이를 세간 지식(世間知)과 대조한 후 '이 이동 반영은 옳다'라고 단정했습니다.
날짜 형식 체크라면 기존 Excel 기능으로도 가능합니다. 하지만 '이 공휴일 리스트가 현실의 공휴일과 일치하는지'라는 사실과의 대조는 함수로도 입력 규칙으로도 할 수 없는 작업입니다. 여기가 AI를 부품으로 사용하는 가장 큰 이유라고 생각합니다.
| 폼 | 대상 | 쓰기 여부 | 위치 | :--- |
| AI 매크로 폼 (이전) | 매크로 코드 | 치환 (대피・복원 기능 포함) | 배관을 만들었다 |
| ... | | | |
배관은 하나이고, 바뀌는 것은 '무엇을 전달하고, 무엇을 시킬지'뿐입니다. 정형 지시 목록은 '자주 쓰는 요청 방식의 보관소'이며, 손으로 반복했던 지시를 정형화하여 키워나갑니다. 사용할수록 자신의 업무에 익숙해져 간다는 점이 붙여 넣는 채팅과의 가장 큰 차이점입니다.
세 가지 폼을 사용하면서 생각이 한 단계 발전했습니다. 이것은 'Excel이 AI 덕분에 조금 편리해졌다'라는 이야기로만 끝나지 않는 것 같습니다.
Excel과 AI는 기계로서의 성격이 정반대입니다.
- Excel은 결정론적(Deterministic) 기계입니다. 수식도 매크로도, 한 번 새겨 넣은 절차를 몇만 번이라도 같은 결과로 반복합니다. 빠르고, 확실하며, 비용은 거의 제로에 가깝습니다. 다만 '의미'는 다룰 수 없습니다. 공휴일 리스트의 날짜 형식은 검사할 수 있어도, '그 공휴일이 현실의 공휴일과 일치하는지'에는 답할 수 없습니다 -
- AI는 확률적(Probabilistic) 기계입니다. 의미와 문맥, 세간 지식을 다룰 수 있습니다. 공휴일 이동도, 표기 불일치도, 제목의 단어가 가리키는 것도 이해합니다. 다만 매번 같은 답이 돌아올 것이라는 보장은 없고, 대량의 반복 계산을 시키려면 느리고 비용이 많이 듭니다.
잘하는 것이 정반대라는 것은 조합하면 서로의 빈틈을 메울 수 있다는 뜻입니다. 역할 분담은 다음과 같습니다.
- 반복하는 일・형태를 유지하는 일・데이터의 보관소는 Excel이 맡습니다
- 의미 판단・사실과의 대조・인간의 언어 설명은 AI가 맡습니다
- 매번 AI에게 계산시킬 필요는 없습니다. AI가 만들게 한 수식이나 매크로를 Excel에 새겨 넣으면, 남은 것은 결정론적 기계가 조용히 돌아가는 것입니다.
이번 검품 폼은 이 분담의 작은 예시입니다. 범위를 접어 전달하는 것은 VBA(형태의 일), 공휴일 특례를 대조하는 것은 AI(의미의 일), 지적을 받아 수정할지 결정하는 것은 인간. 세 주체 모두 자신이 잘하는 것만 하고 있습니다.
또 하나 중요한 것이 있습니다. Excel은 대부분의 직장의 거의 모든 책상 위에 이미 존재한다는 것입니다. 새로운 시스템을 들일 필요 없이, 눈앞에 있는 표와 파일 그대로 AI라는 부품을 하나의 배선으로 연결하면 됩니다. 'AI 도입'이 대단한 일이 될 필요가 없고, 손안의 도구에 연결하는 것만으로 시작됩니다. 저는 이것을 집에서 놀이를 하고 있지만, 이 조합 방식 자체는 어느 Excel에서도 동일할 것입니다.
여기서 Excel이 오랫동안 듣게 된 비난을 떠올려 보세요. '블랙박스다', '개인에게 의존한다(属人化)', '만든 사람이 퇴사하면 아무도 알 수 없게 된다'. 그럴듯하게 들리지만, 근본은 하나입니다. 내용물을 읽을 수 있는 사람이 곁에 없었다는 것. 그것뿐이었습니다.
그 근본이 사라졌습니다. AI는 VBA도 수식도 평범하게 읽습니다. 이번 AI 수식 폼이 하는 것은 바로 '다른 사람이 만든 수식을 제목의 언어로 설명하게 하는' 것입니다. 만든 본인이 없어도, 북을 열어 물어보면 내용물이 말로 돌아옵니다. 블랙박스라 불리던 상자는 이제 열립니다.
그래서 저는 "AI가 왔으니 Excel은 끝났다"라고 생각하지 않습니다. 오히려 반대입니다. 내부 내용을 읽을 수 있게 된 이상, 특정 개인에게 의존한다는 이유로 Excel을 멀리할 명분은 더 이상 성립하지 않습니다. 현장 곳곳에 이미 존재하며, 누구나 만질 수 있고, AI가 내용 설명과 검품(Inspection)까지 해줍니다. 이 자산의 가치는 앞으로 재평가될 것입니다. Excel이냐 AI냐의 문제가 아니라, **Excel과 AI의 조합 (Combination)**의 시대라고 생각합니다.
- 구동을 위해서는 Claude Code CLI (또는 Gemini CLI)의 설정(Setup)과 로그인이 필요합니다. 누구의 Excel에서나 즉시 작동하는 것은 아닙니다.
- AI의 지적을 무조건적으로 믿지는 않습니다. 지적 $\rightarrow$ 실측을 통한 재현 $\rightarrow$ 채택의 순서를 지키고 있습니다 (재현되지 않는 일반론적인 지적은 버립니다).
- 이 양식이 포함된 북(Book)은 아직 공개하지 않았습니다. 계속해서 개선 중이기 때문입니다.
3부작 구상으로 말하자면, 검품 다음은 "AI 요약 설명" (표를 전달하여 그것이 어떤 표인지 설명하게 함), 그 다음은 "AI 문장" (A4 정형 레이아웃을 깨뜨리지 않고 문구만 AI가 작성하게 함)입니다. 검품 양식을 복제함으로써 거의 제작 가능할 것으로 보이므로, 완성되면 다시 쓰겠습니다.
라고 쓰고 나서 실제로 해보니, 점점 엄청난 것이 만들어져 버렸을지도 모르겠습니다.
조금 떨리고 있습니다 (웃음)
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기