엑셀 매입자료 자동 비교 프로그램 개발기

제공

# 엑셀 매입자료 자동 비교 프로그램 개발기

**태그:** Python, 자동화, Excel, 데이터 분석, Tkinter

## 개요

두 개의 서로 다른 시스템에서 생성되는 매입자료 Excel 파일을 자동으로 비교하는 프로그램을 개발했습니다.
기존 수작업 비교 소요 시간을 약 20분에서 1분으로 대폭 단축시켰습니다.

## 사용 기술

– **Python 3**
– **pandas** – Excel 파일 파싱 및 데이터 조작
– **requests** – 외부 저장소(WebDAV) 연결
– **Tkinter** – 데스크톱 GUI
– **openpyxl** – .xlsx 파일 read 엔진

## 주요 기능

### 1. 스마트 코드 매핑
두 시스템이 서로 다른 제품 코드 체계를 사용하므로, 매핑 테이블(`code_mapping.json`)로 자동 변환:
– 시스템 A 코드 → 시스템 B 코드
– 양방향 매핑 지원

### 2. 부가세 정규화
– 시스템 A: 공급가액(별도) 기준
– 시스템 B: 결제액(포함) 기준
– **두 시스템 모두 부가세 별도 금액으로 통일**하여 비교 (일관성 보장)

### 3. 차액 자동 분석
– 총액 차이만이 아닌 **품목 단위 차이** 자동 식별
– 차이 원인을 수량/단가로 분류
– “가장 의심되는 품목”을 Yellow 하이라이트

### 4. 파일 선택 인터페이스
– WebDAV 저장소에서 엑셀 파일 목록 자동 수집
– 사용자가 번호로 파일 선택
– 파일 타입 자동 검증 (시스템 A vs 시스템 B)

## 시스템 아키텍처

“`
WebDAV 저장소
├── 시스템 A 매입자료 (Excel)
└── 시스템 B 매입자료 (Excel)


[자동 비교 프로그램]
├── 코드 매핑 엔진
├── 부가세 정규화 모듈
├── 차액 분석기
└── GUI 인터페이스 (Tkinter)
“`

## 핵심 알고리즘

### 매칭 전략 (3단계)
1. **코드 매핑 적용** (우선순위最高)
2. **정확한 코드 일치**
3. **Fuzzy name matching** (80% 이상 유사도)

### 출력 필터링
– `abs(diff) > 0.5`만 표시 (소수점 오차 제거)
– 코드 불일치 항목은 내부 처리만, 결과에서 제외
– “가장 의심되는 품목”은 차액 부호와 같은 부호를 가진 항목 중 최대값

## 사용자 경험 예시

“`
[파일 목록]
1. SystemA_2026년_1월.xlsx
2. SystemA_2026년_2월.xlsx
3. SystemB_2026년_1월.xlsx
4. SystemB_2026년_2월.xlsx

선택: SystemA=2, SystemB=4

[결과]
시스템 A 매입금액(부가세 별도): X,XXX,XXX원
시스템 B 등록금액(부가세 별도): X,XXX,XXX원
차액(부가세 포함): ±XX,XXX원

🎯 가장 의심되는 품목
============================================================
코드: PUA005361/4K
품명: [품명]
시스템 A: XXX,XXX원 / 시스템 B: XXX,XXX원
차이: ±XX,XXX원
유형: 공통 품목(수량 차이)
권장: 수량 확인 요망
“`

## 배포 및 사용

### 설치 요구사항
– Python 3.8 이상
– 외부 라이브러리: pandas, requests, openpyxl

### 설치 명령
“`bash
pip install pandas requests openpyxl
“`

### 실행 명령
“`bash
python gui_app.py
“`

## 개발 과정에서의 인사이트

1. **코드 매핑의 중요성**
두 시스템 간 코드 표준화가 안 되어 있을 때 필수

2. **부가세 기준 통일**
별도/포함 기준이 달라서 생기는 오차를 미리 제거

3. **디스플레이 전략**
사용자가 취해야 할 행동에 집중 (수량 확인, 단가 확인)

4. **크로스 플랫폼 대응**
Tkinter로 Windows/Mac/Linux 모두 지원

## 향후 개선 방향

– WebDAV를 로컬 드라이브로 마운트하여 파일 관리 간소화
– 결과를 HTML/PDF로 내보내기
– 자동 이메일 전송 기능
– 다기간 자동 비교 및 트렌드 리포트
– 코드 매핑 자동 학습 기능

## 결론

이 프로그램은 **반복적인 수작업을 자동화**하는经典적인 사례입니다.
핵심은 **시스템 간 불일치를 정확히 이해하고, 그것을 코드로 해결하는 것**이었습니다.

**가장 중요한 교훈**:
코드 매핑과 부가세 정규화를 미리 제대로 설계하지 않으면
나중에 데이터 정합성을 검증하기 어렵습니다.

*본 포스팅은 특정 업체나 제품을 식별할 수 있는 정보를 모두 일반화하였습니다.
모든 실제 코드와 데이터는 비공개입니다.*


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다