본문 바로가기
엑셀/VBA

CONCAT vs CONCATENATE 함수 비교와 구버전 Excel에서 대체하는 방법 (VBA 활용)

by 큐브빌드 2025. 4. 13.
반응형

 

엑셀에서 문자열을 합치는 함수로는 CONCATENATE와 CONCAT이 있습니다. 이름이 비슷해서 혼동하기 쉽고, 기능도 겹치는 부분이 있어 "둘 중 어떤 걸 써야 할까?" 고민되는 경우가 많죠. 이번 글에서는 두 함수의 차이점, 사용 가능한 버전, 그리고 구버전 Excel에서 CONCAT 기능을 구현하는 VBA 함수까지 함께 소개해드리겠습니다.


1. CONCATENATE 함수란?

CONCATENATE 함수는 엑셀에서 문자열을 연결해 주는 오래된 함수입니다.

=CONCATENATE("Hello", " ", "World")

출력: Hello World

  • 특징
    • 셀 개수 제한 없이 문자열을 연결
    • **셀 범위(A1:A3)**는 사용할 수 없음 → 각각 지정해야 함 (=CONCATENATE(A1, A2, A3))
  • 사용 가능 버전: Excel 2007 이상 ~ Excel 365

⚠️ 엑셀 365 / 2019부터는 CONCATENATE가 지원은 되지만, 권장되지 않습니다.


2. CONCAT 함수란?

CONCAT 함수는 CONCATENATE를 대체하는 최신 함수로 Excel 2016 이후 버전부터 도입되었습니다.

=CONCAT(A1:A3)

출력: A1 ~ A3 셀의 텍스트를 모두 연결

  • 특징
    • 범위 입력이 가능 → 간단하게 =CONCAT(A1:A3) 형태로 사용
    • 배열 수식도 인식
  • 사용 가능 버전: Excel 2016, Excel 2019, Excel 365

3. CONCAT을 사용할 수 없는 버전에서는?

Excel 2013 이하에서는 CONCAT 함수가 존재하지 않습니다.
이럴 땐 CONCATENATE로 일일이 입력하거나, 더 나은 방법으로 VBA 사용자 정의 함수를 만들어 사용할 수 있습니다.


4. VBA로 CONCAT 함수 구현하기

다음은 구버전 Excel에서도 =Concat(A1:A3)처럼 범위 입력이 가능하도록 만든 VBA 함수입니다.

Function MyConcat(rng As Range) As String
    Dim cell As Range
    Dim result As String
    For Each cell In rng
        result = result & cell.Value
    Next
    MyConcat = result
End Function

💡 사용 방법

  1. Excel에서 Alt + F11을 눌러 VBA 편집기를 열고
  2. 삽입 → 모듈 클릭
  3. 위 코드를 붙여넣고 저장
  4. 엑셀 셀에 다음처럼 입력:
=MyConcat(A1:A3)

이제 CONCAT과 동일하게 작동하는 사용자 정의 함수를 쓸 수 있습니다.

 

⚠️ Function으로 만들었기 때문에 엑셀에서 해당 함수를 바로 사용 가능합니다.


🔄 CONCAT vs CONCATENATE 비교 요약

기능 / 함수 CONCATENATE CONCAT

범위 지원 ❌ (각 셀 개별 입력 필요) ✅ (A1:A5 등 범위 입력 가능)
도입 버전 Excel 2007 이상 Excel 2016 이상
추천 여부 ❌ (레거시 함수) ✅ (신규 표준 함수)

 

반응형

댓글