엑셀 데이터 비교 노가다 끝, 버튼 하나로 업데이트된 내역만 골라내는 매크로
실무에서 가장 번거로운 작업 중 하나는 지난달 데이터와 이번 달 데이터를 대조하여 무엇이 바뀌었는지 찾아내는 일입니다. 제품 단가가 얼마나 변했는지, 수량에 오차가 생기지는 않았는지 수천 줄의 행을 눈으로 비교하다 보면 실수가 생기기 마련입니다. 오늘은 클릭 한 번으로 두 시트를 비교해 값이 바뀐 셀만 찾아내어 별도의 보고서로 만들어주는 매크로를 소개합니다.
1. 데이터 비교 자동화가 필요한 이유
비교 작업의 핵심은 누락 없는 정확성입니다. 특히 원가 관리나 자산 관리처럼 숫자가 예민한 직무에서는 단 1원의 차이도 큰 오류로 이어질 수 있습니다. VBA 매크로를 사용하면 사람이 놓치기 쉬운 미세한 오타나 소수점 차이까지 완벽하게 잡아낼 수 있으며, 비교 결과를 별도의 시트에 정리해 주므로 보고서 작성 시간까지 획기적으로 줄여줍니다.
2. 두 시트 비교 및 변동 내역 추출 VBA 코드
이 코드는 원본 시트와 비교 시트의 동일한 위치를 대조하여 값이 다른 경우에만 해당 행 전체를 새로운 결과 시트로 옮겨줍니다.
먼저 알트와 F11 키를 눌러 편집기를 열고 아래 코드를 모듈에 복사해 보세요.
Sub GenerateDiffReport()
Dim wsOld As Worksheet, wsNew As Worksheet, wsResult As Worksheet
Dim i As Long, j As Long, nextRow As Long
Dim lastRow As Long, lastCol As Long
' 1. 비교할 시트들을 지정합니다.
Set wsOld = ThisWorkbook.Sheets("이전데이터")
Set wsNew = ThisWorkbook.Sheets("현재데이터")
' 2. 결과가 담길 시트를 새로 만듭니다.
On Error Resume Next
Application.DisplayAlerts = False
Sheets("변동내역보고서").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Set wsResult = Sheets.Add(After:=Sheets(Sheets.Count))
wsResult.Name = "변동내역보고서"
' 3. 제목 행을 복사합니다.
wsNew.Rows(1).Copy Destination:=wsResult.Rows(1)
nextRow = 2
' 4. 데이터 범위를 확인합니다.
lastRow = wsNew.Cells(wsNew.Rows.Count, "A").End(xlUp).Row
lastCol = wsNew.Cells(1, wsNew.Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
' 5. 반복문을 돌며 값이 다른 행을 찾아 결과 시트에 복사합니다.
For i = 2 To lastRow
For j = 1 To lastCol
If wsOld.Cells(i, j).Value <> wsNew.Cells(i, j).Value Then
wsNew.Rows(i).Copy Destination:=wsResult.Rows(nextRow)
' 바뀐 셀에만 연두색 배경을 칠해 강조합니다.
wsResult.Cells(nextRow, j).Interior.Color = RGB(204, 255, 204)
nextRow = nextRow + 1
Exit For ' 한 행에 하나라도 다르면 다음 행으로 넘어갑니다.
End If
Next j
Next i
Application.ScreenUpdating = True
MsgBox "변동 내역 추출이 완료되었습니다. 결과 시트를 확인하세요."
End Sub
3. 실무 활용 팁
첫 번째로 시트 이름 맞추기입니다. 위 코드를 사용하기 전 비교하고 싶은 두 시트의 이름을 각각 이전데이터와 현재데이터로 바꾸면 즉시 작동합니다. 만약 시트 이름이 매번 바뀐다면 코드 초반의 시트 이름 부분을 수정하여 유연하게 대처할 수 있습니다.
두 번째로 색상 강조 활용입니다. 위 매크로는 단순히 행을 복사하는 것에 그치지 않고, 어떤 값이 바뀌었는지 해당 셀에 색상을 칠해줍니다. 이를 통해 수백 개의 열 중에서 정확히 어떤 수치가 업데이트되었는지 한눈에 파악할 수 있어 의사결정 속도가 매우 빨라집니다.
4. 마치며
기록된 데이터의 변화를 읽어내는 것이 관리자의 역할입니다. 오늘 배온 비교 매크로를 통해 단순 반복 작업의 피로도에서 벗어나, 왜 그 수치가 변했는지 분석하는 더 가치 있는 일에 시간을 투자해 보시기 바랍니다. 정확한 비교가 데이터 분석의 시작입니다.
'업무 자동화' 카테고리의 다른 글
| 프로그램 설치 없이 윈도우 파일 이름 수백 개 한꺼번에 바꾸기 (0) | 2026.03.05 |
|---|---|
| 엑셀 VBA: 보고서 지옥 탈출, 버튼 하나로 피벗 테이블 자동 완성하기 (0) | 2026.03.04 |
| 엑셀 PDF 저장 자동화, 파일 이름까지 셀 값으로 지정하는 매크로 (3) | 2026.02.26 |
| 엑셀 두 데이터 비교 노가다 끝, 틀린 그림 찾기 매크로 활용법 (0) | 2026.02.25 |
| 엑셀 보고서 자동화 끝판왕, PDF 저장 후 이메일 발송 원클릭 매크로 (0) | 2026.02.24 |