엑셀에서 문자열 내에 특정 문자열이 어디에 있는가를 검색하는 함수는 FIND()가 있다.
FIND() 함수는 지정한 텍스트를 다른 텍스트 내에서 찾아 해당 문자의 시작 위치를 나타내는 함수이다.
1-1-10-10-20-100
이런 텍스트가 있는데 나는 -가 몇 번째에서 나오는지를 알고 싶을 때
FIND(찾을 문자열, 대상 문자열, [시작할 위치])
을 똬악하면 -가 몇번째에서 시작하는지 알 수 있다.
여기서는 2가 나온다.
하지만 나는 왼쪽 기준이 아니라 오른쪽을 기준으로 찾고 싶다.
즉 제일 뒤에 -인 13을 나오게 하고 싶을때.... 마땅히 쓸 수 있는 함수가 없다.
(보통 기준점이 왼쪽으로 시작된다.)
그럴 때 사용할 수 있는 함수가 바로 이것이다.
(조합해서 사용해야 한다,.)
몇가지 함수가 같이 들어가 있는데
간단하게 생각하면 된다.
찾아라( 바꿔라( 자리, 찾을 문자, 바꿀문자, 대상문자열길이 - 바꿔라(대상문자, 찾을 문자, 바꿀 문자) ) )
한글로 해석해보면 이렇게 된다.
즉, 내가 찾을 문자를 특정 문자로 바꾼 다음에 원본의 문자열의 길이와 비교해보면 뒤에서부터 검색이 가능하다는 원리이다.
원본 문자열은 16자리 인데 이것 중에서 -를 공백으로 치환하면 11자리가 된다. 즉 -는 5번이 나온다는 소리이다.
바꿔라함수인 SUBSTITUTE()의 4번째 인자는
"치환하고자 하는 문자열이 여러개일 경우 몇 번째 문자열을 치환할 것인지 정한다."인데
위에서 5가 저기로 들어가면 제일 뒤에 -가 내가 원하는 문자로 바뀌겠지?
그것을 찾아라 FIND()함수로 찾으면 되는 것이다!!!
이것을 응용하면 오른쪽부터 구하는게 가능하겠지?
(4번쨰 인자에서 -1하면 오른쪽에서 2번쨰가 되는거고 -2하면 오른쪽에서 3번쨰 자릿수가 될 테니까~)
실제 사용 예
FIND("q",SUBSTITUTE(A1,"-","q",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))
를 하면 13이 나오는 것을 알 수 있다.