5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
실무 위키응용 공식엑셀 가로 데이터를 세로로 펼치기 공식

엑셀 가로 데이터를 세로로 펼치기 공식

지원 버전 자세히 보기
엑셀 2013 이전엑셀 2016엑셀 2019엑셀 2021엑셀 2024M365웹 엑셀

가로 범위의 값을 열 순서대로 세로로 펼치는 공식입니다.

엑셀 가로 데이터를 세로로 펼치기 공식 예제 미리보기
예제 미리보기 크게 보기

인수 설명

01모든 버전 INDIRECT 방식

=INDIRECT ( "R" & ( ROW ( ) + ROW ( 데이터시작셀 ) - ROW ( 입력시작셀 ) - 데이터행개수 * ROUNDDOWN ( ( ROW ( ) - ROW ( 입력시작셀 ) ) / 데이터행개수, 0 ) ) & "C" & ( ROUNDDOWN ( ( ROW ( ) - ROW ( 입력시작셀 ) ) / 데이터행개수, 0 ) + COLUMN ( 데이터시작셀 ) ), 0 )
인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
데이터시작셀필수원본 데이터의 왼쪽 위 셀입니다. ROW 함수와 COLUMN 함수가 이 셀의 행·열 번호를 계산합니다.
데이터행개수필수원본 데이터에서 한 열에 포함된 행 개수입니다. 이 개수만큼 읽은 뒤 다음 열로 이동합니다.
입력시작셀필수첫 번째 결과 수식을 입력할 셀입니다. 아래로 채워도 기준이 움직이지 않도록 절대참조로 고정합니다.
E2=INDIRECT("R"&(ROW()+ROW($A$2)-ROW($E$2)-2*ROUNDDOWN((ROW()-ROW($E$2))/2,0))&"C"&(ROUNDDOWN((ROW()-ROW($E$2))/2,0)+COLUMN($A$2)),0)
A
B
C
D
E
F
1
1월
2월
3월
세로 데이터
2
12
18
15
12
3
9
11
14
9
4
18
5
11
6
15
7
14
8
수식을 E2부터 아래로 채우면 원본을 A2:A3, B2:B3, C2:C3 순서로 읽어 12, 9, 18, 11, 15, 14를 반환합니다.

02M365·Excel 2024 TOCOL 방식

=TOCOL ( 데이터범위, 0, TRUE )
인수 설명 자세히 보기
인수구분설명
데이터범위필수세로로 펼칠 원본 범위입니다. 두 번째 인수 0은 값을 제외하지 않고, 세 번째 인수 TRUE는 열을 먼저 읽도록 지정합니다.
E2=TOCOL(A2:C3,0,TRUE)
A
B
C
D
E
F
1
1월
2월
3월
세로 데이터
2
12
18
15
12
3
9
11
14
9
4
18
5
11
6
15
7
14
8
TOCOL 함수가 A2:A3, B2:B3, C2:C3 순서로 읽어 E2:E7에 12, 9, 18, 11, 15, 14를 스필합니다.

동작 원리

01모든 버전 INDIRECT 방식

ROW 함수와 ROUNDDOWN 함수가 반복할 행과 열 묶음을 계산하고, COLUMN 함수와 INDIRECT 함수가 R1C1 주소의 값을 반환합니다.

모든 버전 INDIRECT 방식의 예제 시트에서 E2 셀이 12를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

열 묶음 번호를 계산합니다

인수를 생략한 ROW 함수는 활성 셀이 아니라 수식이 입력된 셀의 행 번호를 반환합니다. E2에서는 시작 셀과의 행 차이가 0이므로 ROUNDDOWN 함수가 첫 번째 열 묶음 번호 0을 반환합니다.

=ROUNDDOWN ( ( ROW ( ) - ROW ( $E$2 ) ) / 2, 0 ) E2에서 계산한 열 묶음 번호입니다.
= 0 첫 번째 원본 열을 읽습니다.
2

대상 행 번호를 계산합니다

현재 수식 행에서 두 행씩 묶은 횟수를 빼면 원본 행 번호가 2와 3으로 반복됩니다. E2에서는 대상 행 번호 2를 반환합니다.

=ROW ( ) + ROW ( $A$2 ) - ROW ( $E$2 ) - 2 * 0 E2에서 계산한 원본 행 번호입니다.
= 2 원본 범위의 첫 번째 행입니다.
3

대상 열 번호를 계산합니다

열 묶음 번호 0에 데이터 시작 열 A열의 번호 1을 더합니다. E2에서는 대상 열 번호 1을 반환합니다.

=0 + COLUMN ( $A$2 ) E2에서 계산한 원본 열 번호입니다.
= 1 원본 범위의 첫 번째 열입니다.
4

INDIRECT 함수가 원본 값을 반환합니다

R2C1은 A2를 가리킵니다. INDIRECT 함수는 A2의 값 12를 반환하고, 수식을 아래로 채우면 두 행마다 다음 열로 이동합니다. INDIRECT 함수는 참조를 다시 계산하는 휘발성 함수입니다.

=INDIRECT ( "R"&2&"C"&1, 0 ) R1C1 형식의 R2C1은 A2를 가리킵니다.
= 12 A2 셀의 값입니다.

댓글 11

댓글 11
5 (8개 평가)
엑셀고고
엑셀고고 2020.04.13 10:18
선생님, 이 수식을 이용하는 방법 외에 파워쿼리로도 가능할 것 같은데 강의를 부탁드려도 될까요?
오빠두엑셀
오빠두엑셀 작성자 2020.04.13 14:19
안녕하세요?^^
파워쿼리를 이용한 정규화방법도 조만간 준비해드리겠습니다.
좋은 의견 감사드립니다.
아이둘
아이둘 2020.05.05 12:27
엑셀 add-in을 만들고 있는데 추가할 기능을 고민하던 중에 이 자료를 보게되었네요.
초보자도 버튼 한 번 눌러서 쉽게 정규화 할 수 있도록~~
좋은 자료 감사합니다.
임이사
임이사 2020.12.16 10:55
감사합니다~
이승원
이승원 2021.04.28 23:16
진짜... 감사합니다!!!!!!!!!
qwa****
qwa**** 2021.11.19 10:04
항상 보면서 많은 도움을 받고 있습니다. MOD, Floor 활용하여 응용할 수도 있겠네요. ㅎ
임정모
임정모 2022.03.17 16:00
안녕하세요 강의 보고 궁금한게 있어서 질문드립니다. 정규화된 표를 바탕으로 lookup 함수를 이용해 데이터를 가져오고 그 옆셀에 직접 입력한 데이터가 있을 때 새로운 데이터가 추가되어 오름차순 내림차순 정렬을 하면 직접 입력한 셀은 고정상태가 되고 lookup을 이용한 데이터들은 위치가 변동되거든요.. 이부분을 좀 해결하고 싶습니다!
오빠두엑셀
오빠두엑셀 작성자 2022.03.21 20:49
안녕하세요.
그럴 경우 함수에 들어가는 셀 참조를 아래와 같이 INDIRECT 함수로 해결해보세요.
기존 : A1
변경 : INDIRECT("A"&ROW())
강민준🤗
강민준🤗 2024.08.11 16:57
좋은 강의 감사합니다🙇‍♂️
하늘SS
하늘SS 2025.02.19 16:05
선생님, 좌측 행으로 1월 구분2개, 열로 날짜가 있는 데이터의 경우 위 수식으로는 안되는데 수식 알려주실 수 있나요??
오빠두엑셀
오빠두엑셀 작성자 2025.02.20 16:39
안녕하세요. 오빠두엑셀입니다.
머리글이 여러줄인 경우, M365 에 새롭게 추가된 배열 수식을 사용하면 편리합니다.
이전 버전일 경우 함수만으로는 정규화 구현이 어려울 수 있습니다.
아래 영상을 참고해보세요.
https://www.oppadu.com/unpivot-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC/
스크랩 완료