본문 바로가기
엑셀 자동화

파이썬 사용 엑셀에서 날짜 조건 자동화 방법

by 원띵2 2026. 4. 5.

엑셀이나 CSV 파일을 정리하다 보면 모든 데이터를 다 저장하는 것보다 최근 7일, 최근 30일, 특정 월 데이터만 따로 뽑아야 할 때가 많습니다. 거래내역, 주문목록, 문의내역처럼 날짜가 붙어 있는 데이터는 특히 이런 작업이 반복되기 쉽습니다. 따라서 오늘은 날짜 조건으로 필요한 데이터만 자동 저장하는 방법을 흐름에 맞게 정리해보겠습니다.

 

 

날짜 조건 작업이 자주 막히는 이유부터 먼저 이해해야 합니다


처음에는 날짜 조건으로 데이터를 거르는 일이 단순해 보입니다. 그런데 막상 해보면 생각보다 자주 꼬입니다. 거래내역 파일에서 최근 7일 데이터만 저장하려고 했는데 결과가 비어 있거나, 최근 30일이 아니라 엉뚱한 날짜가 섞여 나오거나, 특정 월만 저장하려고 했는데 문자열 비교 때문에 원하는 결과가 나오지 않는 경우가 많습니다. 코드는 얼핏 맞아 보이는데 결과가 이상하면 어디서부터 확인해야 할지 막막해집니다.


이 문제가 자주 생기는 가장 큰 이유는 날짜가 숫자처럼 보이지만 실제로는 문자열로 들어 있는 경우가 많기 때문입니다. 2026-04-05처럼 보여도 파이썬이 날짜로 이해하지 못하면 비교가 제대로 되지 않습니다. 게다가 어떤 파일은 2026.04.05, 어떤 파일은 2026/04/05, 어떤 파일은 2026-04-05 14:30:00처럼 형식이 제각각입니다. 이런 상태에서 바로 조건을 걸면 최근 7일 필터가 의도한 대로 작동하지 않을 수 있습니다.


실무에서는 거래내역, 쇼핑몰 주문목록, 고객 문의내역처럼 날짜 열 이름도 파일마다 다릅니다. 주문일, 등록일, 문의접수일처럼 제각각 적혀 있기 때문에, 중요한 건 코드를 길게 쓰는 것이 아니라 날짜 열을 정확히 찾고 그 열을 날짜 형식으로 바꾸는 작업을 먼저 하는 겁니다. 이 과정을 건너뛰면 뒤의 조건 설정이 아무리 맞아도 결과가 흔들립니다.


그래서 작업 순서를 이렇게 잡는 게 안정적입니다. 날짜 열 확인 → 날짜 형식으로 변환 → 최근 7일·특정 월 같은 조건 적용. 이 흐름을 익혀두면 파일 이름만 바뀌어도 응용이 쉽고, 이후 다른 자동화 작업으로도 자연스럽게 이어집니다.

최근 7일, 최근 30일, 특정 월 데이터는 이렇게 분리하면 됩니다


날짜 조건 자동화의 핵심은 pandas에서 날짜 열을 datetime으로 바꾸고, 기준 날짜를 만들어 비교하는 것입니다. 아래처럼 주문일 열이 있는 주문목록 파일이 있다고 가정해보겠습니다.

import pandas as pd
from datetime import datetime, timedelta

df = pd.read_excel("주문목록.xlsx")

# 날짜 열을 실제 날짜 형식으로 변환
df["주문일"] = pd.to_datetime(df["주문일"], errors="coerce")

# 기준 날짜 설정
today = pd.Timestamp.today().normalize()
last_7_days = today - timedelta(days=7)
last_30_days = today - timedelta(days=30)

# 날짜 조건으로 행 필터링
df_7 = df[df["주문일"] >= last_7_days]
df_30 = df[df["주문일"] >= last_30_days]

# 결과 저장
df_7.to_excel("최근7일_주문목록.xlsx", index=False)
df_30.to_excel("최근30일_주문목록.xlsx", index=False)


여기서 가장 중요한 줄은 pd.to_datetime()입니다. 이 한 줄이 날짜처럼 보이는 값을 실제 날짜 형식으로 바꿔줍니다.

 

errors="coerce"를 넣으면 날짜 변환이 안 되는 값은 비워두기 때문에 전체 코드가 갑자기 멈추는 일을 줄일 수 있습니다. 실무 파일에는 빈칸이나 잘못된 날짜가 섞여 있는 경우가 많아서 이 옵션이 꽤 유용합니다.


특정 월만 저장하고 싶을 때는 연도와 월을 함께 조건으로 거는 방식이 가장 안전합니다. 2026년 3월 주문만 따로 저장하고 싶다면 아래처럼 하면 됩니다.

python# 특정 연도·월 조건으로 필터링
df_march = df[
(df["주문일"].dt.year == 2026) &
(df["주문일"].dt.month == 3)
]

df_march.to_excel("2026년3월_주문목록.xlsx", index=False)


이 방식은 거래내역이나 문의내역에도 그대로 쓸 수 있습니다. 파일명과 날짜 열 이름만 바꾸면 됩니다. 고객 문의 파일이라면 주문일 대신 문의일, 거래내역이라면 거래일로 바꾸면 같은 흐름으로 처리됩니다. 날짜 조건 자동화는 한 번만 제대로 익혀두면 반복 업무를 꽤 줄일 수 있습니다.
저장만 하는 것이 아니라 날짜 조건에 맞는 건수까지 함께 확인하면 더 좋습니다. 최근 7일 문의가 몇 건인지, 최근 30일 주문이 몇 건인지 바로 출력해두면 검수할 때 훨씬 편합니다.

python# 결과 건수 확인 (검수용)
print("최근 7일 데이터 수:", len(df_7))
print("최근 30일 데이터 수:", len(df_30))
print("2026년 3월 데이터 수:", len(df_march))


건수를 같이 출력해두면 저장은 됐는데 내용이 비어 있는 상황을 빨리 잡을 수 있습니다. 자동화는 저장 자체보다 결과를 믿을 수 있게 만드는 것이 더 중요합니다.

 

 

날짜 조건 자동화는 단순 필터가 아니라 반복 업무를 줄이는 실무 도구입니다

 

날짜 조건으로 데이터를 저장하는 작업은 단순히 행 몇 개를 고르는 기능이 아닙니다. 매일 혹은 매주 반복되는 정리 업무를 줄이는 데 훨씬 더 큰 의미가 있습니다. 거래내역에서 최근 7일 자료만 따로 넘겨야 할 때, 주문목록에서 최근 30일 데이터만 보관해야 할 때, 문의내역에서 특정 월 자료만 묶어 보고해야 할 때 이 방식이 실용적으로 쓰입니다. 사람이 직접 필터를 걸고 복사해서 새 파일로 저장하던 일을 코드 한 번으로 처리할 수 있기 때문입니다.


작업할 때 주의할 점도 있습니다.

첫째, 날짜 열이 문자열인지 실제 날짜인지 꼭 확인해야 합니다.

둘째, 기준 날짜를 오늘로 잡을지 특정 마감일로 잡을지 먼저 정해야 합니다.

셋째, 월별 저장은 월만 볼 것이 아니라 연도까지 같이 확인해야 합니다.

같은 3월 데이터라도 2025년 3월과 2026년 3월이 섞이면 전혀 다른 자료가 되기 때문입니다. 이 세 가지만 챙겨도 결과가 훨씬 안정됩니다.


날짜 조건 자동화의 핵심은 복잡한 코드를 쓰는 데 있지 않습니다. 자주 반복되는 작업을 실수 없이 같은 방식으로 처리하는 것이 목적입니다. 흐름을 한 번 잡아두면 거래내역, 주문목록, 문의내역뿐 아니라 출석기록, 예약내역, 정산자료처럼 날짜가 들어가는 거의 모든 파일에 응용할 수 있습니다. 엑셀에서 손으로 필터를 반복하던 작업을 줄이고 싶다면, 이 방법은 생각보다 빠르게 체감됩니다.

 

 

함께보면 좋은 글

 

파이썬 엑셀 조건행 추출 및 저장 자동화

엑셀 파일을 정리하다 보면 모든 데이터를 다 보는 것보다, 내가 필요한 조건에 맞는 행만 따로 뽑아 저장하고 싶은 경우가 더 많습니다. 예를 들어 거래 내역 중 특정 날짜 이후 자료만 보고 싶

heeday4753.com

 


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름