본문 바로가기
업무 지식/엑셀 함수

[엑셀] 앞 n개 단어 추출하는 방법(LEFT,FIND)

by 김억지 2023. 3. 14.

셀의 '왼쪽 몇 개 글자', 또는 '오른쪽 몇 개 글자', 또는 '가운데 몇 번째부터 몇 개 글자'를 추출할 때는 LEFT, RIGHT, MID 함수를 이용하면 됩니다.

 

2023.03.07 - [업무 지식/엑셀 함수] - [엑셀] LEFT, RIGHT, MID 함수로 문자의 일부를 추출하기

 

[엑셀] LEFT, RIGHT, MID 함수로 문자의 일부를 추출하기

문자의 일부를 추출하고자 할 때는 LEFT, RIGHT, MID 함수를 이용하면 됩니다. LEFT 함수 : 문자의 왼쪽부터 인수로 지정한 개수만큼 추출 =LEFT(text, num_chars) 첫 번째 인수 'text'는 추출할 문자가 들어있

pddwork.tistory.com

 

하지만 추출하고자 하는 단위가 '글자 수'가 아니라 '단어'일 때는 위 함수 만으로는 정확한 추출이 불가능합니다. 예를 들어 아래와 같은 상황을 들 수 있습니다.

 

 

위와 같이 주소가 나와있을 때 도로명은 빼고 광역자치단체명과 시군구, 즉 앞의 두 단어만 추출하려고 합니다. 만약 LEFT 함수를 사용할 경우 주소에 포함되어 있는 자치단체명의 글자 수가 각각 다르기 때문에 정확하게 추출이 되지 않습니다. 

 

이럴 때는 추가로 FIND 함수를 사용해야 하는데 함수의 구조는 다음과 같습니다.

 

=FIND(Find_text, Within_text, Start_num)

 

첫 번째 인수는 두 번째 인수로 지정한 텍스트에서 찾을 텍스트입니다.

 

두 번째 인수는 찾으려는 텍스트가 포함된 텍스트입니다.

 

세 번째 인수는 찾기 시작할 문자의 위치입니다. 생략할 수 있으며 생략할 경우 1로 지정합니다. 

 

텍스트에서 단어 단위로 추출을 할 때 유의할 점 단어와 단어는 띄어쓰기, 즉 공백으로 나누어집니다. 그래서 단어에서 공백의 위치를 찾는 것이 중요한데 이때 FIND 함수를 이용하면 됩니다.

 

D2셀에 '=FIND(" ",B2)'를 입력합니다.

 

첫 번째 인수 " "는 찾을 값입니다. 첫 공백의 위치를 찾으려고 하기 때문에 " "를 입력합니다.

 

두 번째 인수 B2는 첫 번째 인수로 입력한 " "의 위치를 찾을 셀입니다.

 

이렇게 입력을 하면 B2셀의 첫 공백의 위치인 '5'가 나타납니다.

 

FIND 함수의 구조를 이해하였다면 FIND 함수와 LEFT 함수를 결합하여 셀의 첫 단어를 추출해 보겠습니다.

 

텍스트의 첫 단어 추출하는 방법

E2셀에 '=LEFT(B2,FIND(" ",B2)-1)'을 입력합니다. 기본적으로 셀의 왼쪽부터 단어를 추출하기 때문에 LEFT 함수를 사용합니다.

 

LEFT 함수의 첫 번째 인수 B2는 단어를 추출할 셀입니다.

 

LEFT 함수의 두 번째 인수 FIND(" ",B2)-1는 B2셀의 왼쪽으로부터 몇 개의 글자를 추출할지 정하는 인수인데 함수의 구조를 살펴보면 다음과 같습니다.

 

FIND 함수의 첫 번째 인수 " "는 두 번째 인수로 지정한 셀에서 찾을 문자입니다.

 

FIND 함수의 두 번째 인수 B2는 첫 번째 인수 " "를 찾을 텍스트입니다.

 

앞서 보았듯이 FIND(" ",B2)의 값은 '5'입니다. B2셀의 첫 공백의 위치이기 때문입니다. 그런데 LEFT 함수의 두 번째 인수로 FIND(" ",B2)이 아닌 FIND(" ",B2)-1을 입력하면 LEFT 함수의 두 번째 인수 값은 '4'가 입력이 되고, B2셀의 왼쪽 4개 글자를 추출하게 됩니다.

 

즉 '=LEFT(B2,FIND(" ",B2)-1)'함수는 B2셀의 첫 공백의 위치를 찾아서, 첫 공백에서 1을 차감한 숫자만큼 B2셀의 왼쪽부터 글자를 추출하기 때문에 B2셀의 길이와 상관없이 첫 단어를 추출하게 됩니다.

 

단어의 길이와는 상관없이 첫 단어가 추출이 됩니다.

 

텍스트의 첫 n개 단어 추출하는 방법

 

첫 단어만 추출하는 것이 아니라 n개의 단어를 추출해야 하는 경우를 알아보겠습니다. 2개의 단어를 추출하는 방법을 이해하시면 3개, 4개 단어를 추출하는 것은 조금만 응용하면 됩니다. 위의 표에서 광역자치단체와 시군구까지, 즉 앞 2개 단어를 추출해 보겠습니다.

 

E2셀에 '=LEFT(B2,FIND(" ",B2,FIND(" ",B2)+1)-1)'을 입력합니다. 첫 단어만 추출할 때보다 다소 복잡해졌습니다.

 

일단 왼쪽부터 단어를 추출하는 것이기 때문에 LEFT 함수를 이용하는 것은 동일합니다. LEFT 함수의 두 번째 인수로 FIND 함수를 이용하는 것 또한 똑같지만 FIND 함수의 세 번째 인수를 지정한 것이 차이점입니다.

 

LEFT 함수의 두 번째 인수인 FIND(" ",B2,FIND(" ",B2)+1)-1의 구조를 살펴보겠습니다.

 

첫 번째 인수 " "는 찾을 값인 공백입니다.

 

두 번째 인수 B2는 첫 번째 인수로 지정한 " ", 즉 공백의 위치를 찾을 값입니다.

 

세 번째 인수 FIND(" ",B2)+1은 첫 번째 공백을 B2에서 찾을 때 시작위치입니다. FIND(" ",B2)+1의 의미는 B2셀의 첫 공백의 위치에서 1을 더한 값입니다. 즉 두 번째 단어가 시작되는 위치를 말합니다.

 

최종적으로 수식의 의미를 해석해 보면 일단 왼쪽에서 n개의 글자를 추출하는 LEFT 함수를 이용합니다. 앞의 두 단어를 추출하기 위해 공백(" ")의 위치를 찾는데, 단 공백을 찾기 시작하는 위치를 '첫 번째 공백 + 1'의 위치부터 찾습니다. 이렇게 되면 두 번째 공백의 위치를 찾게 되고, 마지막으로 두 번째 공백의 위치에서 1을 차감(-1)한 위치까지 글자를 추출합니다.

 

앞 2개의 단어가 추출된 것을 확인할 수 있습니다.

 

참고로 위의 상황에서 3개의 단어를 추출한 경우에는 '=LEFT(B2,FIND(" ",B2,FIND(" ",B2,FIND(" ",B2)+1)+1)-1)'을 입력합니다. 기본 구조는 똑같은데 마지막으로 쓰인 FIND 함수의 3번째 인수에 다시 FIND 함수로 공백을 찾고 +1을 해주면 됩니다. 다소 복잡해 보일 수 있지만 공백을 찾는 시작점을 하나씩 추가해 주는 과정이라고 이해하시면 되겠습니다.

댓글