Excel

특정 기호 사이의 문자 찾기(2)

별동산 2024. 4. 8. 09:09
반응형

나. substitute 함수를 이용하는 경우

1편은 아래 URL을 참고 바랍니다.

https://lsw3210.tistory.com/463

 

특정 기호 사이의 문자 추출.xlsx
0.01MB

 

 

substitute 함수는 특정 문자를 다른 문자로 대체하는 함수인데, 문자를 대체하면서 공백을 많이 주면 문자를 구분하기 쉬우므로 많이 사용합니다.

 

예를 들어

=substitute(b2,"-",rept(" ",50))이라고 입력하면
-이 공백 50개로 바뀝니다.

 

여기서 rept는 특정 문자(열)를 반복한다(repeat)는 의미, 다시 말해 공백 50개를 반복하므로 50개의 공백이 삽입되는 것입니다.

 

위 화면을 보면 FEDS 다음에 공백 50개가 있고, 100 다음에 공백 50개, JJ101 다음에 공백 50개가 있습니다.

 

따라서, 첫 번째 하이픈 이전의 문자는 위치 50 이전에 있게 되고,


두 번째 하이픈 이전의 문자는 100 이전에 있게 되며,


세 번째 하이픈 이전의 문자는 150 이전에 있게 됩니다.

 

따라서, 첫 번째 하이픈 이전의 문자는
=MID(SUBSTITUTE(B2,"-",REPT(" ",50)),1,50)로 구할 수 있고,

 

첫 번째와 두 번째 하이픈 사이의 문자는
=MID(SUBSTITUTE(B2,"-",REPT(" ",50)),51,50)로 구할 수 있으며,

 

두 번째와 세 번째 하이픈 사이의 문자는
=MID(SUBSTITUTE(B2,"-",REPT(" ",50)),101,50)로 구할 수 있습니다.

 

그런데, 51, 101이나 50, 100이나 별 차이가 없으므로 50,100으로 하는 것이 편리하며,
위 수식을 일반적인 기준으로 만들면

=MID(SUBSTITUTE(B2,"-",REPT(" ",50)),시작 위치의 하이픈 개수 * 50,50)이 됩니다.

 

다시 말해, 두 번째와 세 번째 하이픈 사이의 문자를 추출하고 싶으면

=MID(SUBSTITUTE(B2,"-",REPT(" ",50)),2*50,50)이 됩니다.

 

그런데 왼쪽에 공백이 있습니다.

 

따라서, 좌우 공백을 없애주는 Trim 함수를 사용해서

=TRIM(MID(SUBSTITUTE(B2,"-",REPT(" ",50)),2*50,50))라고 하면 됩니다.

 

특정 기호 사이의 문자 추출(완성(2).xlsx
0.01MB

반응형