본문 바로가기
Python - 자동화

[12편] 폴더 안 대량 엑셀 파일에서 조건 검색 결과만 추출하기 - "개별 파일 저장" 하기

by ramzee 2025. 5. 12.

1. 왜 이걸 해야 할까?

회사에서는 수십, 수백 개의 엑셀 파일을 관리할 때가 많습니다.

이 파일들에서...

  • 특정 조건(A등급, 매출 60000 이상 등)에 맞는 데이터만
  • 자동으로 뽑아내야 할 때
  • 그리고 각 파일별로 따로 저장해야 할 때

파이썬 자동화를 사용하면, 파일 하나하나 열지 않고도 필요한 데이터만 추출하고, '파일별로 저장'까지 자동화할 수 있습니다!

---

2. 6편과 12편의 차이점은?

구분 [6편] 조건 데이터 추출 후 하나로 통합 [12편] 조건 데이터 추출 후 개별 파일 저장
초점 조건에 맞는 데이터 → 모두 모아서
1개의 통합 파일 생성
조건에 맞는 데이터 → 파일별로 따로따로
여러 개의 파일 저장
결과물 하나의 큰 엑셀 파일
(예: 통합_결과.xlsx)
조건을 만족하는 작은 엑셀 파일 여러 개
(예: sample1_영업부_추출.xlsx 등)
사용 예시 전체 부서 통합 리포트 만들기 부서별, 지점별 데이터 분리 저장하기
실무 적용 전체 관리용 파일 작성 팀별, 부서별 보고용 파일 작성

✅ 쉽게 요약하면, [6편]은 "모으기" | [12편]은 "나누기"입니다.

3. 어떤 상황에서 유용할까?

  • 부서별 보고서를 따로 파일로 제출해야 할 때
  • 지점별 실적 파일을 개별 관리해야 할 때
  • 특정 조건에 맞는 직원만 따로 저장해서 전달해야 할 때

개별 저장 자동화는 실무 배포 작업에 꼭 필요합니다.

---

4. 준비물

  • Python 설치
  • pandasopenpyxl 설치
  • 엑셀 데이터 파일(.xlsx) 준비

설치 방법:

pip install pandas openpyxl

✅ 샘플 파일 다운로드:

sample_sheets_rich.zip
0.01MB

(압축 풀면 sample1.xlsx, sample2.xlsx 파일이 들어 있습니다.)

---

5. 본격 실습: 대량 파일에서 조건 검색 + 개별 저장하기

5-1. 폴더 준비

  • 엑셀 파일들은 C:/Users/YourName/Desktop/엑셀모음 폴더에 모아주세요.
  • 결과 파일은 C:/Users/YourName/Desktop/조건추출결과 폴더로 저장됩니다.

---

5-2. 코드 작성

import os
import pandas as pd

# 입력 폴더
input_folder = 'C:/Users/YourName/Desktop/엑셀모음'

# 결과 저장 폴더
output_folder = 'C:/Users/YourName/Desktop/조건추출결과'
os.makedirs(output_folder, exist_ok=True)

# 조건 설정
target_department = '영업부'
sales_threshold = 60000

# 모든 파일 처리
for file in os.listdir(input_folder):
    if file.endswith('.xlsx'):
        file_path = os.path.join(input_folder, file).replace('\\', '/')

        # 파일 안 모든 시트 읽기
        sheets = pd.read_excel(file_path, sheet_name=None)

        for sheet_name, df in sheets.items():
            if {'이름', '부서', '매출액'}.issubset(df.columns):
                # 조건에 맞는 데이터 필터링
                condition = (df['부서'] == target_department) & (df['매출액'] >= sales_threshold)
                filtered_df = df[condition]

                if not filtered_df.empty:
                    # 결과 저장
                    save_name = f"{os.path.splitext(file)[0]}_{sheet_name}_추출.xlsx"
                    save_path = os.path.join(output_folder, save_name).replace('\\', '/')
                    filtered_df.to_excel(save_path, index=False)

print("✅ 조건 검색 및 개별 파일 저장 완료! 결과 폴더:", output_folder)

---

5-3. 실행 결과

  • sample1_영업부_추출.xlsx, sample2_개발부_추출.xlsx 등
  • 조건을 만족하는 파일만 개별로 저장됩니다.

✅ 하나하나 열어 확인하고 저장하는 수고를 덜 수 있습니다!

---

6. 📢 여기서 주의사항!

  • 조건을 정확히 설정하세요. (예: 부서명, 매출 기준)
  • 컬럼명 오타 주의하세요. ('이름', '부서', '매출액' 정확히 일치)
  • 폴더 경로는 슬래시(/) 방향으로 표기하세요.

---

7. 실무 적용 꿀팁

  • 조건을 여러 개 걸 수 있습니다. (AND, OR 조합)
  • 결과 파일명에 날짜를 넣으면 버전 관리가 쉬워집니다.
  • 추출된 결과를 다시 통합하는 방법은 13편에서 다룹니다!

---

8. 요약

항목 요약
기능 대량 엑셀 파일에서 조건에 맞는 데이터만 추출하고 개별 저장
효과 필요한 데이터만 빠르게 추출 및 파일화
준비물 Python + pandas + openpyxl
독자 초보자 OK (복붙 실습 가능)
주의사항 조건 설정과 컬럼명 오타 주의

---

✨ 다음편 예고

[13편] 필터링한 데이터를 하나의 파일로 통합 저장하기
: 여러 추출 결과를 하나로 모아 깔끔하게 정리하는 방법을 배웁니다!