엑셀 TEXTJOIN 함수 (2016 이전버전 사용자용)
함수 구문
= TEXTJOIN (구분자, 빈칸무시, 범위)
사용된 인수
TEXTJOIN 함수에는 3개의 인수가 사용됩니다.
- 구분자 : 각 셀을 나눌 구분자입니다. (예: ", " 또는 " / ", 등)
- 빈칸무시 : TRUE일 경우 빈칸인 셀은 무시하고 병합합니다.
- 범위 : 텍스트를 병합할 범위입니다. 1개 또는 여러개 범위를 입력할 수 있습니다.
TEXTJOIN 함수 사용법 및 주의사항은 관련포스트에서 자세히 설명드렸습니다.
설명
TEXTJOIN 함수는 엑셀 2019 이상 버전에서만 제공되는 함수입니다. 따라서, 엑셀 2016 이전 버전을 사용중이고 TEXTJOIN 함수가 필요할경우, 아래 VBA 코드를 파일 모듈에 추가하거나 또는 추가기능을 설치하여 사용할 수 있습니다. (추가기능으로 제공되는 TEXTJOIN 함수는 엑셀 기존함수와 동일하게 동작합니다.)
함수 사용예제

- =TEXTJOIN(", ", TRUE, {"가", "", "다", "라"})
'// "가, 다, 라" 를 반환합니다. - =TEXTJOIN(", ", FALSE, {"가", "", "다", "라"})
'// "가, , 다, 라" 를 반환합니다. - =TEXTJOIN("+", TRUE, {1, 2, , 4} , {5, 6, , 8})
'// "1+2+4+5+6+8"을 반환합니다.
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] TEXTJOIN :: 텍스트 합치기 함수완성파일
TEXTJOIN 함수 VBA 전체 명령문
Public Function TEXTJOIN(ByVal delimiter As String, _ ByVal ignore_empty As Boolean, _ ParamArray vaRngs() As Variant) '############################################################### '오빠두엑셀 VBA 사용자 지정함수 (https://www.oppadu.com/VBA-TEXTJOIN-함수) '■ TEXTJOIN 명령문 '■ TEXTJOIN 함수를 지원하지 않는 엑셀 2016 이전 버전 사용자를 위한 사용자지정함수입니다. '■ 범위안의 각 셀을 구분자로 분리하여 긴 문자열로 병합합니다. '■ 인수 설명 '_____________delimiter : 각 셀을 구분할 구분자입니다. '_____________ignore_empty : 빈 셀이 있을경우 무시할지 여부입니다. '_____________rng :병합할 범위입니다. '■ 사용된 기타 사용자지정함수 '■ 그외 참고사항 '############################################################### Dim vaRng As Variant Dim Rng As Variant Dim strResult As String For Each vaRng In vaRngs For Each Rng In vaRng If ignore_empty = True Then If Rng <> "" Then strResult = strResult & Rng & delimiter Else strResult = strResult & Rng & delimiter End If Next Next strResult = Left(strResult, Len(strResult) - Len(delimiter)) TEXTJOIN = strResult End Function
VBA 명령문 단계별 알아보기
- 명령문에 사용할 변수를 생성합니다.
Dim vaRng As Variant Dim Rng As Variant Dim strResult As String
변수명 데이터타입 설명 vaRng Variant 인수로 받아온 vaRngs의 값을 For Each 문으로 하나씩 받아옵니다. Rng Range vaRng의 값을 For Each 문으로 하나씩 받아옵니다. strResult String 결과값으로 출력될 텍스트입니다. - 범위로 받아온 값을 하나씩 돌아가며 strResult의 값으로 더해줍니다. "ignore_empty" 값이 TRUE일 경우, Rng 값이 빈칸이 아닐 경우에만 strResult에 값을 더해줍니다.
For Each vaRng In vaRngs For Each Rng In vaRng If ignore_empty = True Then If Rng <> "" Then strResult = strResult & Rng & delimiter Else strResult = strResult & Rng & delimiter End If Next Next
- strResult 끝에 붙은 구분자를 제거한 뒤, TEXTJOIN 함수의 결과값을 출력합니다.
strResult = Left(strResult, Len(strResult) - Len(delimiter)) TEXTJOIN = strResult
- 명령문에 사용할 변수를 생성합니다.