엑셀 시트명 소환하는 함수
시트명을 소환하는 아래 함수를 그대로 복붙해서 사용하세요~!
단, 엑셀 파일이 어딘가에는 반드시 저장되어 있어야 값이 나옵니다!
=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 함수로 가장 먼저 현재 엑셀 파일경로를 소환할겁니다.
이 인자의 이름은 위 그림에도 보이다시피 "filename" 입니다.
자, 그럼 실제로 엑셀에 써보겠습니다.
# CELL 함수 "filename" 인자 사용 예시
=cell("filename",A1)
위와 같이 쓰고 엔터를 치면, 그 결과값은 현재 엑셀 파일의 파일경로와 현재 셀이 속한 시트의 시트명이 소환됩니다!
그리고 엑셀 파일이름은 [괄호]로 묶여있는 것을 볼 수 있습니다.
CELL("filename",A1) 함수는
이렇게 "파일경로+시트명"을 함께 소환해주는 것이죠.
A1값은 현재 시트의 아무 셀주소를 넣어도 됩니다.
이렇게 했는데도 혹시 아무것도 소환이 되지 않는다면, 엑셀 파일을 아무데나 저장해보세요.
"filename"은 엑셀파일이 무조건 어딘가에 저장되어 있어야 작동합니다.
이제 거의 다 됐습니다.
위 문자열에서 시트명("시트1")만 걸러내면 되기 때문입니다.
그래서 이제는 닫는 괄호 "]"의 위치를 찾아낼겁니다.
이때 쓰는 함수는 FIND 입니다.
두 번째, FIND 함수
FIND 함수는 문자열 안에서 특정 문자의 위치를 반환해주는 함수입니다.
# FIND 함수
=FIND("위치를 검색할 문자열", "대상 문자열")
# FIND 함수 예시
=FIND("]", "[문자열]123예시")
# 결과값
-> 5
위 코드에서 두 번째를 보면, "[문자열]123예시" 라는 문자열 안에서 닫는괄호 "]"의 위치인 5를 반환한 것을 볼 수 있습니다.
이를 응용하면,
=FIND("]", CELL("filename",A1)) 의 결과를 아래와 같이 확인할 수 있어요.
즉, 닫는괄호"]"가 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번째까지를 ""로 변경