엑셀에서 현재 파일 이름을 가져오는 방법은?

14 조회수
엑셀에서 현재 파일명을 가져오려면 =CELL(filename) 수식을 사용하세요. Ctrl+Shift+Enter를 눌러 배열 수식으로 입력하면 파일 경로와 이름이 함께 표시됩니다. 파일을 저장한 후에는 =MID(CELL(filename),FIND([,CELL(filename))+1,FIND(],CELL(filename))-FIND([,CELL(filename))-1) 수식으로 파일 이름만 추출할 수 있습니다.
의견 0 좋아요

엑셀에서 현재 파일의 이름을 가져오는 방법은 여러 가지가 있으며, 상황에 따라 가장 적합한 방법을 선택하는 것이 중요합니다. 위에서 제시된 =CELL("filename") 함수와 MID, FIND 함수를 조합한 방법은 한 가지 접근 방식이지만, 이 방법은 몇 가지 한계점을 가지고 있으며, 더욱 효율적이고 안정적인 방법들이 존재합니다. 본 글에서는 다양한 방법을 소개하고 각 방법의 장단점을 비교 분석하여, 사용자들이 자신에게 맞는 최적의 방법을 선택할 수 있도록 돕고자 합니다.

먼저, 위에서 언급된 =CELL("filename") 함수는 파일의 전체 경로를 반환합니다. 따라서, 파일 이름만 추출하려면 추가적인 함수를 사용해야 하는 불편함이 있습니다. MID, FIND 함수를 이용하여 파일 이름만 추출하는 방법은 가능하지만, 파일 경로에 특수 문자가 포함되어 있거나, 파일 경로의 형식이 예상과 다를 경우 오류가 발생할 수 있습니다. 예를 들어, 파일 경로에 괄호나 따옴표가 포함되어 있으면 FIND 함수가 예상치 못한 결과를 반환할 수 있습니다. 또한, 이 방법은 수식이 복잡하고 이해하기 어렵다는 단점이 있습니다.

더욱 간결하고 안정적인 방법으로는 TEXT 함수와 CELL 함수를 함께 사용하는 방법이 있습니다. CELL("filename") 함수로 전체 경로를 가져온 후, TEXT 함수를 이용하여 원하는 형식으로 파일 이름만 추출할 수 있습니다. 예를 들어, 파일 경로가 "C:UsersUserDocumentsMyExcelFile.xlsx" 이라면 다음과 같은 수식을 사용할 수 있습니다.

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("@",SUBSTITUTE(CELL("filename"),"","@",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"","")))))

이 수식은 먼저 SUBSTITUTE 함수를 사용하여 마지막 역슬래시()를 @로 바꾸고, FIND 함수를 사용하여 @의 위치를 찾습니다. 그리고 LEN 함수를 사용하여 전체 경로의 길이와 마지막 역슬래시 이후의 길이를 계산하여 파일 이름의 길이를 구합니다. 마지막으로 RIGHT 함수를 사용하여 파일 이름만 추출합니다. 이 방법은 MID와 FIND 함수를 조합하는 방법보다 훨씬 안정적이고, 다양한 파일 경로 형식에 대해서도 잘 작동합니다.

하지만 이 방법 역시 복잡한 수식을 필요로 합니다. 보다 간편하게 파일 이름을 가져오는 방법으로는 VBA 매크로를 활용하는 것입니다. VBA를 이용하면 훨씬 간결한 코드로 현재 파일의 이름을 가져올 수 있습니다. 다음은 VBA 코드의 예시입니다.

Sub GetFileName()
  MsgBox ThisWorkbook.FullName
  MsgBox ThisWorkbook.Name
End Sub

ThisWorkbook.FullName은 파일의 전체 경로를, ThisWorkbook.Name은 파일 이름만 반환합니다. VBA를 사용하면 파일 이름을 가져오는 작업을 훨씬 간편하게 수행할 수 있으며, 복잡한 수식을 사용할 필요가 없습니다. 하지만 VBA를 사용하려면 엑셀의 VBA 편집기를 사용할 수 있어야 하고, 매크로 사용에 대한 기본적인 지식이 필요합니다.

결론적으로, 엑셀에서 현재 파일 이름을 가져오는 방법은 수식을 이용하는 방법과 VBA 매크로를 이용하는 방법이 있습니다. 수식을 이용하는 방법은 간단한 경우에 적합하지만, 복잡한 파일 경로나 특수 문자 처리에 어려움을 겪을 수 있습니다. 반면 VBA 매크로는 복잡한 경우에도 안정적이고 효율적으로 파일 이름을 가져올 수 있지만, VBA에 대한 기본적인 지식이 필요합니다. 따라서 사용자의 숙련도와 상황에 맞는 최적의 방법을 선택하는 것이 중요합니다.