
특정 문자의 위치를 표시하는 함수인 FIND, SEARCH 함수를 알아보자.
이 함수들은 문자열에서 특정 문자의 위치를 찾아낼 수 있는 함수인데 살짝 다르다.
FIND는 영문자의 대소문자를 구분할 수 있지만, 와일드카드 문자를 사용할 수 없고,
SEARCH는 영문자의 대소문자를 구분할 수 없지만, 와일드카드 문자를 사용할 수 있다.
용도는 살짝 다르지만 한글만을 찾을때는 똑같이 써도 된다.
인수도 같다.
FIND(찾으려는문자, 찾을 문자가 있는 텍스트가 입력된 셀, 시작 위치)
SEARCH(찾으려는문자, 찾을 문자가 있는 텍스트가 입력된 셀, 시작 위치)
※ 와일드카드 문자는 (?,*) 를 말한다.
와일드카드 문자 ? 는 모든 단일문자
와일드카드 문자 * 는 임의의 문자
나는 FIND나 SEARCH를 쓸 때 LEFT, RIGHT, MID와 같은 문자열에서 특정 문자를 추출할 때 쓰는 함수와 같이 사용한다.
아래와 같은 고등학교 목록에서 B2 데이터를 가지고 D2에 "한봄고등학교"를 "한봄고" 형식으로 변경하는 수식을 만들어보자.

우선 시설명의 고등학교 글자는 6글자 고정이 아니고 B8셀과 같이 글자수가 많은 고등학교들도 있다.
먼저 글자의 위치를 표시하는 FIND나 SEARCH를 사용해서 "고등학교"가 있는 위치를 구하고 그 위치 데이터를 사용하고 LEFT 함수를 더해 "OO고" 형식으로 변경해보자.
B2셀의 "고등학교"의 위치를 구하는 수식은
= SEARCH("고등학교",B2,1)
OR
= FIND("고등학교",B2,1)
"고등학교"라는 글자를 B2에서 찾아 왼쪽에서 1번째 문자부터 몇번째에 있는지를 찾아라~
여기서의 값은 3으로 나오는데 이걸 LEFT 함수의 두번째 인수로 적용해서 값을 구하면 원하는 값을 얻을 수 있다.
= LEFT(B2, SEARCH("고등학교",B2,1))
OR
= LEFT(B2, FIND("고등학교",B2,1))
LEFT 함수를 써서 B2셀의 3번째 값까지를 반환하면 D2의 값은 "한봄고"로 나온다.
B8셀의 데이터를 D8에다가 넣는다고 하면
"고등학교"의 위치는
D8 = SEARCH("고등학교",B8,1)
OR
D8 = FIND("고등학교",B8,1)
값은 6,
이걸 LEFT 함수를 써서 값을 구하면
D8 = LEFT(B8, SEARCH("고등학교",B8,1))
OR
D8 = LEFT(B8, FIND("고등학교",B8,1))
B8셀의 6번째 문자까지를 가져오면 "경기스마트고"로 표시된다.

그리고 소재지 도로명 주소에서 시or군 지역명을 따로 추출해보자.
여기에선 MID 함수를 써서 찾아보도록 하자.
일단 C2의 값에서 "시 "를 찾는 함수를 FIND, SEARCH를 사용해서 만들어보자.
"시 " 이건 시+공백1칸 이다.
= SEARCH("시 ",C2,1)
OR
= FIND("시 ",C2,1)
값은 7,
여기까지 되었으면 MID함수를 써서 지역명을 가져오는 수식을 만들어보자.
= MID(C2,SEARCH("시 ",C2,1)-3,3) .. 찾을 문자가 포함된 문자열
= MID(C2,SEARCH("시 ",C2,1)-3,3) .. 찾을 문자 시작 위치 왼쪽부터 1, 여기에서 -3을 하는 이유는 지역명이 시, 군빼고 최대 3자이기 때문에 "시 " 이전 3자 앞에서 시작
= MID(C2,SEARCH("시 ",C2,1)-3,3) .. 찾을 위치부터 가져올 문자의 개수, 3자 앞에서 시작하고 지역명 최대 3글자까지 가져오도록 3으로 입력
이렇게 하면 수원, 안양 등 지역명이 2자인 경우 (공백1)수원, (공백1)안양 으로 표시되고, 의정부, 남양주 등 지역명이 3자인 경우 의정부, 남양주 그대로 표시된다.
(공백1)수원, (공백1)안양으로 표시되는 데이터에 공백을 없애 주려면 위 수식에 TRIM함수를 씌워 주면 공백이 사라진다.
TRIM 함수는 셀의 앞 뒤 공백을 지워주는 함수이다.
= TRIM(MID(C2,SEARCH("시 ",C2,1)-3,3))
이렇게 하면 2자리 지명도 공백없이 2자로 표시되고, 3자리 지명은 그대로 3자로 표시된다.
그리고 시 지역말고 군 지역도 있기 때문에 IFERROR 함수를 써서 값이 오류 일때 적용해주는 수식을 작성해주면 완성.
= IFERROR(값, 값이 오류일때 표시할 값)
= IFERROR(TRIM(MID(C2,SEARCH("시 ",C2,1)-3,3)),TRIM(MID(C2,SEARCH("군 ",C2,1)-3,3)))
오류일때 표시할 값을 "시 "를 찾았던 수식처럼 "군 "을 찾아서 지역명을 가져올 수 있도록 수식을 설정했다.
그러면 아래와 같이 출력되는 것을 확인할 수 있다.


'엑셀' 카테고리의 다른 글
[EXCEL/엑셀] MAX, MIN, DMAX, DMIN 함수 최대값, 최소값 구하기 (0) | 2025.04.14 |
---|---|
[EXCEL/엑셀] IF, 다중IF, IFS 함수 조건에 따른 결과값 표시하기 (0) | 2025.04.02 |
[EXCEL/엑셀] AVERAGE, AVERAGEA 함수 - 평균 구하기 (0) | 2025.03.31 |
[EXCEL/엑셀] 데이터를 입력하면 자동 테두리 표시 (조건부서식) (0) | 2025.03.29 |
[EXCEL/엑셀] 조건부 서식 - 데이터 막대 / 셀 데이터를 그래프 형태로 표시 (0) | 2025.03.26 |