본문 바로가기

업무 활용 Excel 팁

엑셀 시트명을 불러오는 함수를 낱낱이 파헤쳐보자

반응형

 

엑셀 시트명 소환하는 함수

시트명을 소환하는 아래 함수를 그대로 복붙해서 사용하세요~! 

단, 엑셀 파일이 어딘가에는 반드시 저장되어 있어야 값이 나옵니다! 

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

 

* 참고: 

CELL("filename",A1)

  => "엑셀파일경로 + 시트명" 문자열

FIND("]", CELL("filename",A1))

  => 문자열에서 "]"가 시작하는 위치 소환 

REPLACE(문자열,1,N,"")

  => 문자열의 첫번째 부터 N번째까지를 ""로 변경 

 

 

 

시트명 소환 함수 파헤치기

엑셀의 시트명을 함수로 소환해보기 위해서는 아래와 같이 3개의 함수가 필요합니다. 

 

1. CELL 함수 

2. FIND 함수

3. RELPLACE 함수 

 

이제 위 세 개의 함수를 각각 파헤쳐보고 최종적으로 시트명을 소환하는 함수(맨 아래에 있음)를 짜 볼 계획이에요.

 

첫 번째, CELL 함수

CELL 함수는 아래와 같이 사용합니다. 

# CELL 함수: 
=cell(셀 속성 정보, 레퍼런스 셀 주소)

# CELL 함수 사용예시: 
=cell("row",A3) --> A3 셀의 행(row) 번호인 3을 리턴

 

그리고 실제로 엑셀에서 CELL함수를 입력해보면 아래와 같이 첫 번째 인자에 대한 예시들이 쭉 뜨는 걸 알 수 있어요.

이 예시들을 꼭 따옴표 안에 적어서 전달해주면 됩니다. (ex: cell("color",...) // cell("filename",...) // ...)

CELL 함수 첫번째 속성 예시

 

이제 CELL 함수로 가장 먼저 현재 엑셀 파일경로를 소환할겁니다. 

이 인자의 이름은 위 그림에도 보이다시피 "filename" 입니다.

자, 그럼 실제로 엑셀에 써보겠습니다. 

# CELL 함수 "filename" 인자 사용 예시
=cell("filename",A1)

 

위와 같이 쓰고 엔터를 치면, 그 결과값은 현재 엑셀 파일의 파일경로현재 셀이 속한 시트의 시트명이 소환됩니다! 

그리고 엑셀 파일이름은 [괄호]로 묶여있는 것을 볼 수 있습니다. 

 

CELL("filename",A1) 함수는 
이렇게 "파일경로+시트명"을 함께 소환해주는 것이죠.

A1값은 현재 시트의 아무 셀주소를 넣어도 됩니다. 

이렇게 했는데도 혹시 아무것도  소환이 되지 않는다면, 엑셀 파일을 아무데나 저장해보세요.

"filename"은 엑셀파일이 무조건 어딘가에 저장되어 있어야 작동합니다. 

 

이제 거의 다 됐습니다. 

 

=cell("filename",A1)의 결과값

 

위 문자열에서 시트명("시트1")만 걸러내면 되기 때문입니다. 

그래서 이제는 닫는 괄호 "]"의 위치를 찾아낼겁니다. 

이때 쓰는 함수는 FIND 입니다. 

 

반응형

두 번째, FIND 함수

FIND 함수는 문자열 안에서 특정 문자의 위치를 반환해주는 함수입니다. 

# FIND 함수 
=FIND("위치를 검색할 문자열", "대상 문자열")

# FIND 함수 예시
=FIND("]", "[문자열]123예시")

# 결과값
-> 5

 

위 코드에서 두 번째를 보면, "[문자열]123예시" 라는 문자열 안에서 닫는괄호 "]"의 위치인 5를 반환한 것을 볼 수 있습니다. 

 

이를 응용하면, 

=FIND("]", CELL("filename",A1)) 의 결과를 아래와 같이 확인할 수 있어요. 

=FIND("]", CELL("filename",A1)) 의 결과는 44

 

즉, 닫는괄호"]"가 44번째에 있단 뜻이죠. 

이제 시트명 소환 마지막 단계입니다. 

문자열에서 닫는 괄호의 위치를 알았으니, 그 앞부분을 싹 날려서 없애줘야 하겠죠?

이를 할 수 있는 함수가 REPLCE 함수입니다. 

 

마지막, REPLACE 함수

Replace 함수는 문자열에서 특정 부분을 내가 입력한 값으로 대체해주는 함수입니다. 

# REPLACE 함수 
=relpace("문자열", "바꿀 부분이 시작하는 위치", "바꿀 문자의 개수")

# REPLACE 예시
# 가나다라를 WOW로 바꿔줍니다
=replace("가나다라ABCD", 1, 4, "WOW") 

# 결과:
WOWABCD

 

이를 응용하면 우리가 원하는 시트명을 소환하는 함수를 아래와 같이 구성할 수 있습니다. 

# 시트명 소환 함수
=RELPACE("파일경로문자열", 1, 닫는괄호 "]"의 위치, "")
=REPLACE(CELL("filename",A1), 1, FIND("]", CELL("filename",A1)),"")

 

결론

시트명을 소환하는 아래 함수를 그대로 복붙해서 사용하세요~! 

엑셀 파일이 어딘가에는 반드시 저장되어 있어야 값이 나옵니다! 

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

 

* 참고: 

CELL("filename",A1)

  => "엑셀파일경로 + 시트명" 문자열

FIND("]", CELL("filename",A1))

  => 문자열에서 "]"가 시작하는 위치 소환 

REPLACE(문자열,1,N,"")

  => 문자열의 첫번째 부터 N번째까지를 ""로 변경 

 

 

반응형