- 최초 작성일: 2005-08-12
- 최종 수정일: 2026-09-26
- 조회수: 15 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: n번째 단어까지 추출하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
n번째 단어까지 추출하기
핵심 요약
- 주소처럼 여러 단어가 들어 있는 문자열에서 필요한 단어까지 추출합니다.
- 데이터를 일정한 형식으로 표준화하면 후속 처리가 쉬워진다는 점을 설명합니다.
- FIND와 LEFT 함수를 중첩하여 앞의 세 단어를 추출합니다.
질문 하나
각 셀 마다 주소가 일정하지 않게 있습니다.
광역시도는 제외하고 시, 군, 구만 분리하고 싶습니다. 많은 도움 바랍니다.
경기도 남양주시 금곡동 111 ----> 남양주시
서울 노원 공릉 222 ----> 노원구
서대문구 연희동 333 ----> 서대문구
경기 가평 청평 441 ----> 가평군
성남시 분당구 서현동 123 ----> 성남시
주소를 표준화하면 쉬워집니다
사실, 이런 경우는 많은 도움을 드리고 싶어서 뾰족한 방법이 없는 경우입니다.
전화번호를 정리할 때,
어떤 날은 (02)709-1234 형식으로 입력하고,
또 어떤 날은 2696-7711과 같은 형태로 입력하고
다른 기분이 좋은 날은 031)734.6396
이런 식으로 아무런 사전 규칙도 없이 기분 내키는대로 입력해 놓으면 나중에
아주아주 난처한 경우를 당하게 될 수 있습니다.
만약 위의 질문주신 분께서,
경기도 남양주시 금곡동 111
서울시 노원구 공릉동 222
서울시 서대문구 연희동 333
경기도 가평군 청평동 441
경기도 성남시 분당구 서현동 123
이런 식으로 정리를 했더라면 한결 쉽게 원하는 바를 얻으실 수 있었을 것입니다.
그래서 '표준화' 중요한 것이지요.
n번째 단어까지 추출하기
기왕 말이 나온 김에… 다음과 같은 주소록에서 앞의 세 단어를 추출해 볼까요?
주소록 예제
| 주 소 | 세 단어 추출결과 | |||
|---|---|---|---|---|
| 서울시 양천구 목동 신시가지아파트 7단지 | =LEFT(B45,FIND(" ",B45,FIND(" ",B45,FIND(" ",B45)+1)+1)-1) | |||
| 경기도 고양시 덕양구 화정1동 달빛마을 | =LEFT(B46,FIND(" ",B46,FIND(" ",B46,FIND(" ",B46)+1)+1)-1) | |||
| 경북 구미시 원평동 삼익아파트 | =LEFT(B47,FIND(" ",B47,FIND(" ",B47,FIND(" ",B47)+1)+1)-1) | |||
| 서울시 노원구 상계동 주공아파트 | =LEFT(B48,FIND(" ",B48,FIND(" ",B48,FIND(" ",B48)+1)+1)-1) | |||
| 경기도 수원시 권선구 권선동 대림아파트 | =LEFT(B49,FIND(" ",B49,FIND(" ",B49,FIND(" ",B49)+1)+1)-1) | |||
| 서울시 영등포구 여의도동 진주아파트 | =LEFT(B50,FIND(" ",B50,FIND(" ",B50,FIND(" ",B50)+1)+1)-1) | |||
| 경기도 고양시 일산서구 탄현동 탄현마을5단지 | =LEFT(B51,FIND(" ",B51,FIND(" ",B51,FIND(" ",B51)+1)+1)-1) |
=LEFT(B45,FIND(" ",B45, FIND(" ",B45,FIND(" ",B45)+1)+1)-1)다른 내용은 따로 설명드릴 사항이 없어 보이는군요. ^^;
문장 내에서 공백 수만큼(여기서는 세 단어니까 3번) Find 함수를 중첩해서 사용한 점만
눈여겨 보시면 되겠습니다.
다음 시간에...
마치며
문자열을 일정한 규칙으로 정리해 두면 원하는 단어까지 추출하는 작업도 훨씬 간단해집니다. 이번 예제처럼 공백을 기준으로 필요한 부분을 잘라내는 방법을 활용해 보세요.