rand(life)

1일1함수 (36) REPLACE 함수 : 지정한 위치에서 문자열 바꿈 본문

컴퓨터/엑셀

1일1함수 (36) REPLACE 함수 : 지정한 위치에서 문자열 바꿈

flogsta 2009. 5. 31. 16:30

1일1함수를 재개합니다.

그동안 45개 정도의 함수를 살펴보았습니다. 앞으로도 400개 정도의 함수가 남아있습니다만, 우리가 평생가도 한번도 쓸 필요가 없을지도 모르는 함수들도 있으므로, 모든 함수를 다 살펴보는 것은 의미가 없을 것 같습니다. 많이 쓰이거나 특정 기능을 위해 꼭 필요한 함수들만 살펴보고, 중간중간에 엑셀 사용을 편리하게 해주는 팁들과, 함수 외에 많은 엑셀의 기능들(차트, 피벗, 해찾기등)을 살펴보기로 하겠습니다. (혹시 다루었으면 하는 함수가 있다면 댓글을 달아주세요)

그리고, 함수와 기능들에 대한 연구를 계속하면서, 각자가 맡은 업무에서 엑셀을 사용했을 때 궁금증이나 해결방법등을 공유하고 함께 연구하는 자리를 마련하려고 합니다. 지난번에 올렸던 이원목적분류표 같은 경우가 좋은 예가 되겠지요. "이런 문서를 엑셀로 만들면 편할 것 같은데, 이 부분에는 어떤 함수를 써야할까요?" 라던지, "이러저런 통계수치료를 보기 좋게 정리하려면 어떤 형식으로 표를 만들면 될까요?"라던지 하는 질문을 누군가 올리면, 다른 분들이 각자 연구하여 해결책을 찾아 올리고, 함께 보고 공유할 수 있겠지요. 그런 자료들이 모이고, 또 수정하는 과정을 거치면 굉장한 자료가 될 것입니다. 지금은 자기가 당장 맡은 업무가 아니기에 관계없을지 몰라도, 다음에 그 업무를 맡게 되면 모아둔 자료들이 힘을 발휘하겠지요.

그러기위해서는 지금의 블로그 방식으로는 힘들 듯 합니다. 블로그는 1인미디어이기 때문에 여러 사람이 참여하는 글을 올릴 수가 없습니다. 카페형식이 되어야할텐데, 기존의 포탈사이트의 카페를 이용하여 외부사람들도 참여하는 방법도 있고, 폐쇄된 형태로 학교 내에서만 운영하는 방법도 있을 듯 합니다. 좋은 의견 있으시면 주세요.

 

자, 서론이 길었습니다. 오늘은 문자열 함수중에서 REPLACE함수입니다. (앞으로 남은 문자열함수 중에서 우리가 다룰 것은 SUBSTITUTE, WON, DOLLAR 뿐입니다.)

 

구문

REPLACE(old_text,start_num,num_chars,new_text)

old_text  일부 문자를 바꿀 문자열입니다.

start_num  old_text에서 new_text로 바꿀 문자의 위치입니다.

num_chars  old_text에서 new_text로 바꿀 문자의 수입니다.

new_text  old_text에 바꿔 넣을 새 문자열입니다.

 

이전에 주민등록번호의 뒷자리를 숨기는 방법을 REPT함수를 이용해서 만든 적이 있었습니다. 이번에는 REPLACE 함수를 이용해서 바꿔봅시다.

 

수식 REPLACE(A1,8,7,"*")

의 의미는 다음과 같습니다.

REPLACE(A1,

A1셀에 있는 내용중

8,

8번째 문자부터

7,

그 뒤의 7개의 문자를

"*")

*라는 문자로 바꾸어라

 

주의할 점은, 주민등록번호 뒷자리 7개의 문자를 하나당 한 개의 글자 "*"로 바꾸는 것이 아니라, 7개 문자 모두를 하나의 문자"*"로 대체시켰다는 것입니다. 물론, "*"문자를 7번 반복하고 싶다면, REPLACE(A1,8,7,"*******") 이라고 쓰시면 되겠습니다

 

좀 더 응용해 보겠습니다.

시트의 이름을 셀에 표시하고 싶을 때 어떻게 할까요? 이를 위해서는 CELL이라는 함수를 사용합니다.

위의 그림처럼, CELL("FILENAME")이라고하면 해당 파일이 있는 디렉토리부터 시트의 이름까지를 표시합니다. 그러면 이것을 이용해서, 시트의 이름을 제목에 넣을 수 있겠습니다.

위의 그림처럼 네 개의 시트마다 제1행에 그 시트의 이름을 이용해서 제목행을 추가하려고 합니다. 물론 일일이 써주면 간단합니다만, 시트의 수가 아주 많다고 가정하고, 간단하게 하는 방법을 찾으려 합니다.

SHIFT키를 이용해서 모든 시트를 선택합니다. ("1학기중간"탭을 선택하고, SHIFT키를 누른 상태에서 "2학기기말"을 선택하면 모든 시트가 선택됩니다)

 

B1셀에 위와 같은 수식을 입력합니다.

=REPLACE(CELL("FILENAME",A1),1,FIND("]",CELL("FILENAME",A1)),"")

그러면 시트의 이름이 출력됩니다.

C1셀에는 나머지 글자를 입력합니다.

이제 다른 시트를 클릭해보시면, 모든 시트의 B1셀에는 해당 시트의 이름이 들어가 있는 것을 볼 수 있습니다.

 

위에서 입력한 수식의 의미는 다음과 같습니다.

=REPLACE(CELL("FILENAME",A1),1,FIND("]",CELL("FILENAME",A1)),"")

 

  2009/04/18 - [컴퓨터/엑셀] - 엑셀로 작성한 이원목적 분류표 간단버전
2009/04/15 - [컴퓨터/엑셀] - 엑셀로 작성한 이원목적분류표