Excel에서 WRAPCOLS 및 WRAPROWS로 1차원 배열 재구성하기

빠른 이동 링크
WRAPCOLS: 1차원 배열을 여러 열로 재구성하는 방법
WRAPROWS: 1차원 배열을 여러 행으로 재구성하는 방법
WRAPCOLS와 WRAPROWS를 더 동적으로 만드는 방법
결과에 동적 헤더 추가하기
여러 1차원 배열을 하나의 2차원 배열로 합치기
1차원 배열을 정렬하여 2차원 배열로 변환하기
개요
WRAPCOLS와 WRAPROWS는 Microsoft Excel의 동적 배열 함수로, 목록(단일 열 또는 단일 행)을 지정한 항목 수로 감싸서 2차원 배열을 만듭니다. 이들 함수는 원시 데이터를 보기 좋게 재구성하거나, 그룹을 자동으로 생성하거나, 대시보드에 맞춘 데이터 형식을 만들 때 매우 유용합니다.
지원 환경: Excel for Microsoft 365, Excel for the web, Excel 모바일 앱(글 작성 시점: 2025년 9월). 동적 배열 기능을 사용하려면 구독형 Excel 환경이 필요합니다.
중요: 동적 배열 함수는 Excel 표(Table) 셀에서는 제대로 흘러넘치지 않으므로 일반 셀에 수식을 입력해야 합니다.
WRAPCOLS: 개념과 문법
WRAPCOLS 함수는 1차원 배열을 지정한 개수의 값이 채워진 여러 열로 변환합니다. 문법은 다음과 같습니다:
=WRAPCOLS(a,b,c)- a(필수): 재구성할 1차원 배열(단일 행 또는 단일 열).
- b(필수): 결과의 각 열에 포함할 최대 값 개수.
- c(선택): 남는 셀을 채울 값. 생략하면 남는 셀에 #N/A 오류가 채워집니다.
참고: 소스 1차원 배열에 빈 셀이 있으면 WRAPCOLS 결과에서 0으로 반환될 수 있으므로 필요한 경우 미리 빈 값을 처리하세요.
예시 시나리오: A1:A71에 사람 이름이 있고, 이를 한 열에 최대 6명씩 그룹으로 나누어 여러 열로 배치하고 싶을 때.
=WRAPCOLS(A1:A71,6,"")위 수식에서 A1:A71은 원본 리스트, 6은 각 열의 최대 행 수, “”는 남는 셀을 공백으로 채우라는 뜻입니다. WRAPCOLS는 동적 배열을 생성하므로 수식을 입력한 셀에서 오른쪽과 아래로 결과가 흘러넘칩니다.


동작 방식 요약: WRAPCOLS는 원본 순서를 유지하며 첫 번째 열에는 리스트의 처음 6개 항목을, 두 번째 열에는 그 다음 6개 항목을 넣습니다. 전체 항목 수가 그룹 크기로 나누어떨어지지 않으면 마지막 열에 지정한 채움값(c)이 적용됩니다.
반대로 2차원 배열을 다시 1차원으로 만들려면 TOCOL 또는 TOROW를 사용하세요.
실전 예제: 6명씩 그룹 나누기 — 세부 단계 및 문제 해결
목적: A1:A71에 저장된 사람 이름을 6명씩 묶어 열로 표시하고, 입력 데이터가 변경되면 결과가 자동 업데이트되게 만들기.
- 빈 셀을 선택하고 아래 수식을 입력합니다.
=WRAPCOLS(A1:A71,6,"")- Enter를 누르면 동적 배열 결과가 주변 셀로 흘러넘칩니다.
- 원본 A1:A71의 값을 변경하면 결과가 자동으로 반영됩니다.
자주 발생하는 문제와 해결책:
- #SPILL! 오류: 결과가 흘러넘칠 공간에 다른 값이 있거나 병합된 셀이 있는 경우 발생합니다. 결과 범위를 비우거나 병합 셀을 제거하세요.
- #N/A가 보이는 경우: 세 번째 인자를 생략했을 때 남는 셀이 #N/A로 채워집니다. 이를 원하는 값으로 바꾸려면 세 번째 인자에 값을 넣으세요(예: “”).
- 값이 0으로 바뀌는 경우: 원본 배열의 공백이 0으로 처리됩니다. 공백을 제거하려면 FILTER를 결합해 빈 셀을 걸러내세요(예: FILTER(A1:A71,A1:A71<>””))
역할별 체크리스트:
- 데이터 소유자: 원본 리스트의 중복과 불필요한 공백을 정리한다.
- 분석가: WRAPCOLS 수식과 채움값을 설정하고 #SPILL 오류를 해결한다.
- 보고서 작성자: 동적 헤더와 서식으로 결과를 보기 좋게 정리한다.
WRAPROWS: 개념과 문법
WRAPROWS는 WRAPCOLS와 반대 방향으로 동작합니다. 1차원 배열을 지정한 값 개수로 가로로 채워 여러 행을 만드는 함수입니다. 문법은 다음과 같습니다:
=WRAPROWS(a,b,c)- a(필수): 재구성할 1차원 배열.
- b(필수): 결과의 각 행에 포함할 최대 값 개수.
- c(선택): 남는 셀을 채울 값. 생략하면 #N/A로 채워짐.
예: A1:A71을 가로에 7개씩 채워 여러 행으로 만들려면:
=WRAPROWS(A1:A71,7,"")WRAPROWS는 행 우선 순서(row-major)로 값을 채워나갑니다. 즉, 원본의 첫 7개 값이 첫 번째 행에 채워지고 다음 7개 값이 두 번째 행에 들어갑니다.

WRAPCOLS와 WRAPROWS를 더 동적으로 만드는 방법
기본 예제는 잘 작동하지만 두 가지 개선점이 자주 필요합니다:
- 원본에 항목이 추가될 때 수식이 자동으로 새 항목을 포함하도록 하기
- 그룹 크기(b 인자)를 셀 참조로 만들어 쉽게 변경할 수 있게 하기
아래는 WRAPCOLS 예제로 설명하지만 동일한 원리는 WRAPROWS에 그대로 적용됩니다.
동적 범위 확장: 트림 참조 연산자
테이블로 포맷하지 않고도 열 전체를 참조하면서 마지막 값 이후의 빈 셀은 잘라내는 트릭으로 트림 참조 연산자(trim ref)를 사용할 수 있습니다. 형식은 다음과 같습니다:
=WRAPCOLS(A:.A,6,"")A:.A는 전체 A열을 참조하되 마지막 값 이후의 빈 셀을 잘라낸다는 의미입니다. 이렇게 하면 A72, A73 등에 항목을 추가하면 WRAPCOLS 결과에 자동 반영됩니다.
대체 방법: FILTER를 사용해 빈 값을 제거하는 방법도 있습니다(특히 원본에 혼합된 빈 셀이 많을 때 유용합니다).
=WRAPCOLS(FILTER(A:A,A:A<>""),6,"")참고: FILTER는 모든 빈 항목을 제거하므로 원본 데이터에서 일부 빈 상태를 보존하려는 경우에는 주의가 필요합니다.
그룹 크기 동적화: 셀 참조 사용
b 인자에 직접 숫자를 쓰는 대신 셀 참조를 사용하면 그룹 크기를 즉시 변경할 수 있습니다.
예: D1 셀에 그룹 크기를 입력하고 그 셀을 참조합니다.
=WRAPCOLS(A:.A,D1,"")이제 D1의 값을 바꾸면 WRAPCOLS 결과가 즉시 재구성됩니다. D1 대신 다른 계산식이나 데이터 유효성 검사(dropdown)를 연결해 사용해도 좋습니다.
결과에 동적 헤더 추가하기
그룹별 결과에 자동으로 열/행 헤더를 추가하면 가독성이 높아집니다. SEQUENCE, COUNTA, CONCAT(또는 & 연산자)을 조합해 동적 헤더를 만들 수 있습니다.
열 헤더(그룹 번호 생성):
=SEQUENCE(1,COUNTA(C3:Z3))이 수식은 C3:Z3 범위에서 비어있지 않은 열의 수만큼 1행 시퀀스를 만듭니다. 여기에 텍스트를 붙이면 다음과 같이 그룹 이름을 자동 생성할 수 있습니다:
="Group "&SEQUENCE(1,COUNTA(C3:Z3))또는 한국어 표기를 원하면:
="그룹 "&SEQUENCE(1,COUNTA(C3:Z3))행 헤더(플레이어 번호 생성):
="Player "&SEQUENCE(D1,1)또는 한국어:
="플레이어 "&SEQUENCE(D1,1)주의: SEQUENCE와 같은 동적 배열 함수를 워크북에 과도하게 사용하면 성능 저하를 초래할 수 있으므로 꼭 필요한 곳에만 적용하세요.
여러 1차원 배열을 하나의 2차원 배열로 합치기
여러 열이나 여러 행에 분산된 목록을 하나로 합쳐 그룹화하려면 VSTACK과 HSTACK을 사용합니다.
예: A열과 B열의 목록을 이어붙여 6명씩 그룹으로 묶으려면:
=WRAPCOLS(VSTACK(A:.A,B:.B),E1,"")VSTACK(A:.A,B:.B)는 A열 위에 B열을 쌓아 단일 리스트를 만든 뒤, WRAPCOLS가 이를 그룹화합니다. 원본이 여러 행으로 나뉘어 있을 때는 HSTACK을 사용해 옆으로 결합할 수도 있습니다.

정렬된 결과 생성하기
기본적으로 WRAPCOLS/WRAPROWS는 원본 순서를 유지합니다. 값을 알파벳 또는 숫자 순으로 정렬하려면 SORT 함수를 네스트하세요.
오름차순(예: A→Z)으로 그룹화하려면:
=WRAPCOLS(SORT(A:.A),D1,"")행으로 7개씩 그룹화하며 정렬하려면:
=WRAPROWS(SORT(A:.A),7,"")내림차순으로 정렬하려면 SORT 함수의 정렬 순서 인자로 -1을 전달합니다. 일반적으로 SORT의 인자는 다음과 같습니다: SORT(배열, 정렬열, 정렬순서, 기준열/행). 내림차순을 원하면 정렬순서를 -1로 설정하세요.
예외 사례와 언제 작동하지 않는지
- Excel 표 내부에서는 동적 배열이 흘러넘칠 수 없어 수식이 작동하지 않습니다. 반드시 일반 셀을 사용하세요.
- 소스 배열이 불연속(비연속 범위)인 경우 WRAPCOLS/WRAPROWS가 기대한 방식으로 작동하지 않을 수 있습니다. 이때 VSTACK/HSTACK 또는 FILTER로 정리하세요.
- 소스에 숫자와 텍스트가 섞여있으면 정렬 결과가 타입에 따라 예상과 달라집니다. 필요한 경우 TEXT 또는 VALUE로 형식을 일관화하세요.
- 아주 큰 데이터셋(수천~수만 행)을 처리하면 동적 배열 계산이 느려질 수 있습니다. 이 경우 Power Query나 피벗 테이블을 고려하세요.
대안 및 비교: 언제 무엇을 쓸까
- Power Query: 데이터 변환(병합, 피벗, 언피벗) 및 대량 데이터 처리에 강점이 있습니다. 반복적 ETL 작업에 적합합니다.
- PivotTable: 대규모 데이터의 요약/집계에 최적화되어 있습니다. 그룹화와 집계가 핵심 목적일 때 선택하세요.
- PIVOTBY 함수: 수식 기반으로 그룹화/집계를 수행할 때 유용합니다(구독형 Excel에서 사용 가능).
- TOCOL/TOROW: 2차원 배열을 다시 1차원으로 펼치고 싶을 때 사용합니다.
결정 팁: 화면에 바로 보이는 그룹을 만들고 싶거나 동적 대시보드를 구성할 때는 WRAPCOLS/WRAPROWS가 간단하고 빠릅니다. 대량 데이터의 변환 및 재처리 파이프라인이 필요하면 Power Query로 전환하세요.
단계별 SOP(표준 작업 절차)
- 원본 데이터 정리: 중복 제거, 불필요한 공백 제거, 형식 통일.
- 그룹 크기와 채움값 결정: 결과 레이아웃을 설계하고 D1 같은 셀에 그룹 크기를 입력.
- 동적 범위 설정: 트림 참조(A:.A) 또는 FILTER로 빈값 제거.
- WRAPCOLS 또는 WRAPROWS 적용 및 결과 확인.
- 동적 헤더 추가: SEQUENCE + CONCAT 또는 &로 헤더 자동 생성.
- 병합/정렬 필요 시 VSTACK/HSTACK, SORT 적용.
- 결과 영역의 서식 및 보호: 실수로 덮어쓰지 않도록 시트 보호 또는 범위 잠금.
테스트 케이스 및 수용 기준
- 입력 리스트에 0개, 1개, 그룹 크기보다 적은 항목, 정확히 나누어떨어지는 항목, 나누어떨어지지 않는 항목 각각에 대해 결과가 올바르게 표시되어야 합니다.
- 원본에 항목 추가/삭제 시 결과가 즉시 업데이트되어야 합니다.
- 수식이 흘러넘칠 영역에 다른 값이 있을 경우 #SPILL! 오류가 발생하고, 이를 해결하면 정상 동작해야 합니다.
- 트림 참조와 FILTER를 사용한 버전은 원본의 빈 행 처리 방식에 따라 일관된 결과를 내야 합니다.
의사결정 흐름도
flowchart TD
A[원본 데이터 준비] --> B{데이터 양이 큰가}
B -- 예 --> C[Power Query 권장]
B -- 아니요 --> D{그룹을 화면에 바로 표시할 필요가 있는가}
D -- 예 --> E[WRAPCOLS / WRAPROWS 사용]
D -- 아니요 --> C
E --> F{여러 열/행 병합 필요?}
F -- 예 --> G[VSTACK / HSTACK 사용 후 WRAP 적용]
F -- 아니요 --> H[단일 배열에 WRAP 적용]
H --> I{정렬 필요?}
I -- 예 --> J[SORT로 정렬 후 WRAP]
I -- 아니요 --> K[그룹화 완료]
J --> K
G --> K
C --> K보안 및 프라이버시 주의사항
- WRAPCOLS/WRAPROWS는 단순히 셀의 값을 재배열합니다. 민감한 개인 데이터(예: 주민등록번호, 금융정보)를 다룰 때는 시트 접근 권한을 제한하고 필요 시 암호화된 저장소 또는 안전한 공유 방법을 사용하세요.
- 외부 데이터 원본과 연동하는 경우 데이터 전송 경로와 권한을 검토하세요.
성숙도 모델: 간단한 사용에서 자동화까지
- 레벨 1(기본): 단일 수식으로 소량 데이터를 그룹화.
- 레벨 2(동적): 트림 참조 또는 FILTER로 범위 자동 확장, 셀 참조로 그룹 크기 제어.
- 레벨 3(통합): VSTACK/HSTACK, SORT와 결합, 동적 헤더로 대시보드 구성.
- 레벨 4(자동화): Power Query와 스케줄링, 매크로 혹은 Power Automate로 정기적 재생성.
빠른 참조 치트시트
- 기본: =WRAPCOLS(A1:A71,6,””)
- 전체 열 트림: =WRAPCOLS(A:.A,6,””)
- 빈값 필터링: =WRAPCOLS(FILTER(A:A,A:A<>””),6,””)
- 그룹 크기 셀 참조: =WRAPCOLS(A:.A,D1,””)
- 정렬 후 그룹화: =WRAPCOLS(SORT(A:.A),D1,””)
- 여러 열 합치기: =WRAPCOLS(VSTACK(A:.A,B:.B),E1,””)
요약
WRAPCOLS와 WRAPROWS는 Excel에서 1차원 배열을 빠르게 2차원 구조로 바꿔주는 강력한 도구입니다. 트림 참조, FILTER, SEQUENCE, VSTACK/HSTACK, SORT와 결합하면 동적이고 유지보수하기 쉬운 보고서 구조를 만들 수 있습니다. 대용량 데이터나 복잡한 ETL에는 Power Query나 피벗 테이블을 검토하세요.
중요: 동적 배열 수식은 Excel 표 내부에서 흘러넘치지 않으므로 항상 일반 셀에 입력하세요.












끝.