한 줄로 늘어진 비정형 데이터, 1초 만에 ‘표’로 바꾸는 마법
안녕하세요. 대한민국 직장인들의 칼퇴를 책임지는 엑셀 자동화 마스터, 직장인 엑셀 꿀팁 저장소입니다! 오늘은 엑셀 실무 현장에서 가장 흔하게 발생하지만 가장 많은 시간을 잡아먹는 ‘단순 반복 작업’의 끝판왕, 바로 WRAPROWS 함수와 WRAPCOLS 함수를 활용해 데이터 구조를 단 한 줄의 수식으로 변경하는 방법을 소개합니다.
지난 시간에는 드래그 없이 100만 개의 순번을 1초 만에 채우는 SEQUENCE 함수의 혁명에 대해 다뤘습니다.
기억나시나요? 마우스 드래그를 하다가 3만 행까지 내려가 버려 멘탈이 나갔던 최 사원의 에피소드 말입니다.
덕분에 최 사원은 순번 매기는 지옥에서는 탈출했습니다. 하지만 산 넘어 산이라고 했던가요?
오늘 아침, 영업팀 박 대리가 보낸 메신저 하나가 최 사원을 또 다른 절망의 구렁텅이로 몰아넣었습니다.
“최 사원, 이거 고객 리스트 정리해서 점심 전까지 줘.”
영업팀에서 보내온 파일은 그야말로 ‘충격과 공포’ 그 자체였습니다. 분명 고객 명단이라고 했는데, 파일을 열어보니 우리가 아는 깔끔한 표(Table) 형태가 아니었습니다.
A열 딱 한 줄에 모든 데이터가 세로로 끝도 없이 나열되어 있었기 때문입니다.
데이터의 순서를 자세히 뜯어보니 [고객명, 전화번호, 주소, 담당자, 고객명, 전화번호, 주소, 담당자...] 이런 식으로 4가지 정보가 무한 반복되고 있었습니다.
팀장님은 지나가면서 툭 던집니다. “최 사원, 이거 보기 좋게 이름, 번호, 주소, 담당자 이렇게 4열짜리 표로 딱 만들어서 보고해.”
자, 여러분이라면 이 상황에서 어떻게 하시겠습니까? 엑셀 초보 시절의 저였다면, 그리고 이 함수를 모르는 대부분의 직장인이라면 아마 이렇게 작업할 것입니다.
- 오른쪽 모니터에 유튜브 노동요를 틉니다.
- A1 셀(이름)을 복사해서 B1에 붙여넣습니다.
- A2 셀(전화번호)을 복사해서 C1에 붙여넣습니다.
- A3 셀(주소)을 복사해서 D1에 붙여넣습니다.
- A4 셀(담당자)을 복사해서 E1에 붙여넣습니다.
- 이 짓을 데이터가 끝날 때까지 3,000번 반복합니다.
데이터가 10개, 20개라면 그냥 참고 할 만합니다. 하지만 3,000명 분량이라면? 아마 점심시간은 반납해야 할 것이고, 퇴근할 때쯤엔 오른쪽 손가락 마디가 퉁퉁 붓고 손목에는 파스를 붙여야 할 겁니다. 단순 반복 작업은 사람의 영혼을 갉아먹습니다. 우리가 엑셀을 배우는 이유는 이런 ‘복붙 노가다’를 하기 위해서가 아닙니다.
오늘 소개할 WRAPROWS(행 기준 감싸기)와 WRAPCOLS(열 기준 감싸기) 함수만 알면, 3시간 걸릴 이 작업을 단 3초 만에 끝낼 수 있습니다. 이제 복사 붙여넣기는 잊으세요. 수식 딱 하나면 지저분한 한 줄 데이터가 완벽한 표로 변신합니다.
핵심 원리: WRAPROWS 함수 – “이 개수만큼 끊어서 옆으로 보내!”
엑셀 365 버전에 추가된 WRAPROWS 함수는 이름 그대로 데이터를 행(Row) 방향으로 감싸주는(Wrap) 함수입니다. 쉽게 말해, 한 줄로 길게 늘어진 국수 가닥 같은 데이터를 우리가 정한 ‘개수’만큼 뚝뚝 끊어서, 차곡차곡 옆으로 쌓아 표를 만들어주는 원리입니다.
문법도 정말 직관적이고 간단합니다. 딱 두 가지만 기억하면 됩니다. “어디를(원본)”, “몇 개씩(개수)” 끊을 것인가.
=WRAPROWS(vector, wrap_count, [pad_with])
=WRAPROWS(원본 데이터 범위, 한 줄에 넣을 데이터 개수, [빈칸 채울 값])
- vector (원본 범위): 한 줄로 길게 늘어진 1차원 데이터 범위를 선택합니다. (예: A열 전체)
- wrap_count (개수): 표를 몇 개의 열(Column)로 만들지 정합니다. 앞선 최 사원의 예시처럼 이름, 번호, 주소, 담당자 4가지 정보가 반복된다면 숫자 ‘4’를 입력하면 됩니다.
- pad_with (여분 채우기): 데이터 개수가 딱 떨어지지 않아 마지막 줄에 빈칸이 생길 때 표시할 값을 정합니다. (생략 시 #N/A 에러가 뜨므로 주의해야 합니다.)
실전 예제: 1차원 리스트를 4열 표로 변환하기
상황을 가정해 봅시다. A2셀부터 A4000셀까지 [고객명, 전화번호, 주소, 담당자]가 반복해서 들어있습니다. 이걸 B열부터 E열까지 예쁜 표로 만들고 싶습니다.
=WRAPROWS(A2:A4000, 4)
E2 셀에 이 수식을 입력하고 엔터를 치는 순간, 어떤 일이 벌어질까요? 마법처럼 4,000행의 데이터가 B, C, D, E열에 꽉 차게 재배열됩니다. 1,000명의 고객 리스트가 순식간에 완성되는 것이죠. 3시간 동안 마우스를 클릭해야 했던 일이 단 1초의 수식 입력으로 끝났습니다. 이것이 바로 ‘구조적 자동화’의 힘입니다.

형제 함수: WRAPCOLS 함수 – “이 개수만큼 끊어서 밑으로 보내!”
WRAPROWS의 형제 격인 WRAPCOLS 함수도 있습니다. 원리는 똑같지만 방향만 다릅니다. WRAPROWS가 데이터를 가로(행) 방향으로 채우고 다음 줄로 넘어갔다면, WRAPCOLS는 데이터를 세로(열) 방향으로 먼저 채우고 다음 열로 넘어갑니다.
이 함수는 언제 쓸까요? 보통 ‘라벨지 출력’이나 ‘단어장 만들기’를 할 때 유용합니다. 예를 들어 100개의 영어 단어 리스트가 있는데, 종이를 아끼기 위해 한 페이지에 20개씩 5단(5열)으로 인쇄하고 싶다고 가정해 봅시다.
=WRAPCOLS(A2:A101, 20)
이렇게 입력하면 첫 번째 열에 1번부터 20번 단어가 들어가고, 21번 단어는 두 번째 열의 첫 번째 칸으로 이동합니다. 인쇄용 서식을 만들 때 복사 붙여넣기로 위치를 잡느라 고생하셨던 분들에게는 구세주와 같은 함수입니다.

실무 고수의 디테일: #N/A 에러 깔끔하게 처리하기 (pad_with)
데이터 개수가 항상 우리가 원하는 열의 개수(배수)로 딱 떨어지면 얼마나 좋을까요? 하지만 실무 데이터는 늘 변수가 존재합니다. 예를 들어, 4열짜리 표를 만드는데 데이터가 총 13개밖에 없다면 어떻게 될까요?
4개, 4개, 4개씩 3줄은 꽉 차게 만들어지지만, 마지막 4번째 줄에는 데이터가 1개만 들어가고 나머지 3칸은 비어있게 됩니다. 이때 엑셀은 “#N/A”라는 보기 싫은 에러 메시지를 띄웁니다. “값이 없다(Not Available)”는 뜻이죠.
보고서에 이런 에러 코드가 그대로 찍혀 있으면 상사에게 “일 처리가 깔끔하지 못하네”라는 소리를 듣기 십상입니다. 이럴 때 세 번째 인수인 [pad_with]를 활용하면 프로다운 디테일을 챙길 수 있습니다.
=WRAPROWS(A1:A13, 4, "")
수식의 맨 마지막에 콤마를 찍고 큰따옴표 두 개(“”)를 넣어주세요. “만약 빈칸이 생기면 에러 대신 그냥 ‘공란(빈 문자열)’으로 둬라”라는 명령입니다. 이렇게 하면 데이터가 모자란 부분도 아주 깨끗하게 처리되어 완벽한 보고서를 만들 수 있습니다. 작은 차이지만, 이런 디테일이 엑셀 고수와 하수를 가르는 기준이 됩니다.
심화 응용: 다른 함수와 섞어 쓰면 천하무적!
WRAPROWS 함수는 단독으로 써도 훌륭하지만, 이전에 배운 다른 동적 배열 함수들과 결합했을 때 진정한 위력을 발휘합니다.
1. SEQUENCE와 결합하여 달력/좌석표 만들기
이전 시간에 배웠던 SEQUENCE 함수 기억하시죠? 만약 1번부터 30번까지의 번호표를 5열 6행의 좌석 배치도로 만들고 싶다면?
=WRAPROWS(SEQUENCE(30), 5)
1부터 30까지의 숫자를 생성함과 동시에 5칸씩 끊어서 배치합니다. 순번 생성과 구조 변경을 한 방에 해결하는 콤비네이션 기술입니다.
2. FILTER와 결합하여 특정 데이터만 표로 만들기
이게 진짜 실무 꿀팁입니다. 전체 리스트 중에서 ‘서울’ 지역 고객만 뽑아서, 이름/전화번호/주소 3열 표로 만들고 싶다면 어떻게 할까요? 필터를 걸고, 복사하고, 다시 표로 만들고… 복잡하죠?
=WRAPROWS(FILTER(A:A, B:B="서울"), 3)
이렇게 함수를 중첩하면, 조건에 맞는 데이터를 실시간으로 추출(FILTER)한 뒤, 즉시 표 형태로 변환(WRAPROWS)까지 해줍니다. 원본 데이터가 바뀌면 결과 표도 실시간으로 바뀝니다. 정적인 표가 아니라 ‘살아 움직이는 대시보드’가 되는 것입니다.
3. TOCOL, TOROW 함수와의 관계
반대로, 이미 표로 만들어진 데이터를 다시 한 줄로 길게 풀고 싶다면 어떻게 할까요? 그때는 TOCOL(열로 보내기) 또는 TOROW(행으로 보내기) 함수를 쓰면 됩니다. WRAPROWS가 ‘포장하는’ 함수라면, TOCOL은 포장을 ‘뜯는’ 함수입니다. 이 두 가지를 자유자재로 다룰 줄 알면, 어떤 형태의 똥(?) 데이터가 들어와도 두렵지 않습니다.
자주 묻는 질문: 구버전 엑셀에서는 안 되나요?
네, 안타깝게도 WRAPROWS와 WRAPCOLS 함수는 Microsoft 365(오피스 365) 버전 및 웹용 엑셀(Excel for the Web)에서만 사용할 수 있는 최신 함수입니다. 엑셀 2016, 2019 같은 영구 라이선스 버전에서는 이 함수가 존재하지 않습니다.
만약 회사에서 구버전을 쓰고 계신다면, 예전 방식대로 INDEX, MOD, INT, ROW, COLUMN 함수를 복잡하게 조합해서 수식을 짜야 합니다. (이 수식은 나중에 별도 포스팅으로 다루겠지만, 정신 건강을 위해 최신 버전 엑셀을 구독해 달라고 팀장님을 조르는 것을 추천합니다.)
💡 더 깊이 알아보고 싶다면? (공식 가이드)
WRAPROWS와 WRAPCOLS 함수는 Microsoft 365 및 웹용 Excel에서 사용할 수 있는 최신 함수입니다. 내 엑셀 버전에 따른 정확한 호환성 정보가 궁금하시다면 마이크로소프트 공식 지원 문서(WRAPROWS)를 참고해 보시는 것을 추천합니다.
마치며
지금까지 한 줄로 길게 늘어진 비정형 데이터를 단 1초 만에 완벽한 표 구조로 바꿔주는 WRAPROWS와 WRAPCOLS 함수에 대해 깊이 있게 알아보았습니다.
아직도 “이거 데이터 몇 개 안 되는데 그냥 복사해서 붙여넣지 뭐”라고 생각하시나요? 데이터가 10개, 20개일 때는 그럴 수 있습니다. 하지만 여러분이 다루는 데이터가 수백, 수천 개로 늘어나고, 그 구조를 수시로 바꿔야 하는 상황이 온다면 이 함수들은 여러분의 손목 건강과 퇴근 시간을 지켜주는 가장 든든한 아군이 될 것입니다. 엑셀의 고수는 데이터를 하나하나 손으로 옮기는 사람이 아니라, 데이터가 흘러갈 수 있는 ‘길(System)’을 수식으로 설계하는 사람이라는 점을 꼭 기억해 주세요.
오늘 배운 이 ‘구조 변경’ 기술만 제대로 익혀도 여러분의 데이터 핸들링 속도는 이전보다 몇 배는 빨라질 겁니다. 최 사원처럼 한 줄짜리 데이터 뭉치를 보고도 당황하거나 한숨 쉬지 말고, 우아하게 =WRAPROWS 수식을 넣어 동료들의 감탄을 자아내 보시기 바랍니다. “김 대리, 이걸 벌써 다 했어?”라는 말을 듣는 짜릿함, 여러분도 느낄 수 있습니다.
지금까지 복잡한 수식은 싫지만 칼퇴는 하고 싶은 여러분을 위한 직장인 엑셀 꿀팁 저장소였습니다. 다음에도 무릎을 탁 치게 만드는 기가 막힌 실무 엑셀 꿀팁으로 찾아오겠습니다. 감사합니다!
