버튼 하나로 갱신·점검하기: 매주 하는 정리 작업을 버튼 하나로 끝낼 수 있나요? | 클로드 엑셀왕 12

CHAPTER 12 버튼 하나로 갱신·점검하기 — 매주 붙여 넣고 정리하고 중복을 확인하는 일을, 버튼 하나로 끝낼 수 있을까? 손가락으로 가리키는 엑셀왕 마스코트와 톱니바퀴·로켓·방패·체크 스티커.
CHAPTER 12 버튼 하나로 갱신·점검하기 — 매주 붙여 넣고 정리하고 중복을 확인하는 일을, 버튼 하나로 끝낼 수 있을까? 손가락으로 가리키는 엑셀왕 마스코트와 톱니바퀴·로켓·방패·체크 스티커.

매크로는 엑셀이 할 일을 순서대로 적어 둔 짧은 프로그램입니다. 엑셀에서는 VBA라는 언어로 쓰고, 단추나 도형에 연결해 두면 한 번 누를 때마다 적힌 순서대로 처리합니다. 1편부터 11편까지 만든 파일은 대부분 한 번 만들어 두고 다음 달 자료를 넣는 구조였습니다. 이번에는 매주 똑같이 반복하는 정리 작업 자체를 단추 하나에 담습니다.

예로 드는 곳은 가상 문구 도매점 ‘한결문구’입니다. 담당자는 월요일 아침마다 판매관리 프로그램에서 지난주 판매내역을 내려받아 엑셀 파일의 ‘입력’ 시트에 붙여 넣고, 공백과 숫자를 손보고, 이미 들어간 주문이 섞였는지 확인한 뒤 ‘통합내역’ 시트 아래에 덧붙입니다. 같은 순서를 매주 되풀이하니, 순서를 코드로 적어 두기 좋은 일입니다. 코드는 클로드에게 설계를 받습니다.

이 장에서 다루는 것

이런 분께매주 내려받은 자료를 붙여 넣고 같은 순서로 손보는 일을 반복하는 분
이번 편 방식① 대화창에서 매크로 코드 받기 → 엑셀에 붙여 넣고 단추에 연결
준비 파일가상 문구 도매점의 판매통합 파일(입력·통합내역·점검·사용법 시트)과 매크로 코드 텍스트 파일 (예제 파일)
완성 파일매크로 사용 통합 문서(.xlsm)로 저장하고 [주간 정리 실행] 단추를 단 파일. 실행 결과를 재현한 예시 파일 포함
엑셀 기능VBA 매크로, Visual Basic 편집기의 모듈, 도형에 매크로 지정, COUNTIF·SUMIF 점검
쓰는 도구클로드 앱 대화창(코드 설계)과 데스크톱 엑셀(코드 실행). 챗GPT·제미나이에서도 같은 방식으로 요청할 수 있습니다
핵심 키워드처리 순서 · 중복 기준 · 두 번 누르기 방지 · 실행 기록
난이도●●● 중급 — 코드를 직접 쓰지는 않지만, 받은 코드를 붙여 넣고 읽어 봅니다

먼저 답부터

끝낼 수 있습니다. 클로드에게 이번 주 자료를 붙여 넣은 파일을 보여 주고 처리 순서와 확인할 점부터 받은 뒤, 중복 기준과 멈출 조건을 정해 주면 주석이 달린 VBA 매크로를 줍니다. 그 코드를 엑셀의 모듈에 붙여 넣고 도형 단추에 연결하면, 다음 주부터는 자료를 붙여 넣고 단추를 누른 뒤 점검 시트의 차이가 0인지 보는 것으로 끝납니다. 매크로로 바뀐 내용은 실행 취소가 되지 않으니 처음에는 사본에서 누릅니다.

이 글의 사례를 1분 쇼츠로 정리했습니다. 예제는 가상 데이터, 내레이션은 AI 합성 음성입니다.
PART 01 사례로 보기

SECTION 12-1

12-1 붙여 넣은 66행, 합계 0원

이 장의 도매점과 판매 숫자는 모두 가상입니다. 실제 판매관리 프로그램이 내보내는 파일의 열 구성과 형식은 프로그램마다 다릅니다.

11월 2일 월요일, 담당자는 지난주 판매내역을 내려받아 입력 시트 A1에 머리글째 붙여 넣었습니다. 66행입니다. 결제금액 열을 선택하니 엑셀 아래 상태 표시줄에 개수 66, 합계 0이 나옵니다. 통합내역 시트에는 지난 세 주 동안 덧붙인 143행이 있습니다.

입력 시트에 붙여 넣은 직후. 주문일·주문번호·거래처·상품코드·상품명·수량·결제금액·처리결과 열. 거래처 앞과 상품코드 뒤에 공백이 점으로 표시되어 있고, 결제금액 칸마다 글자로 저장된 숫자를 뜻하는 초록 삼각형이 있다. 2~6행은 10월 24일 주문 5행(지난주에 이미 통합내역에 들어감)으로 붉게, 34~35행은 HG1028-04가 한 번 더 나온 행으로 주황색으로 표시. 상태 표시줄은 개수 66, 합계 0.
화면 12-1. 붙여 넣은 직후의 입력 시트. 점은 공백, 초록 삼각형은 글자로 저장된 숫자입니다. (재현 화면)

합계가 0원으로 나오는 까닭

판매관리 프로그램은 결제금액을 ‘52,000’처럼 쉼표가 든 글자로 내보냅니다. 화면에서는 숫자로 보여도 엑셀은 글자로 받아들이므로 SUM이 더하지 않습니다. 상품코드 끝에는 공백이 두 칸, 거래처 앞에는 한 칸 붙어 나옵니다. 눈으로는 구별되지 않지만 ‘H-101’과 ‘H-101 ’은 엑셀에서 다른 값이라, 이 상태로는 통합내역과 맞춰 볼 수도 없습니다.

이미 들어간 행이 섞인 까닭

담당자는 조회 기간을 10월 24일부터 11월 1일까지로 잡았습니다. 토요일인 10월 24일 주문은 지난주 월요일에 이미 통합내역에 덧붙였으니 5행이 겹칩니다. 주문 HG1028-04는 수정 후 다시 저장되면서 내보내기 파일에 두 줄이 한 번 더 나왔습니다. 그대로 덧붙이면 이 7행, 321,400원이 매출에 두 번 들어갑니다.

붙여 넣은 자료에 있는 것그대로 덧붙이면규모
결제금액이 쉼표 든 글자합계·SUMIF가 0이 됩니다66칸 전부
상품코드 뒤·거래처 앞 공백같은 주문을 찾아도 다른 값으로 봅니다66행 전부
조회 기간이 하루 겹침10월 24일 주문이 두 번 들어갑니다5행 · 258,900원
수정 저장된 주문이 한 번 더같은 주문 두 줄이 두 번 들어갑니다2행 · 62,500원

엑셀왕 TIP 손으로 하던 순서를 먼저 적어 두기

매주 하던 일을 순서대로 적어 봅니다. 공백 지우기, 숫자로 바꾸기, 중복 찾기, 덧붙이기, 합계 맞춰 보기. 이 목록이 그대로 클로드에게 줄 요청이 되고, 나중에 받은 코드가 그 순서를 지키는지 확인하는 기준이 됩니다.

PART 02 따라 하기

SECTION 12-2

12-2 매크로 설계부터 단추까지 다섯 단계

클로드에서는 대화창에서 코드를 받고, 엑셀에서 실행하기

3·4·6편에서 쓴 Claude for Excel은 공식 문서에 매크로와 VBA 작업을 지원하지 않는다고 적혀 있습니다. 그래서 이번 편은 클로드 앱 대화창에서 코드를 설계받고, 실행은 데스크톱 엑셀이 맡습니다. Microsoft 지원 문서에 따르면 웹용 엑셀에서는 VBA 매크로를 만들거나 실행하거나 고칠 수 없습니다.

이번 주 자료를 붙여 넣은 파일을 그대로 첨부하면, 클로드가 입력·통합내역·점검 시트의 구조를 보고 코드를 씁니다. 회사 자료라면 거래처명과 금액을 바꾼 사본을 올립니다.

STEP 1 처리 순서와 확인할 점 듣기

이렇게 말하기

매주 월요일마다 판매관리 프로그램에서 내려받은 판매내역을 ‘입력’ 시트에 붙여 넣고, 정리해서 ‘통합내역’ 아래에 덧붙여. 이걸 버튼 하나로 하는 VBA 매크로를 만들고 싶어. 이번 주 자료를 붙여 넣은 파일을 첨부할게. 코드를 쓰기 전에 처리 순서와 확인할 점부터 정리해 줘.

그러면 처리되는 일

· 입력 시트를 읽어 결제금액이 모두 글자이고, 상품코드와 거래처에 공백이 붙어 있는 것을 찾습니다.

· 통합내역과 비교해 10월 24일 주문이 이미 들어가 있는 것, HG1028-04가 두 번 나온 것을 짚습니다.

· 공백을 먼저 지워야 중복을 찾을 수 있으니 순서를 다섯 단계로 정리하고, 사람이 정해야 할 것 세 가지를 묻습니다.

클로드 대화 화면. 순서·할 일·이번 주 파일에서 보인 것 세 열의 표: 1 앞뒤 공백 지우기(상품코드 끝 공백 2칸, 거래처 앞 공백 1칸), 2 글자 숫자를 숫자로(결제금액 66칸이 글자라 합계 0), 3 중복 표시(10월 24일 5행은 통합내역에 이미 있음, HG1028-04 두 줄이 한 번 더), 4 통합내역에 덧붙이기, 5 점검 기록과 결과 메시지. 아래에 중복 기준, 버튼을 두 번 누를 때, 매크로가 지워도 되는 것에 대한 질문 세 개.
화면 12-2. 코드를 받기 전에 받은 처리 순서와 질문. 순서를 먼저 맞춰 두면 받은 코드를 읽을 때 기준이 됩니다. (재현 화면)

STEP 2 중복 기준과 멈출 조건 정하기

이렇게 답하기

중복은 주문번호+상품코드가 같으면 중복으로 봐. 처리결과 열이 이미 차 있으면 아무것도 하지 말고 멈춰. 매크로가 지우는 건 없게 해 줘. 지난주 입력은 내가 지울게. 숫자로 안 바뀌는 칸이 있으면 덧붙이지 말고 ‘확인 필요’로 표시해 줘.

그러면 처리되는 일

· 중복 기준, 두 번 누를 때 멈추기, 지우지 않기, 숫자 아닌 칸 남기기를 코드 맨 위 주석에 적고 그대로 짭니다.

· 머리글이 예상과 다르면 아무것도 바꾸지 않고 멈추는 확인을 맨 앞에 넣자고 덧붙입니다. 판매관리 프로그램이 열 순서를 바꾸면 엉뚱한 열을 덧붙이게 되기 때문입니다.

엑셀왕 노트 중복 기준은 내가 아는 업무에서 나온다

이 도매점은 한 주문 안에 같은 상품을 두 줄로 나눠 적지 않습니다. 그래서 주문번호+상품코드로 중복을 봅니다. 같은 상품을 색상별로 나눠 두 줄로 적는 곳이라면 이 기준으로는 정상 주문이 중복으로 빠집니다. 기준은 업무를 아는 사람이 정하고, 클로드는 정한 기준을 코드로 옮깁니다.

STEP 3 코드 받아 모듈에 붙여 넣기

이렇게 말하기

정한 기준대로 VBA 매크로를 줘. 단계마다 주석을 달고, 맨 위에 하는 일과 하지 않는 일을 적어 줘. 실행이 끝나면 결과를 메시지로 보여 주고, 점검 시트에 실행 기록을 한 줄 남겨 줘.

받은 매크로 주간정리_매크로.bas

Option Explicit

' ─────────────────────────────────────────────────────────────
' 주간 판매내역 정리·덧붙이기  (클로드 엑셀왕 12편 예제)
' 하는 일
'   0) 입력 시트 머리글과 처리 여부를 확인한다. 다르면 아무것도 바꾸지 않고 멈춘다.
'   1) 2행부터 주문번호·거래처·상품코드·상품명의 앞뒤 공백을 지운다.
'   2) 글자로 들어온 수량·결제금액을 숫자로 바꾼다.
'   3) 주문번호+상품코드가 통합내역이나 입력 안에 이미 있으면 중복으로 표시한다.
'   4) 중복이 아닌 행만 통합내역 맨 아래에 덧붙이고 반영일을 적는다.
'   5) 점검 시트 실행 기록에 한 줄을 남기고 결과를 메시지로 보여 준다.
' 하지 않는 일: 행·시트 삭제, 다른 파일 열기·저장·지우기
' 주의: 매크로를 실행하면 [실행 취소]로 되돌릴 수 없다. 처음에는 사본에서 실행한다.
' ─────────────────────────────────────────────────────────────
Sub WeeklyUpdate()
    Dim wsIn As Worksheet, wsAll As Worksheet, wsChk As Worksheet
    Set wsIn = ThisWorkbook.Worksheets("입력")
    Set wsAll = ThisWorkbook.Worksheets("통합내역")
    Set wsChk = ThisWorkbook.Worksheets("점검")

    ' 0) 머리글 확인: 열 순서가 바뀐 자료는 처리하지 않는다
    Dim heads As Variant, c As Long
    heads = Array("주문일", "주문번호", "거래처", "상품코드", "상품명", "수량", "결제금액", "처리결과")
    For c = 0 To 7
        If Trim(CStr(wsIn.Cells(1, c + 1).Value)) <> heads(c) Then
            MsgBox "입력 시트 " & (c + 1) & "열 머리글이 '" & heads(c) & "'가 아닙니다." & vbCrLf & _
                   "아무것도 바꾸지 않고 멈춥니다.", vbExclamation, "주간 정리"
            Exit Sub
        End If
    Next c

    Dim lastIn As Long, lastAll As Long, r As Long
    lastIn = wsIn.Cells(wsIn.Rows.Count, 2).End(xlUp).Row
    If lastIn < 2 Then
        MsgBox "입력 시트에 붙여 넣은 행이 없습니다.", vbInformation, "주간 정리"
        Exit Sub
    End If
    ' 같은 입력을 두 번 덧붙이지 않도록, 처리결과가 이미 적혀 있으면 멈춘다
    If Application.WorksheetFunction.CountA(wsIn.Range("H2:H" & lastIn)) > 0 Then
        MsgBox "이미 처리한 입력입니다(H열에 처리결과가 있음)." & vbCrLf & _
               "새 주 자료를 붙여 넣은 뒤 다시 누르세요.", vbExclamation, "주간 정리"
        Exit Sub
    End If

    Application.ScreenUpdating = False
    ' 통합내역에 이미 있는 '주문번호|상품코드' 목록
    Dim seenAll As New Collection, seenIn As New Collection, k As String
    lastAll = wsAll.Cells(wsAll.Rows.Count, 2).End(xlUp).Row
    On Error Resume Next
    For r = 2 To lastAll
        seenAll.Add 1, CStr(wsAll.Cells(r, 2).Value) & "|" & CStr(wsAll.Cells(r, 4).Value)
    Next r
    On Error GoTo 0

    Dim s As String, bad As Boolean, st As String, outRow As Long
    Dim nAdd As Long, nDupAll As Long, nDupIn As Long, nBad As Long
    Dim sumIn As Double, sumAdd As Double
    outRow = lastAll
    For r = 2 To lastIn
        ' 1) 앞뒤 공백 지우기
        For c = 2 To 5
            wsIn.Cells(r, c).Value = Trim(CStr(wsIn.Cells(r, c).Value))
        Next c
        ' 2) 글자 숫자를 숫자로 (쉼표와 '원' 글자를 빼고)
        bad = False
        For c = 6 To 7
            s = Replace(Replace(Trim(CStr(wsIn.Cells(r, c).Value)), ",", ""), "원", "")
            If s <> "" And IsNumeric(s) Then
                wsIn.Cells(r, c).Value = CDbl(s)
                wsIn.Cells(r, c).NumberFormat = "#,##0"
            Else
                bad = True
            End If
        Next c
        ' 3) 중복 확인 → 4) 중복이 아니면 덧붙이기
        k = CStr(wsIn.Cells(r, 2).Value) & "|" & CStr(wsIn.Cells(r, 4).Value)
        If bad Then
            st = "확인 필요": nBad = nBad + 1
        ElseIf HasKey(seenAll, k) Then
            st = "중복-통합내역에 있음": nDupAll = nDupAll + 1
        ElseIf HasKey(seenIn, k) Then
            st = "중복-입력 안에서": nDupIn = nDupIn + 1
        Else
            st = "덧붙임": nAdd = nAdd + 1
            seenIn.Add 1, k
            outRow = outRow + 1
            wsAll.Range(wsAll.Cells(outRow, 1), wsAll.Cells(outRow, 7)).Value = _
                wsIn.Range(wsIn.Cells(r, 1), wsIn.Cells(r, 7)).Value
            wsAll.Cells(outRow, 8).Value = Date
            wsAll.Cells(outRow, 1).NumberFormat = "yyyy-mm-dd"
            wsAll.Cells(outRow, 7).NumberFormat = "#,##0"
            wsAll.Cells(outRow, 8).NumberFormat = "yyyy-mm-dd"
            sumAdd = sumAdd + wsIn.Cells(r, 7).Value
        End If
        wsIn.Cells(r, 8).Value = st
        If Not bad Then sumIn = sumIn + wsIn.Cells(r, 7).Value
    Next r

    ' 5) 점검 시트 실행 기록에 한 줄 (18행부터)
    Dim lg As Long
    lg = wsChk.Cells(wsChk.Rows.Count, 1).End(xlUp).Row + 1
    If lg < 18 Then lg = 18
    wsChk.Cells(lg, 1).Value = Now
    wsChk.Cells(lg, 1).NumberFormat = "yyyy-mm-dd hh:mm"
    wsChk.Cells(lg, 2).Value = lastIn - 1
    wsChk.Cells(lg, 3).Value = nAdd
    wsChk.Cells(lg, 4).Value = nDupAll + nDupIn
    wsChk.Cells(lg, 5).Value = nBad
    wsChk.Cells(lg, 6).Value = sumIn
    wsChk.Cells(lg, 7).Value = sumAdd
    wsChk.Cells(lg, 8).Value = outRow - 1
    wsChk.Range(wsChk.Cells(lg, 2), wsChk.Cells(lg, 8)).NumberFormat = "#,##0"
    Application.ScreenUpdating = True

    MsgBox "입력 " & (lastIn - 1) & "행 가운데 " & nAdd & "행을 통합내역에 덧붙였습니다." & vbCrLf & _
           "덧붙이지 않은 행: 중복 " & (nDupAll + nDupIn) & "행(통합내역에 있음 " & nDupAll & _
           ", 입력 안에서 " & nDupIn & "), 확인 필요 " & nBad & "행" & vbCrLf & _
           "점검 시트에서 차이가 0인지 확인하세요.", vbInformation, "주간 정리"
End Sub

' 목록(Collection)에 같은 키가 있는지 확인한다
Private Function HasKey(col As Collection, k As String) As Boolean
    Dim v As Variant
    On Error Resume Next
    v = col(k)
    HasKey = (Err.Number = 0)
    On Error GoTo 0
End Function

엑셀에는 이렇게 붙여 넣습니다.

순서하는 일
1[파일] → [다른 이름으로 저장]에서 파일 형식을 ‘Excel 매크로 사용 통합 문서(*.xlsm)’로 골라 저장합니다. 매크로는 이 형식으로 저장해야 파일에 남습니다.
2[개발 도구] 탭이 없으면 켭니다. Windows는 [파일] → [옵션] → [리본 사용자 지정]에서, Mac은 [Excel] → [환경설정] → [리본 및 도구 모음]에서 기본 탭의 [개발 도구]를 체크합니다.
3[개발 도구] → [Visual Basic]으로 편집기를 열고 [삽입] → [모듈]을 누릅니다.
4받은 코드를 빈 모듈 창에 붙여 넣고 편집기를 닫은 뒤 파일을 저장합니다.
Visual Basic 편집기 재현 화면. 왼쪽 프로젝트 창에 입력·통합내역·점검·사용법 시트와 모듈 아래 Module1. 오른쪽 코드 창에 WeeklyUpdate 매크로: 맨 위 주석에 하는 일 0~5와 하지 않는 일, 실행 취소가 안 된다는 주의. 38~43행은 처리결과가 이미 있으면 멈추는 부분, 59~89행은 공백 지우기, 글자 숫자를 숫자로 바꾸기, 중복 확인과 덧붙이기.
화면 12-3. 모듈에 붙여 넣은 매크로 일부. 주석의 0~5가 STEP 1의 순서, STEP 2의 기준과 짝을 이룹니다. (재현 화면)

코드 한 줄 읽기 39행

If Application.WorksheetFunction.CountA(wsIn.Range("H2:H" & lastIn)) > 0 Then

· CountA → 비어 있지 않은 칸을 세는 엑셀의 COUNTA 함수입니다.

· wsIn.Range(“H2:H” & lastIn) → 입력 시트 처리결과 열의 2행부터 붙여 넣은 마지막 행까지입니다.

· > 0 Then → 한 칸이라도 차 있으면 다음 줄로 가서 메시지를 띄우고 멈춥니다.

한 줄로 읽으면 “이미 처리한 입력이면 손대지 않는다”입니다. 단추를 실수로 두 번 눌러도 같은 주가 두 번 덧붙지 않는 이유이고, STEP 2에서 정한 멈출 조건이 코드로 들어간 자리입니다.

메뉴 경로는 Microsoft 지원 문서를 기준으로 적었고, 엑셀 버전에 따라 메뉴 이름이 조금 다를 수 있습니다.

받은 코드에서 먼저 볼 것

매크로는 파일 안의 값을 한꺼번에 바꾸고, 다른 파일을 열거나 지울 수도 있습니다. 코드를 다 읽지 못하더라도 아래 단어가 나오는 줄은 찾아보고, 그 줄이 무엇을 대상으로 하는지 클로드에게 물어봅니다.

찾아볼 단어하는 일확인할 것
Delete · ClearContents · Clear행이나 칸을 지웁니다지우는 범위가 어디인지, 내가 지우라고 한 범위인지
Workbooks.Open · SaveAs · Kill다른 파일을 열거나 저장하거나 지웁니다이 파일 밖을 건드려야 하는 일인지
EntireRow · EntireColumn · Range(“A:A”)행이나 열 전체를 대상으로 합니다붙여 넣은 행만 처리하면 되는 일인지

이 장의 코드에는 표의 단어가 하나도 없습니다. 클로드에게 “이 코드에서 무언가를 지우거나 다른 파일을 건드리는 줄이 있으면 줄 번호로 알려 줘”라고 물어 확인할 수도 있습니다.

STEP 4 단추 달고 사본에서 눌러 보기

입력 시트에 [삽입] → [도형]으로 둥근 사각형을 그리고 ‘주간 정리 실행’이라고 적습니다. 도형을 마우스 오른쪽 단추로 눌러 [매크로 지정]을 고르고 WeeklyUpdate를 선택한 뒤 [확인]을 누릅니다. [개발 도구] → [삽입]의 양식 컨트롤 [단추]를 써도 됩니다. ActiveX 컨트롤 단추는 Mac에서 지원되지 않으니 도형이나 양식 컨트롤을 씁니다.

처음 누를 때는 파일을 복사해 둔 사본에서 누릅니다. 단추를 누르면 입력 시트 H열에 행마다 처리결과가 적히고, 메시지가 뜹니다. 입력 66행 가운데 59행을 덧붙였고, 중복 7행(통합내역에 있음 5, 입력 안에서 2)은 덧붙이지 않았다는 내용입니다. 결제금액은 숫자로 바뀌어 합계가 1,998,500원으로 나옵니다.

단추를 누른 뒤의 입력 시트. 공백이 지워지고 결제금액이 오른쪽 정렬 숫자로 바뀌었다. H열 처리결과: 2~6행 중복-통합내역에 있음, 34~35행 중복-입력 안에서, 나머지 덧붙임. 가운데 메시지 창: 입력 66행 가운데 59행을 통합내역에 덧붙였습니다. 덧붙이지 않은 행: 중복 7행(통합내역에 있음 5, 입력 안에서 2), 확인 필요 0행. 점검 시트에서 차이가 0인지 확인하세요. 상태 표시줄 합계 1,998,500.
화면 12-4. [주간 정리 실행]을 누른 뒤. 처리결과 열을 보면 어느 행이 왜 빠졌는지 한 줄씩 확인할 수 있습니다. (재현 화면)

엑셀왕 노트 실행 취소로 되돌릴 수 없다

Microsoft 지원 문서는 엑셀에서 매크로를 실행하면 실행 취소 목록이 지워진다고 설명합니다. 단추를 누른 뒤 Ctrl+Z를 눌러도 덧붙인 행이 돌아오지 않습니다. 처음 몇 주는 누르기 전에 파일을 저장해 두고, 결과가 이상하면 저장하지 않고 닫았다가 다시 엽니다.

STEP 5 점검 시트로 확인하기

점검 시트 위쪽은 수식이라 언제든 다시 계산됩니다. 입력 시트에서 ‘덧붙임’으로 표시된 59행, 1,677,100원과 통합내역에 이번 반영일로 들어온 행이 같은지 보고, 붙여 넣은 전체에서 덧붙임·중복·확인 필요를 뺀 차이가 0인지 봅니다. 통합내역 안에 같은 주문번호+상품코드가 두 번 있는 행도 셉니다. 모두 0이면 B15에 ‘일치’가 나옵니다.

점검 시트. 이번에 덧붙인 행 수 59·59 차이 0, 금액 1,677,100·1,677,100 차이 0. 입력 시트 나눠 보기: 붙여 넣은 전체 66행 1,998,500원, 덧붙임 59행 1,677,100원, 중복 7행 321,400원, 확인 필요 0, 차이 0·0. 통합내역 안 중복 키 0. 점검 결과 일치. 아래 실행 기록 4줄: 10월 12·19·26일과 11월 2일 실행, 통합내역 행 수 48, 90, 143, 202.
화면 12-5. 점검 시트와 실행 기록. 통합내역은 143행에서 202행이 되었습니다. (재현 화면)

단추를 한 번 더 누르면 “이미 처리한 입력입니다” 메시지가 뜨고 아무것도 바뀌지 않습니다. 다음 주에는 입력 시트 2행부터 지난주 자료를 지우고 새 자료를 붙여 넣은 뒤 누릅니다. 중복으로 빠진 행은 처리결과 열에서 몇 줄 골라 통합내역에 정말 있는지 찾아봅니다.

엑셀왕 노트 인터넷에서 받은 매크로 파일

Microsoft 문서에 따르면 Windows용 Office는 인터넷에서 받은 파일에 든 매크로를 기본으로 막고, 보안 위험 배너를 띄웁니다. 믿을 수 있는 파일일 때만 파일 속성에서 차단을 풀라고 안내합니다. 이 장의 예제를 매크로가 든 파일로 주지 않고, 코드를 텍스트 파일로 따로 준 까닭이기도 합니다. 코드를 직접 붙여 넣으면 무엇이 들어갔는지 내가 보고 넣게 됩니다.

PART 03 정리와 연습

SECTION 12-3

12-3 누가 무엇을 하나

맡는 쪽하는 일
사람매주 하던 순서를 적고, 중복 기준과 멈출 조건을 정합니다. 받은 코드에서 지우거나 다른 파일을 건드리는 줄이 있는지 보고, 사본에서 처음 실행한 뒤 점검 시트를 확인합니다.
클로드붙여 넣은 자료와 통합내역을 보고 처리 순서와 확인할 점을 짚고, 정한 기준대로 주석 단 VBA 매크로와 점검 수식을 설계합니다.
엑셀단추를 누를 때마다 매크로를 같은 순서로 실행하고, 점검 시트의 차이와 중복 수를 수식으로 계산합니다.

손으로 할 때는 매주 바꾸기 기능으로 공백을 지우고, 금액 열을 숫자로 바꾸고, 주문번호를 하나씩 찾아 이미 들어간 행을 지운 뒤 복사해 붙였습니다.

이 장의 흐름을 한 장에 그린 구조도. 순서 정하기, 기준 정하기, 코드 붙여 넣기, 단추 만들기, 점검 확인의 다섯 단계와 점검 결과(붙여 넣은 66행 1,998,500원, 덧붙인 59행 1,677,100원, 중복 7행 321,400원, 차이 0, 통합내역 143행에서 202행), 사람이 마지막으로 하는 일.
도판 12-1. 이 장의 흐름. 매크로는 한 번 만들고, 매주는 붙여 넣기와 단추 한 번, 점검 확인입니다. 설명용 구조도입니다.

한 번에 말하기

한 번에 말하는 요청

매주 반복하는 엑셀 정리 작업을 VBA 매크로로 만들려고 해. 이번 주 자료를 붙여 넣은 파일을 첨부할게.
코드를 쓰기 전에 처리 순서와 확인할 점을 먼저 정리해 주고, 내가 중복 기준과 멈출 조건을 정하면 단계마다 주석 단 매크로를 줘.
머리글이 다르거나 이미 처리한 자료면 아무것도 바꾸지 말고 멈추게 하고, 지우는 동작은 넣지 마. 실행 결과는 메시지와 점검 시트 실행 기록으로 남겨 줘.

챗GPT·제미나이에 같은 요청을 보내도 됩니다. 받은 코드는 AI마다 다를 수 있으니, 지우는 줄과 다른 파일을 건드리는 줄이 있는지 먼저 보고, 사본에서 실행한 뒤 점검 시트의 차이로 판단하세요.

내 업무에 바꿔 쓰기

첫 문장의 정리 작업만 바꾸면 됩니다.

업무첫 문장 바꿔 쓰기
주간 출고 집계“매주 물류 시스템에서 받은 출고 내역을 붙여 넣고 창고별 집계표에 더하는 일을 …” (출고번호+품목 중복 기준)
카드 사용 내역 정리“매주 카드사 내역을 붙여 넣고 11편의 분류표에 덧붙이는 일을 …” (승인번호로 중복 확인)
출퇴근 기록 누적“매주 출입 기록을 붙여 넣고 9편의 집계 시트에 더하는 일을 …” (사원번호+시각 중복 기준)
신청자 명단 취합“날마다 받은 신청서 명단을 붙여 넣고 전체 명단에 덧붙이는 일을 …” (연락처로 중복 표시)

이 장의 핵심

코드를 받기 전에 처리 순서와 확인할 점부터 받는다. 순서가 맞아야 공백을 지운 뒤 중복을 찾는다.

중복 기준과 멈출 조건, 지워도 되는 것은 사람이 정하고, 클로드는 그 기준을 주석 단 매크로로 옮긴다.

매크로는 실행 취소가 되지 않으니 처음에는 사본에서 누르고, 누른 뒤에는 점검 시트의 차이와 실행 기록을 본다.

직접 해 보기 배송비 열이 생긴 다음 주

예제 파일의 ‘직접해보기/판매내역_내보내기_1102-1108.xlsx’는 다음 주 내보내기 파일입니다. 판매관리 프로그램이 업데이트되면서 수량과 결제금액 사이에 ‘배송비’ 열이 새로 생겼습니다. 입력 시트에 붙여 넣고 단추를 누르면 “입력 시트 7열 머리글이 ‘결제금액’이 아닙니다”라는 메시지가 뜨고 아무것도 바뀌지 않습니다. 45행입니다. 클로드에게 어떻게 고쳐 달라고 하면 될까요?

답 예시

판매관리 프로그램 내보내기에 G열 ‘배송비’가 새로 생겨서 머리글 확인에서 멈췄어. 열 위치 대신 머리글 이름으로 열을 찾게 고쳐 줘. 배송비는 통합내역 I열 ‘배송비’에 따로 덧붙이고, 처리결과는 내보내기 열 바로 오른쪽 빈 열에 써 줘. 바뀐 부분만 줄 번호와 함께 보여 줘.

배송비를 결제금액에 더할지 따로 둘지는 사람이 정합니다. 따로 두기로 하고 고친 코드를 사본에서 실행하면 45행이 모두 덧붙어 통합내역이 247행이 되고, 결제금액 1,361,600원과 배송비 42,000원(14건)이 들어와야 합니다. 점검 시트에도 배송비 합계를 맞춰 보는 줄을 하나 더해 달라고 하면 다음 주부터는 그 줄까지 확인할 수 있습니다. 머리글 확인이 먼저 멈춰 준 덕분에 엉뚱한 열이 덧붙지 않았다는 점도 함께 볼 만합니다.

처음 질문으로 돌아가면, 매주 하는 정리 작업은 단추 하나로 끝낼 수 있습니다. 한결문구의 이번 주 자료 66행 가운데 59행이 덧붙고, 이미 들어갔던 7행은 빠졌습니다. 단추를 누르는 것은 엑셀에 맡기고, 무엇을 중복으로 볼지와 언제 멈출지는 내가 정합니다.

『클로드 엑셀왕』의 첫 열두 편은 이렇게 끝납니다. 거래처 파일을 합치는 일에서 시작해 검산, 형식 정리, 회사 양식, 정산서, 오류 추적, 광고 보고서, 거래내역, 근무시간, 폴더 통합, 카드 분류를 거쳐 매주 누르는 단추에 이르렀습니다. 다룬 업무는 달라도 일을 나누는 방식은 같았습니다. 수식은 클로드가 설계하고, 계산은 엑셀이 하고, 확인은 내가 합니다.


APPENDIX

예제 파일

이번 주 자료를 붙여 넣은 상태의 ‘한결문구_판매통합.xlsx’(입력·통합내역·점검·사용법 시트), 매크로 코드 ‘주간정리_매크로.bas’, 붙여 넣는 방법을 적은 ‘붙여넣는방법.txt’, 매크로 실행 결과를 재현한 ‘완성예시/한결문구_판매통합_실행후.xlsx’, ‘직접 해 보기’용 다음 주 내보내기 파일을 한 번에 받을 수 있습니다. 예제 파일에는 매크로가 들어 있지 않습니다. .bas 파일은 메모장이나 텍스트 편집기로 열어 내용을 복사해 모듈에 붙여 넣습니다. 모든 판매 숫자는 가상 데이터입니다.

클로드 엑셀왕 12 예제 파일 내려받기 (zip)

이 글에 대하여

예제 파일의 수식과 본문 숫자는 2026년 10월 28일 LibreOffice로 다시 계산해 확인했습니다. 매크로의 처리 결과(덧붙인 행 수, 중복 수, 금액)는 같은 순서를 파이썬으로 옮겨 계산해 맞췄고, ‘실행후’ 예시 파일도 그 결과로 만들었습니다. 매크로 코드는 예제 파일 구조에 맞춰 작성했으며 실제 엑셀에서 실행한 화면은 아닙니다. 내 파일에 쓰기 전에 사본에서 한 번 실행해 결과를 확인하세요.

엑셀 메뉴 경로와 매크로 관련 설명은 같은 날 Microsoft 지원 문서(‘Show the Developer tab’, ‘Run a macro in Excel’, ‘Save a macro’, ‘Assign a macro to a Form or a Control button’, ‘Create custom functions in Excel’, ‘Undo, redo, or repeat an action’, ‘Work with VBA macros in Excel for the web’, ‘Macros from the internet are blocked by default in Office’)를 기준으로 적었고, Claude for Excel이 매크로와 VBA 작업을 지원하지 않는다는 내용은 Claude for Excel 공식 문서를 기준으로 했습니다. 이 글의 화면은 모두 예제 파일 값으로 다시 그린 ‘재현 화면’입니다.

이 연재는 저자가 기획하고 AI 도구의 도움을 받아 집필·정리했습니다. 구성, 사실 확인, 표현, 최종 판단과 출판 책임은 저자와 출판사에 있습니다. 클로드와 엑셀의 화면과 기능은 바뀔 수 있으며, 이 글은 2026년 10월 기준입니다. 초판 선공개 원고 v1.0.

『클로드 엑셀왕』 연재 목록 · 이전 편: 카드 내역 분류하기, 카드 사용 내역을 계정과목별로 나눠 집계할 수 있나요? · 다음 편: 공공데이터 비교표 만들기, 공공데이터포털 CSV를 정리해 지역별 비교표를 만들 수 있나요?

사이트 탐색과 단축키

G → S 검색 · ? 이 안내 열기 · Esc 안내 닫기

영문 입력 상태에서 G를 누른 뒤 1.5초 안에 다음 키를 누르세요. 입력창·편집 영역과 다른 대화상자에서는 작동하지 않습니다. G → T는 연결된 책의 목차가 있는 도서·장·자료 페이지에서만 작동합니다.