반응형
엑셀에서 문자열을 합치는 함수로는 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
💡 사용 방법
- Excel에서 Alt + F11을 눌러 VBA 편집기를 열고
- 삽입 → 모듈 클릭
- 위 코드를 붙여넣고 저장
- 엑셀 셀에 다음처럼 입력:
=MyConcat(A1:A3)
이제 CONCAT과 동일하게 작동하는 사용자 정의 함수를 쓸 수 있습니다.
⚠️ Function으로 만들었기 때문에 엑셀에서 해당 함수를 바로 사용 가능합니다.
🔄 CONCAT vs CONCATENATE 비교 요약
기능 / 함수 CONCATENATE CONCAT
범위 지원 | ❌ (각 셀 개별 입력 필요) | ✅ (A1:A5 등 범위 입력 가능) |
도입 버전 | Excel 2007 이상 | Excel 2016 이상 |
추천 여부 | ❌ (레거시 함수) | ✅ (신규 표준 함수) |
반응형
'엑셀 > VBA' 카테고리의 다른 글
Excel VBA로 셀의 텍스트에 서식을 적용하는 방법: 전체 vs 부분 서식 정리 (0) | 2025.04.12 |
---|---|
VBA로 특정 열 중복 데이터 체크하기 (2) | 2024.11.09 |
VBA로 해당 폴더 내 모든 하위 폴더까지 있는 모든 파일 이름 찾기 (1) | 2024.11.03 |
VBA에서 엑셀파일(워크북)을 변수로 지정하기 (0) | 2024.07.06 |
VBA에서 엑셀 조건부 서식 모두 지우기 및 중복값 규칙 만들기 (0) | 2024.06.17 |
댓글