엑셀 TEXTJOIN 함수 (엑셀 2016 이전 버전 사용자용)

선택된 범위의 값을 구분자로 합친 문자열을 반환하는 TEXTJOIN 함수의 2016 이전 버전 사용자용 버전입니다.

홈페이지 » 엑셀 TEXTJOIN 함수 (엑셀 2016 이전 버전 사용자용)

엑셀 TEXTJOIN 함수 (2016 이전버전 사용자용)

함수 구문
= TEXTJOIN (구분자, 빈칸무시, 범위)

본 포스트는 TEXTJOIN 함수에 사용되는 VBA 전체 명령문 및 동작원리에 대한 설명을 다룹니다.
(함수 추가기능 다운로드 및 사용방법은 아래 설명를 참고하세요)

사용된 인수

TEXTJOIN 함수에는 3개의 인수가 사용됩니다.

  • 구분자 : 각 셀을 나눌 구분자입니다. (예: ", " 또는 " / ", 등)
  • 빈칸무시 : TRUE일 경우 빈칸인 셀은 무시하고 병합합니다.
  • 범위 : 텍스트를 병합할 범위입니다. 1개 또는 여러개 범위를 입력할 수 있습니다.

TEXTJOIN 함수 사용법 및 주의사항은 관련포스트에서 자세히 설명드렸습니다.

설명

TEXTJOIN 함수엑셀 2019 이상 버전에서만 제공되는 함수입니다. 따라서, 엑셀 2016 이전 버전을 사용중이고 TEXTJOIN 함수가 필요할경우, 아래 VBA 코드를 파일 모듈에 추가하거나 또는 추가기능을 설치하여 사용할 수 있습니다.

추가기능으로 제공되는 TEXTJOIN 함수는 엑셀 기존함수와 동일하게 동작합니다.

TEXTJOIN 함수 추가기능 다운로드 바로가기
(엑셀 2016 이전 버전 사용자용)
함수 사용예제
TEXTJOIN 함수 2016 이전 버전 사용자용 사용예제 GIF
2016 이전 버전에서도 TEXTJOIN 함수를 사용할 수 있습니다
  • =TEXTJOIN(", ", TRUE, {"가", "", "다", "라"})
    '// "가, 다, 라" 를 반환합니다.
  • =TEXTJOIN(", ", FALSE, {"가", "", "다", "라"})
    '// "가, , 다, 라" 를 반환합니다.
  • =TEXTJOIN("+", TRUE, {1, 2, , 4} , {5, 6, , 8})
    '// "1+2+4+5+6+8"을 반환합니다.

추가기능 및 예제파일 다운로드

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 명령문 단계별 알아보기

  1. 명령문에 사용할 변수를 생성합니다.
    Dim vaRng As Variant
    Dim Rng As Variant
    Dim strResult As String
    변수명데이터타입설명
    vaRngVariant인수로 받아온 vaRngs의 값을 For Each 문으로 하나씩 받아옵니다.
    RngRangevaRng의 값을 For Each 문으로 하나씩 받아옵니다.
    strResultString결과값으로 출력될 텍스트입니다.
  2. 범위로 받아온 값을 하나씩 돌아가며 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
  3. strResult 끝에 붙은 구분자를 제거한 뒤, TEXTJOIN 함수의 결과값을 출력합니다.
    strResult = Left(strResult, Len(strResult) - Len(delimiter))
    TEXTJOIN = strResult

링크: MS홈페이지 TEXTJOIN 함수 상세설명

5 1 vote
게시글평점
현재 페이지 댓글알림 신청
알림 설정
guest
2 Comments
Inline Feedbacks
View all comments
신승창
신승창
2020년 6월 13일 10:02 오후
게시글평점 :
     

2016버전의 액셀인데 안돼요 ㅜㅜ

2
0
여러분의 생각을 댓글로 남겨주세요.x