본문 바로가기
엑셀

[엑셀] 왼쪽에서 특정 문자까지 문자열 자르기

by LightBlogger 2016. 12. 29.

예를 들어 다음과 같은 문자열이 있다고 할 때



@ 앞에 있는 ID 부분만 떼어내고 싶다면


left() 함수를 사용하면 된다.


'첫 문자부터 @이 있는 위치 전까지'의 문자열을 추출해야 하므로


@의 위치를 반환해 주는 find() 함수를 조합해 주면 되겠다.


(참고: 2016/09/26 - [엑셀] - [엑셀] 특정 문자(대소문자)가 포함된 셀의 개수 세기 countif() / find())


요컨대, 아래와 같다.



그러므로 


=LEFT(셀, FIND("찾을문자열", 셀)-1)


과 같이 입력하면 되겠다. FIND()함수의 결과에서 1을 감해 주는 것을 잊지 말자.



같은 원리로 오른쪽에서 @까지도 추출할 수 있다.


@이 몇 번째 글자인지 알았으므로, 전체 문자열의 길이에서 그 수를 빼면 오른쪽에 남는 문자열의 길이가 된다. 



그러므로


=RIGHT(셀, LEN(셀) - FIND("찾을문자열", 셀))


과 같이 입력하면 되겠다.



다만 위와 같은 추출은 우리가 찾을 '특정 문자열'이 동일하게 여러 개 등장할 경우 제대로 동작하지 않는다.


예를 들어 다음과 같은 자료에서



(-) 기호를 대상으로 같은 방법을 사용하면 오른쪽에 있는 1234, 2345 등만 추출될 거라고 기대할 수 있지만



실제로는 FIND()함수가 왼쪽에서부터 특정 문자를 찾으므로, 우리가 원하는대로 추출되지는 않는 것을 볼 수 있다.


엑셀에는 오른쪽에서부터 문자열을 검색하는 함수가 존재하지 않으므로


이 동작을 수행하기 위해서는 몇몇 함수들을 조합하여 사용하여야 한다.


2016/12/29 - [엑셀] - [엑셀] 오른쪽에서 특정 문자까지 문자열 자르기에서 이어서 살펴보자.





혹시 구글시트를 사용할 수 있는 환경이라면


REGEXREPLACE() 함수를 사용하는 편이 낫겠다.



반응형

댓글