본문 바로가기
문서작성

[MS Excel] #NAME? 에러 / 함수 앞에 _xlfn. 해결하기 (TEXTJOIN)

by 냠만 2023. 10. 26.

개요

엑셀을 사용하다보면 #NAME? 에러는 자주 보게된다. 수식의 구문에 이상이 있거나 값을 잘못 입력 한 경우 발생한다.

그러나 다른곳에서 작업한 문서를 다운받아 열람하는 경우 매우 쉽게 마주할 수 있다.

일반적으로 문서관리를 정식으로 하지 않는 기업의 경우 MS 버전이 낮은 경우가 많다. 그리 심오한 기능을 활용 할 필요가 없기 때문이다. 다만 대부분의 소통을 문서로 하는 경우 모든 MS 버전을 맞출 수 없기 때문에 이와같은 문제가 발생한다.

 

즉 구문이 잘못된게 아닌데 #NAME? 에러를 보는 경우는 해당 셀에 있는 함수가 현재 나의 MS 버전에 지원되지 않는 함수일 가능성이 매우 높다. (Excel2021 또는 Office365에서 작성된 문서를 Excel2016에서 열면 해당 오류 발생)

이 경우 문서를 받았을 때 #NAME?을 보게되고 셀을 눌러보면 함수 앞에 _xlfn.이 붙어있는걸 확인할 수 있다.

 

TEXTJOIN

그래서 TEXTJOIN이 뭐냐면 말 그대로 글자를 이어주는 함수이다.

TEXTJOIN = (텍스트 구분 문자, 빈칸 무시 여부(TRUE,FALSE), 합칠 문자 배열 (ex.C6:I6))

 

그런데 이미 EXCEL2016에는 글자를 이어주는 함수가 있긴 하다. CONCATENATE 함수이다.

CONCATENATE = (TEXT1, TEXT2, TEXT3 ...) 
TEXT에는 각 셀을 참조시킬 수 있다.

이 함수는 치명적 단점이 있다. 쓰다보면 텍스트 중간에 구분자를 넣어줘야 하는데 그럴때마다 참조고정으로 열심히 참조를 해줘야 한다. 너무나도 귀찮다.

 

그래서 난 구분문자 한번만 넣어주면 알아서 구분자 쏙쏙 넣어주는 TEXTJOIN을 써야겠다. 그런데 Excel2016을 업그레이드 할 생각은 없다. 그럼 방법이 없냐? 아니 있다. 만들면 된다.

VBA 사용자 정의 함수 만들기

방법은 되게 간단하다. 하나씩 따라하면 금방 한다.

1. Excel화면을 열고 키보드에서 Alt + F11 버튼을 눌러 개발창에 접근한다

2. VBAProject (통합 문서)에 마우스 우클릭 -> 삽입 -> 모듈(M)에 접근한다.

3. 첨부드린 텍스트 파일 내용을 복사하여 붙여넣는다.

4. 저장을 누른다.

Excel TEXTJOIN 함수 추가 코드.txt
0.00MB

5. 오류메시지가 나오지만 무시하고 예를 누른다.

6. 함수가 잘 되는지 확인한다.

 

이상 #NAME? 함수와 버전에 따른 _xlfn 함수 이상현상 조치 방법에 대해 탐구했다.

그런데 정작 이 함수가 이 버전에서 지원하는건지 알 방법이 없다. 해서 사이트 하나를 소개한다.

여기서 검색해보고 본인이 쓰고자하는 함수가 버전 어디까지 지원되는지 확인하길 바란다.

https://support.microsoft.com/ko-kr/office/excel-%ED%95%A8%EC%88%98-%EC%82%AC%EC%A0%84%EC%88%9C-b3944572-255d-4efb-bb96-c6d90033e188?ui=ko-KR&rs=ko-KR&ad=KR#bm20

 

Excel 함수(사전순) - Microsoft 지원

 

support.microsoft.com

https://support.microsoft.com/ko-kr/office/excel-%ED%95%A8%EC%88%98-%EB%B2%94%EC%A3%BC%EB%B3%84-5f91f4e9-7b42-46d2-9bd1-63f26a86c0eb

 

Excel 함수(범주별) - Microsoft 지원

Excel 2010 이상에서 해당 함수는 보다 정확하고 이름으로 해당 용도를 쉽게 이해할 수 있는 새 함수로 바뀌었습니다. Excel 이전 버전과의 호환성을 위해 계속 사용할 수 있지만 이전 버전과의 호환

support.microsoft.com