Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기이 글의 목적은 서로 다른 엑셀 통합 문서를 정확하게 비교하고 안전하게 병합하는 표준 절차와 실무 팁을 제공하여, 버전 충돌·데이터 손실 없이 품질을 유지한 채 결과물을 만들어내도록 돕는 것이다.
엑셀에서 “비교”는 변경점(삽입·삭제·수정)을 식별하는 작업이고 “병합”은 여러 소스의 변경을 하나의 정본에 반영하는 작업이다. 사용 환경·파일 형식·데이터 구조에 따라 도구 선택이 달라진다.
| 시나리오 | 권장 도구 | 강점 | 주의점 |
|---|---|---|---|
| 두 통합 문서의 셀 단위 변경 비교 | Spreadsheet Compare(Office의 별도 앱), Inquire 추가기능 | 시트·셀·수식·서식 차이 시각화, 보고서 출력 | 결과는 “비교 보고서”이며 자동 병합은 아님 |
| 테이블형 데이터(열 구조 동일) 병합 | 파워쿼리(가져오기·변환), 데이터 모델 | 증분 로드·중복 제거·키 기준 병합, 반복 가능 | 정규화·키 설계 필요 |
| 동일 파일의 동시 편집분 수동 병합 | 공유 통합 문서(레거시) 변경 내용 병합, 변경 내용 추적 | 사용자 변경 기록 기반 충돌 해결 | 레거시 기능, 최신 공동 작성 기능과 동시 사용 불가 |
| 여러 파일·여러 시트 일괄 결합 | 파워쿼리 폴더 연결, VBA 스크립트 | 대량 처리 자동화, 스케줄링 용이 | 초기 설정·코드 관리 필요 |
Spreadsheet Compare는 두 통합 문서 간 차이를 색상으로 구분하여 표시하는 전용 비교 도구이다. 수식 변경, 상수 값 변경, 삽입·삭제된 행·열, 이름 정의 변화, VBA 모듈 차이까지 식별한다.
Inquire 추가기능은 엑셀 리본에 “조회” 탭을 제공한다. 여기의 “파일 비교”는 Spreadsheet Compare와 연동되어 엑셀 내부에서 비교를 관리한다.
열 구조가 동일하거나 키(고유값)로 행을 식별할 수 있다면 파워쿼리가 가장 안전하고 재현 가능한 병합 방법이다. GUI로 조인·변환을 설정하고, 추후 파일만 교체하면 동일 절차를 재사용할 수 있다.
// 키 기반 병합 예시 let Left = Excel.CurrentWorkbook(){[Name="tblLeft"]}[Content], Right = Excel.CurrentWorkbook(){[Name="tblRight"]}[Content], LeftTyped = Table.TransformColumnTypes(Left, {{"ID", type text}, {"금액", type number}}), RightTyped = Table.TransformColumnTypes(Right, {{"ID", type text}, {"상태", type text}}), Merged = Table.NestedJoin(LeftTyped, {"ID"}, RightTyped, {"ID"}, "RightTable", JoinKind.LeftOuter), Expanded = Table.ExpandTableColumn(Merged, "RightTable", {"상태"}, {"상태"}), Clean = Table.RemoveRowsWithErrors(Expanded) in Clean 동일 원본을 복사해 여러 사용자가 별도로 수정한 후 병합해야 하는 경우, 레거시 “공유 통합 문서” 기능의 변경 기록을 활용할 수 있다. 최신 공동 작성(OneDrive/SharePoint 실시간 동시 편집)과는 개념이 다르다.
폴더의 모든 통합 문서를 하나의 마스터 시트로 결합하는 간단한 VBA 예시이다. 열 구조가 동일하다는 전제이다.
Option Explicit Sub AppendAllExcelInFolder() Dim p As String, f As String Dim wb As Workbook, ws As Worksheet, target As Worksheet Dim lastRow As Long, nextRow As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set target = ThisWorkbook.Sheets("Master")
If target.UsedRange.Rows.Count = 1 And target.UsedRange.Columns.Count = 1 Then
nextRow = 2 ' 헤더가 1행이라고 가정
Else
nextRow = target.Cells(target.Rows.Count, 1).End(xlUp).Row + 1
End If
p = "C:\Data\Merge\" ' 폴더 경로
f = Dir(p & "*.xlsx")
Do While f <> ""
Set wb = Workbooks.Open(p & f, ReadOnly:=True)
For Each ws In wb.Worksheets
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
If lastRow >= 2 Then
ws.Range("A2:" & ws.Cells(lastRow, ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column).Address).Copy _
Destination:=target.Cells(nextRow, 1)
nextRow = target.Cells(target.Rows.Count, 1).End(xlUp).Row + 1
End If
Next ws
wb.Close False
f = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
| 검증 항목 | 예시 수식/방법 | 합격 기준 |
|---|---|---|
| 행 수 일치 | =ROWS(tblMerged) | 기대 건수와 일치 |
| 키 중복 없음 | 피벗테이블 또는 =COUNTIF(KeyRange,[@Key]) | 중복 건수 0 |
| 합계/평균 검증 | =SUMIFS, =AVERAGEIFS | 원천 합계와 동일 |
| 누락 검출 | 조인 Anti-Join 결과 확인 또는 =ISNA(XLOOKUP()) | 누락 건 0 |
| 형식 일관성 | 데이터 유효성 검사, ISTEXT/ISNUMBER | 예외 없음 |
서로 다른 열 구조를 가진 파일을 병합하려면 표준 스키마를 설계한다.
=FORMULATEXT(A1)를 적용해 두 파일의 수식을 문자열로 추출 후 비교한다.파일 간 지역 설정이 다르면 같은 값도 다르게 보일 수 있다. 다음 원칙을 따른다.
=DATEVALUE로 변환하고, 기준 지역으로 표시 형식을 통일한다.| 증상 | 원인 | 해결 |
|---|---|---|
| 조인 결과 누락 다수 | 키 대소문자·공백·형식 불일치 | 앞뒤 공백 제거, 대문자 변환, 텍스트/숫자 형식 고정 |
| 중복 행 급증 | 키가 유일하지 않음 | 복합 키 설계 또는 집계로 유일화 |
| 보고서 합계 불일치 | 열 매핑 오류, 통화 변환 누락 | 매핑 테이블 재검토, 통화 환산 열 추가 |
| 비교 결과 비어 있음 | 암호 보호, 다른 시트/이름 참조 | 보호 해제, 숨김 시트 확인, 이름 범위 정리 |
가능하다. Inquire 추가기능의 “파일 비교”를 사용하거나 별도의 Spreadsheet Compare를 사용한다. 결과는 셀·수식·서식 차이를 표로 제시한다.
셀 단위 변경은 완전 자동 병합이 어렵다. 테이블형 데이터는 파워쿼리의 조인·추가 기능으로 반복 가능하게 병합할 수 있다.
공유 통합 문서는 레거시 변경 기록 기반 병합 절차이고, 공동 작성은 클라우드에서 동시 편집하는 실시간 협업 기능이다. 동시 사용은 권장되지 않는다.
불필요 열 제거, 형식 통일, 증분 처리, 키 인덱싱으로 개선한다. 파워쿼리 단계에서 초기 필터링을 적용한다.
가능하다. Spreadsheet Compare는 VBA 모듈 차이도 비교한다. 단, 보안 정책에 따라 접근 권한이 필요하다.
표준 스키마와 열 매핑 테이블을 먼저 정의하고, 파워쿼리로 매핑을 코드화한다. 병합 후 검증 체크리스트를 통과해야 릴리즈한다.