본문 바로가기

자격증/컴활_엑셀

01 엑셀함수~문자열 검색하는 썰

엑셀에서 문자열 내에 특정 문자열이 어디에 있는가를 검색하는 함수는 FIND()가 있다.

 

FIND() 함수는 지정한 텍스트를 다른 텍스트 내에서 찾아 해당 문자의 시작 위치를 나타내는 함수이다.

 

1-1-10-10-20-100

이런 텍스트가 있는데 나는 -가 몇 번째에서 나오는지를 알고 싶을 때

 

대상 문자열 : 1-1-10-10-20-100

 

FIND(찾을 문자열, 대상 문자열, [시작할 위치])

을 똬악하면 -가 몇번째에서 시작하는지 알 수 있다. 

 

여기서는 2가 나온다.

 

 

하지만 나는 왼쪽 기준이 아니라 오른쪽을 기준으로 찾고 싶다.

즉 제일 뒤에 -인 13을 나오게 하고 싶을때.... 마땅히 쓸 수 있는 함수가 없다.

(보통 기준점이 왼쪽으로 시작된다.)

 

그럴 때 사용할 수 있는 함수가 바로 이것이다.

(조합해서 사용해야 한다,.)

 

 FIND("|",SUBSTITUTE(A1,".","|",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))

 

몇가지 함수가 같이 들어가 있는데

간단하게 생각하면 된다.

 

 찾아라( 바꿔라( 자리, 찾을 문자, 바꿀문자,  대상문자열길이 - 바꿔라(대상문자, 찾을 문자, 바꿀 문자) ) )

한글로 해석해보면 이렇게 된다.

 

즉, 내가 찾을 문자를 특정 문자로 바꾼 다음에 원본의 문자열의 길이와 비교해보면 뒤에서부터 검색이 가능하다는 원리이다.

원본 문자열은 16자리 인데 이것 중에서 -를 공백으로 치환하면 11자리가 된다. 즉 -는 5번이 나온다는 소리이다.

바꿔라함수인 SUBSTITUTE()의 4번째 인자는

"치환하고자 하는 문자열이 여러개일 경우 몇 번째 문자열을 치환할 것인지 정한다."인데

위에서 5가 저기로 들어가면 제일 뒤에 -가 내가 원하는 문자로 바뀌겠지?

그것을 찾아라 FIND()함수로 찾으면 되는 것이다!!!

 

이것을 응용하면 오른쪽부터 구하는게 가능하겠지?

(4번쨰 인자에서 -1하면 오른쪽에서 2번쨰가 되는거고 -2하면 오른쪽에서 3번쨰 자릿수가 될 테니까~)

 

 

실제 사용 예

 

FIND("q",SUBSTITUTE(A1,"-","q",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))

 

를 하면 13이 나오는 것을 알 수 있다.