
Excel combine multiple columns into one column — 가로 결합과 세로 스택 완전정리
여러 개의 열을 하나의 열로 결합해야 할 때, 목적은 두 가지입니다. (1) 같은 행의 값을 한 셀에 합치는 가로 결합, (2) 여러 열을 세로로 길게 모아 한 열(리스트)로 만드는 세로 스택. 이 글은 Excel combine multiple columns into one column 요구를 10초 수식과 Power Query까지 한 번에 정리합니다.
Quick Fix
가로 결합(한 행의 여러 열 → 한 셀)
=TEXTJOIN(" ", TRUE, A2:D2)
세로 스택(여러 열 → 한 열, 365)
=TOCOL(A2:D100, 1)
가로 결합의 원리: TEXTJOIN/CONCAT/& 비교
- & : 간단하지만 범위 지정 불편, 빈 셀 제어 약함
- CONCAT : 범위 결합 가능, 구분자 직접 처리 필요
- TEXTJOIN : 구분자/빈 셀 무시를 인수로 제어, 다중 열 결합에 최적
더 배우기: TEXTJOIN 가이드 · CONCAT vs TEXTJOIN
실무 예제(복사 가능)
| A | B | C | D |
|---|---|---|---|
| Apple | Juice | 250ml | |
| Kim | Minsoo | Sales | |
| 2025-11-02 | 13:45 | KST |
A:D 공백 1칸 결합(빈 셀 무시)
=TEXTJOIN(" ", TRUE, A2:D2)
숫자·날짜 형식 보존
=TEXTJOIN(" ", TRUE, TEXT(A2, "yyyy-mm-dd"), TEXT(B2, "hh:mm"), C2, D2)
행 단위 일괄 처리(동적 배열)
=BYROW(A2:D10, LAMBDA(r, TEXTJOIN(" ", TRUE, r)))
입력값 정리는 TRIM·CLEAN 가이드를 참고하세요.
세로 스택(여러 열 → 한 열)
365: TOCOL
=TOCOL(A2:D100, 1)
빈 셀을 무시하고 여러 열을 한 열로 즉시 스택합니다. 자세한 설명: TOCOL 함수 가이드
구버전: INDEX+SEQUENCE
=INDEX(A2:D100,
MOD(SEQUENCE(ROWS(A2:A100)*COLUMNS(A2:D100))-1, ROWS(A2:A100)) + 1,
INT((SEQUENCE(ROWS(A2:A100)*COLUMNS(A2:D100))-1)/ROWS(A2:A100)) + 1)
수식 없이 하는 방법
Flash Fill
- 결과 열에 샘플 1–2건 타이핑
- 데이터 > 플래시 채우기 또는 Ctrl+E
Power Query
열 병합(Merge Columns): 여러 열을 구분자와 함께 하나의 텍스트로 합칩니다. 자세히 보기
Unpivot Columns: 여러 열을 세로로 정규화하여 한 열로 만듭니다.
체크리스트 & 주의사항
- 가로 결합 →
TEXTJOIN(" ", TRUE, 범위) - 세로 스택 → 365
TOCOL(범위,1)/ 구버전은 Power Query Unpivot - 숫자·날짜는
TEXT()로 서식 지정 - 숨은 공백/nbsp는
TRIM/CLEAN/SUBSTITUTE(,CHAR(160)," ")로 정리
Troubleshooting
| 증상 | 원인 | 해결 |
|---|---|---|
| 이중 공백 | 빈 셀 포함 결합 | TEXTJOIN(" ", TRUE, …) 또는 전체를 TRIM() |
| 앞/뒤 공백 | 원본 여분 공백 | TRIM(CLEAN(SUBSTITUTE(셀,CHAR(160)," "))) |
| 형식 깨짐 | 텍스트 결합 | TEXT()로 포맷 지정 후 결합 |
| 자동 업데이트 안 됨 | Flash Fill 사용 | 수식 또는 Power Query 사용 |
| #NAME? 오류 | 미지원 함수 | 대체: &/CONCAT/Power Query |
외부 공식 문서: Microsoft: TEXTJOIN · Microsoft: CONCAT · Microsoft: TOCOL