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