개요
엑셀을 사용하다보면 #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. 저장을 누른다.
5. 오류메시지가 나오지만 무시하고 예를 누른다.
6. 함수가 잘 되는지 확인한다.
이상 #NAME? 함수와 버전에 따른 _xlfn 함수 이상현상 조치 방법에 대해 탐구했다.
그런데 정작 이 함수가 이 버전에서 지원하는건지 알 방법이 없다. 해서 사이트 하나를 소개한다.
여기서 검색해보고 본인이 쓰고자하는 함수가 버전 어디까지 지원되는지 확인하길 바란다.