문과생의 데이터 연습

[Excel] 원하는 문자 추출 (SEARCH & MID & REPLACE) 본문

Excel/Excel

[Excel] 원하는 문자 추출 (SEARCH & MID & REPLACE)

의인은 믿음으로 2022. 6. 18. 22:36
728x90

안녕하세요~ 

오늘은 문자열 관련 엑셀 함수를 알아보고자 합니다. 

 

                                                                                              출발~ 

예제 입니다. 

여기서 문자열 함수를 사용해서 이메일만 뽑아보고 또 특정 이메일로 바꾸는 연습을 해보겠습니다~ 

 

 

1.) 이메일만 뽑기 

gmail.com / daum.net / naver.com / nate.com 의 이메일만 뽑아 봅시다. 그리고 이것들의 개수를 세면 어떤 이메일이 제일 많은지 알 수 있겠죠?  

 

MID 함수 
MID(지정할 셀, 스타트, 끝) 

mid함수를 단독으로 사용해서 이메일만 뽑을 수 있기는 합니다. 

 

 

앞에 셀을 정하고 efefe2223@gmail.com의 gmail.com으로 시작하는 번호는 11입니다. 따라서 11부터 시작하고 

끝은 사실.. 끝까지 뽑을 거니깐 높은 숫자 아무거나 지정해도 gmail 끝까지 뽑힙니다. 

 

문제점! 

 

근데 이 방식은 문제가 있습니다. 

왜죵? 

방금 쓴 함수를 쭉 내리면 아쉽게도 모든 이메일의 스타트 숫자가 다르니(다를 수밖에 없겠죠?) 정확하게 뽑을 수 없습니다. 

따라서  추가적인 함수를 적어줘야 합니다. 

 

find & search 함수 

find 함수 혹은 search 함수를 쓰면 됩니다. (둘 다 일단 기능은 대부분 같습니다. 다른 점은 추후에..)

Search(찾을 문자, 셀) 

모든 이베일에는 @표시가 있음으로 @을 기준으로 찾으면 됩니다. 

 

이렇게 하면 모든 이메일의 @ 위치를 숫자로 알려줍니다. 첫번 째 이메일 같은 경우는 10번째에 @가 있네요 ㅎㅎ 

 

mid & search 응용

방금 배웠던 것들을 응용해봅시다. 

 

search 함수로 @의  스타트 위치 번호를 구했고 그 번호부터 마지막 번호까지 Mid 함수로 쭉 추출하면 되겠죠? 

 

MID(셀, SEARCH("찾을 문자",셀), 끝)

SEARCH("찾을 문자",셀) 가 즉 스타트 번호가 겁니다. 

 

그런데.. @도 같이 뽑혔네요🤣 (당연하지.. @을 기준으로 했잖아 읍읍..

+ 1을 더해주면 됩니다 ㅎ 

 

 

2.) 특정 메일로 바꾸기 

이런 주문(?)이 있을리는 모르겠지만... 모든  naver 이메일 사용자를 gmail로 바꿔보는 겁니다. (그게 의미가..? 읍읍) 

 

Replace 함수 

naver 이메일을 gmail 로 바꿔야함으로 바꾸는 함수 replace 함수를 써야합니다. 

replace(셀, 스타트, 끝, 바꿀 문자)

1부터 3까지 즉 efe문자를 vvv로 바꾸는 예제입니다. 

 

이걸 활용하면 @을 기준으로 시작하는 부분부터 끝까지를 "@gamil.com"으로 바꿔라! 라는 엑셀 함수를 쓸 수 있을 것 같습니다!! 

 

replace + search 응용 

@기준? 하면 딱 search 함수가 떠오르죠? ㅋㅋ 네 replace 함수하고 search 함수를 같이 쓸겁니다. 

 

REPLACE(B2, SEARCH("@",B2), 30, "@gmail.com")

search 함수를 이용해서 @부터 시작해서 끝까지를(30으로 지정했습니다. 어차피 끝까지 뽑는 거기 때문에 마지막 숫자는 그냥 임의로 큰 숫자 입력해주셔도 무관합니다) gmail.com으로 바꾸는 겁니다. 

 

그런데! 우리가 원하는것은 특정 이메일(naver) 만  gmail.com으로 바꾸고 싶었잖아요? ㅋㅋㅋ 

                                                                           맙소사.. 설마 또 다른함수..? 

 

 IF문이 떠오르셔야 합니다 ㅎㅎ 

이걸 말로 표현하면...

만약 어떤 셀이 naver이면  gmail.com으로 바꾸고 (REPLACE(B2, SEARCH("@",B2), 30, "@gmail.com")  아니면 셀 그대로 가라 

이걸 엑셀로 표현해 봅시다 

IF(C2 = "naver.com",  REPLACE(B2, SEARCH("@",B2), 30, "@gmail.com"), B2)

아까 특정 메일만 뽑는 함수를 만들었잖아요? 이걸 참조하는 겁니다. (우려먹기..지렸

 

근데 이렇게 우려먹음을 못하면.. 엑셀함수가 길어집니다.. 😫

 

naver를 보시면 gamil로 바뀐것을 확인 할 수 있어요!! 만약 이메일만 보여주고 싶다면 맨마지막 B2를 C2로 바꾸면 됩니다 ~ 

 

결국 마지막은 if문 + replace + search + mid문(참조 셀) 까지 싹다 써버리는 종합선물세트네요 ㅋㅋ (이거 쓸모가 있냐?

 

 

오늘은 이렇게 해서 문자열 함수를 알아봤습니다. 

 

사실 더 간편한 방법이 있긴 한걸로 알고 있어요.. (근데 그건 다른어려운 함수를..)

저는 이걸로 만족하렵니다 ㅎㅎ 추후 다른 방법을 올려볼게요! 

 

이렇게 해서 문자열 함수를 알아봤습니다. 

ㅂ~ 

 

728x90
Comments