- 최초 작성일: 2002-12-26
- 최종 수정일: 2026-09-26
- 조회수: 37 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 행 방향 데이터를 열 방향으로 배치하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
Never shoot, never hit. 쏘지 않으면 맞지도 않는다. 지난 시간에 소개해 드린 "He who shoots often hits at last."와 비슷한 의미의 말이 되겠습니다. 무슨 일이든 일단 저질러 보아야 그것이 되는 일인지 안되는 일인지를 알 수 있는 법이겠지요.
즐거운 성탄절 보내셨나요?
행 방향 데이터를 열 방향으로 배치하기
핵심 요약
- 행 방향 데이터를 열 방향으로 배치하기에 필요한 핵심 작업 흐름과 엑셀 활용 방법을 원본 강좌의 순서대로 정리합니다.
- 행열변환, 행방향, 열방향 등 원본에서 사용된 주요 기능과 수식을 예제와 함께 확인할 수 있습니다.
- 원본 예제 데이터와 설명을 바탕으로 실제 작업에 적용할 수 있도록 구성했습니다.
질문 하나
공학관련 일을 하다보니 방대한 데이터 처리에 시간을 많이 뺏기는군요.
다음과 같은 배열이 있습니다.(참고로 0.01초 간격으로 생성한 인공지진파의
가속도 값 일부입니다) 이것을 일렬로 배열할 수 있는 함수나 vba좀 갈켜주실래요
0.6060755 0.58390768 0.09531546 -0.33287194
3.75462939 5.07817991 3.86322934 3.14876516
-3.13525937 -2.29898781 -2.18483477 -1.15058374
-0.50358642 6.01714906 14.15326599 12.5395121
7.41690691 8.78101871 12.10755468 13.47331583
-11.63355764 -8.15252198 -5.56886803 -4.8680304
6.11211603 6.56559257 6.07594113 8.36031057
이런 원본 자료를 다음과 같이..
0.6060755
0.58390768
0.09531546
-0.33287194
3.75462939
5.07817991
3.86322934
3.14876516
-3.13525937
-2.29898781
-2.18483477
-1.15058374
-0.50358642
6.01714906
14.15326599
12.5395121
7.41690691
8.78101871
12.10755468
13.47331583
-11.63355764
-8.15252198
-5.56886803
-4.8680304
6.11211603
6.56559257
6.07594113
8.36031057
1열로 바꿔놓은 아래쪽의 데이터를 잘보십시오.
윗 줄부터 오른쪽으로 진행하는 순서를 아래쪽으로 내리는 형태입니다.
쉬운 것 같지만 무지 안되는군요. 미치겠습니다..도움을~~
뭔가 쉬운 것 같으면서, 될듯 될듯 한데 잘 안되는 경우가 많습니다.
이것은 그동안의 강좌를 눈으로만 따라하고 넘어오신 경우이거나
또는 문제를 구체화 시키지 못한 경우가 대부분입니다.
누군가의 말처럼, 잘 정리된 문제는 이미 반쯤은 풀어놓은 것이나 진배 없습니다.
이 문제는 어떻게 접근하여 풀 것인지 딱 30초만이라도 깊이 고민해 보신 다음
아래 버튼을 눌러 보세요.
잘 되지요?
문제를 구체화 시킨다는 것은 다른 말로 하면 문제의 본질을 파악한다는 것과
같은 말입니다. 문제의 본질에 접근하게 되면 일정한 패턴을 파악하게 되고
패턴만 찾아낸다면 해결책을 찾은 것과 같습니다.
이 문제는 어떤 패턴이 있을까요?
A1 셀부터 시작해서 오른쪽으로 이동을 하다가 4열이 되면 아래로 한 줄 내려옵니다.
다시 오른쪽으로 계속 가다가 4번째 열이 되면 또 아래로 한 줄 내려갑니다.
… 이런 과정이 계속 반복이 되는군요.
지정한 위치를 기준으로 행/열 방향으로 이동한 위치에 있는 데이터 값을 구해주는
함수가 바로 Offset 함수였던 것 같고… 4번째 열이 될 때마다 아래로 한 줄씩 이동을
하므로 Row 함수를 적당히 어떻게 나누면 될 것 같은 생각이 마구 드시지요?
이것을 컴퓨터(엑셀)가 알아먹을 수 있게 만들어 보면 아래와 같이 될 것입니다.
=OFFSET($A$1,INT((ROW()-1)/4),MOD(ROW()-1,4),1,1)Offset 함수의 성격상 마지막의 두 인수(회색으로 표시한 부분)는 생략을 해도
상관 없습니다.
(1) $A$1 : 기준이 되는 셀, 즉 데이터를 가져올 시작이 되는 부분
(2) INT((ROW()-1)/4) : 기준 셀에서 행 방향으로 이동할 위치
(3) MOD(ROW()-1,4) : 기준 셀에서 열 방향으로 이동할 위치
잘 이해가 안 되시면 종이를 한장 펴 놓고 셀 주소와 숫자를 하나씩 대입해 가면서
몇번만 생각해 보세요.
다음 시간에 또…
Exceller's Book: 엑셀 XP 예제 활용 - 아무도 가르쳐주지 않는 엑셀 XP 비법/디지털북스刊
엑셀을 처음 접하는 분들, 엑셀을 몇 년간 사용해 왔으나 엑셀의 체계를
다잡고자 하는 분들, 그리고 '이제 엑셀에 대해서는 나를 당할자가
없도다'라고 생각하시는 분들도 참고하시기 바랍니다.
마치며
이번 강좌에서는 '행 방향 데이터를 열 방향으로 배치하기'과 관련된 작업 방법을 원본 예제와 함께 살펴보았습니다. 필요한 부분을 하나씩 적용해 보시기 바랍니다.