[엑셀] 왼쪽에서 특정 문자까지 문자열 자르기
예를 들어 다음과 같은 문자열이 있다고 할 때
@ 앞에 있는 ID 부분만 떼어내고 싶다면
left() 함수를 사용하면 된다.
'첫 문자부터 @이 있는 위치 전까지'의 문자열을 추출해야 하므로
@의 위치를 반환해 주는 find() 함수를 조합해 주면 되겠다.
(참고: 2016/09/26 - [엑셀] - [엑셀] 특정 문자(대소문자)가 포함된 셀의 개수 세기 countif() / find())
요컨대, 아래와 같다.
그러므로
=LEFT(셀, FIND("찾을문자열", 셀)-1)
과 같이 입력하면 되겠다. FIND()함수의 결과에서 1을 감해 주는 것을 잊지 말자.
같은 원리로 오른쪽에서 @까지도 추출할 수 있다.
@이 몇 번째 글자인지 알았으므로, 전체 문자열의 길이에서 그 수를 빼면 오른쪽에 남는 문자열의 길이가 된다.
그러므로
=RIGHT(셀, LEN(셀) - FIND("찾을문자열", 셀))
과 같이 입력하면 되겠다.
다만 위와 같은 추출은 우리가 찾을 '특정 문자열'이 동일하게 여러 개 등장할 경우 제대로 동작하지 않는다.
예를 들어 다음과 같은 자료에서
(-) 기호를 대상으로 같은 방법을 사용하면 오른쪽에 있는 1234, 2345 등만 추출될 거라고 기대할 수 있지만
실제로는 FIND()함수가 왼쪽에서부터 특정 문자를 찾으므로, 우리가 원하는대로 추출되지는 않는 것을 볼 수 있다.
엑셀에는 오른쪽에서부터 문자열을 검색하는 함수가 존재하지 않으므로
이 동작을 수행하기 위해서는 몇몇 함수들을 조합하여 사용하여야 한다.
2016/12/29 - [엑셀] - [엑셀] 오른쪽에서 특정 문자까지 문자열 자르기에서 이어서 살펴보자.
혹시 구글시트를 사용할 수 있는 환경이라면
REGEXREPLACE() 함수를 사용하는 편이 낫겠다.