엑셀을 정리하다 보면 정확히 일치하는 값보다 특정 단어가 포함된 행만 따로 보고 싶은 경우가 더 많습니다. 문의 내용에 “환불”이 들어간 내역만 모으거나, 거래처명에 특정 회사명이 포함된 데이터만 따로 저장해야 하는 식입니다. 이번 글에서는 이런 작업을 손으로 찾지 않고, 파이썬으로 필요한 행만 골라내는 방법을 정리해보겠습니다.
특정 단어 포함 행 찾기가 생각보다 자주 꼬이는 이유
처음에는 이 작업이 단순해 보입니다. 엑셀에서 검색하듯이 특정 단어만 찾으면 될 것 같기 때문입니다. 그런데 막상 파이썬으로 처리하려고 하면 예상보다 자주 문제가 생깁니다. 분명 “환불”이라는 단어가 들어간 문의만 찾고 싶은데 결과가 비어 있거나, 반대로 전혀 상관없는 행이 같이 섞여 나오는 경우가 있습니다. 코드는 길지 않은데 결과가 기대와 다르면 어디를 봐야 할지 바로 감이 오지 않습니다.
이런 문제가 자주 생기는 가장 큰 이유는 데이터가 깔끔하지 않기 때문입니다. 문의 내용 열에 텍스트만 들어 있는 것이 아니라 빈칸이 섞여 있거나, 숫자와 문자가 함께 들어 있거나, 띄어쓰기와 특수문자가 제각각일 수 있습니다. 예를 들어 어떤 행은 “환불 요청”, 어떤 행은 “환불문의”, 어떤 행은 “환불 관련 확인 부탁드립니다”처럼 표현이 모두 다릅니다. 거래처명도 마찬가지입니다. 같은 회사라도 “주식회사 ABC”, “ABC”, “ABC코리아”처럼 다르게 적혀 있으면 단순 비교로는 원하는 결과를 한 번에 모으기 어렵습니다.
여기서 중요한 것은 정확히 같은 값만 찾는 것과, 어떤 단어가 포함된 행을 찾는 것은 전혀 다른 작업이라는 점입니다. 정확히 일치하는 값 찾기는 == 같은 조건으로 해결할 수 있지만, 포함 여부를 찾을 때는 문자열 안에 특정 단어가 들어 있는지를 확인해야 합니다. 이 차이를 모르면 코드는 맞는 것 같은데 계속 결과가 어긋나는 일이 생깁니다.
실무에서는 특히 고객 문의내역, 주문 메모, 거래처 리스트처럼 텍스트가 자유롭게 입력되는 데이터에서 이런 작업이 자주 필요합니다. 그래서 이 주제의 핵심은 어려운 코드가 아니라, “어떤 열에서”, “어떤 단어를”, “포함 기준으로” 찾을 것인지 분명하게 정리하는 데 있습니다. 이 흐름만 익혀두면 반복 검색 작업을 꽤 많이 줄일 수 있습니다.

문의 내용이나 거래처명에서 특정 단어 포함 행은 이렇게 찾으면 됩니다
특정 단어가 포함된 행을 찾을 때 가장 많이 쓰는 방법은 pandas의 str.contains()입니다. 이 기능을 쓰면 어떤 열 안에 내가 원하는 단어가 들어 있는 행만 골라낼 수 있습니다. 예를 들어 문의내역 파일에서 문의 내용 열에 “환불”이 들어간 행만 찾고 싶다면 아래처럼 작성하면 됩니다.
import pandas as pd
df = pd.read_excel("문의내역.xlsx")
refund_rows = df[df["문의내용"].str.contains("환불", na=False)]
refund_rows.to_excel("환불문의만_저장.xlsx", index=False)
print("환불 관련 문의 수:", len(refund_rows))
여기서 꼭 눈여겨볼 부분은 na=False입니다. 실무 파일에는 문의내용이 비어 있는 행이 섞여 있는 경우가 많습니다. 이 옵션이 없으면 빈칸 때문에 오류가 나거나 결과가 흔들릴 수 있습니다. 그래서 포함 검색을 할 때는 na=False를 함께 넣는 습관이 꽤 중요합니다.
거래처명에서도 같은 방식으로 사용할 수 있습니다. 예를 들어 거래처명 열에서 “테크”라는 단어가 들어간 회사만 따로 모으고 싶다면 아래처럼 처리하면 됩니다.
import pandas as pd
df = pd.read_csv("거래처목록.csv", encoding="utf-8-sig")
company_rows = df[df["거래처명"].str.contains("테크", na=False)]
company_rows.to_csv("테크포함_거래처목록.csv", index=False, encoding="utf-8-sig")
print("선택된 거래처 수:", len(company_rows))
이 방식이 좋은 이유는 정확히 일치하지 않아도 원하는 단어가 포함된 데이터를 폭넓게 잡아낼 수 있기 때문입니다. 예를 들어 “한국테크”, “테크솔루션”, “미래테크산업”처럼 이름이 조금씩 달라도 “테크”만 들어 있으면 함께 찾을 수 있습니다. 실무에서는 이런 포함 검색이 훨씬 더 자주 쓰입니다.
여기서 한 단계 더 생각해볼 부분도 있습니다. 데이터에 대소문자가 섞여 있거나, 띄어쓰기가 일정하지 않을 수도 있습니다. 영문 데이터라면 case=False 옵션을 추가해 대소문자 구분 없이 찾을 수 있습니다.
result = df[df["고객메모"].str.contains("refund", case=False, na=False)]
한글 데이터에서는 대소문자 문제는 적지만, 공백이나 특수문자가 변수처럼 섞여 있을 수 있습니다. 그래서 실제 작업할 때는 먼저 몇 줄을 직접 눈으로 확인해본 뒤, 어떤 단어로 찾는 것이 가장 안정적인지 정하는 편이 좋습니다. “환불” 하나로 충분한지, 아니면 “환불”, “반품”, “취소”까지 함께 찾아야 하는지 먼저 결정하면 결과가 훨씬 실용적으로 나옵니다.
포함 검색 자동화는 반복 확인 업무를 줄여주는 가장 현실적인 방법입니다
특정 값이 포함된 행만 찾는 작업은 겉보기에는 단순하지만, 실제 업무에서는 꽤 자주 반복됩니다. 문의내역에서 환불 관련 건만 따로 모아야 할 때, 거래처 목록에서 특정 회사군만 다시 정리해야 할 때, 주문 메모에서 특정 키워드가 들어간 건만 검토해야 할 때 이 방식이 바로 쓰입니다. 손으로 하나씩 검색하고 복사하는 방식은 데이터가 적을 때만 버틸 수 있고, 파일이 커질수록 실수가 늘어나기 쉽습니다.
작업할 때 주의할 점도 분명합니다.
첫째, 검색할 열에 빈칸이 있는지 먼저 확인하는 것이 좋습니다.
둘째, 찾고 싶은 단어가 너무 짧으면 원하지 않는 결과까지 같이 잡힐 수 있습니다.
셋째, 같은 의미를 가진 다른 표현이 많은지 함께 생각해야 합니다.
예를 들어 환불 관련 문의를 찾는다고 해도 실제 데이터에는 “취소”, “반품”, “결제취소”처럼 다른 표현이 있을 수 있습니다. 이런 경우에는 검색 단어 하나만 고집하기보다, 어떤 표현까지 함께 볼지 기준을 정해두는 편이 더 현실적입니다.
결국 이 자동화의 핵심은 코드를 화려하게 짜는 데 있지 않습니다. 사람이 반복해서 확인하던 일을 같은 기준으로 꾸준히 처리하는 데 있습니다. 한 번 흐름을 만들어두면 문의내역, 주문 메모, 거래처명뿐 아니라 상품명, 담당자명, 주소, 비고란처럼 텍스트가 들어가는 거의 모든 열에 그대로 응용할 수 있습니다. 직접 검색하고 복사하던 시간을 줄이고 싶다면, 이 주제는 꽤 빠르게 체감되는 자동화 방법입니다
함께보면 좋은 글
파이썬 날짜 조건 자동화 방법
엑셀이나 CSV 파일을 정리하다 보면 모든 데이터를 다 저장하는 것보다 최근 7일, 최근 30일, 특정 월 데이터만 따로 뽑아야 할 때가 많습니다. 거래내역, 주문목록, 문의내역처럼 날짜가 붙어 있
heeday4753.com
'엑셀 자동화' 카테고리의 다른 글
| 파이썬 엑셀 빈칸 정리법 (0) | 2026.04.06 |
|---|---|
| 파이썬 여러 조건 행 추출법 (0) | 2026.04.05 |
| 파이썬 사용 엑셀에서 날짜 조건 자동화 방법 (0) | 2026.04.05 |
| 파이썬 엑셀 조건행 추출 및 저장 자동화 (0) | 2026.04.04 |
| 파이썬 엑셀 중복 데이터 제거 방법 (0) | 2026.04.04 |