본문 바로가기
Excel/엑셀 팁(TIP)

엑셀Tip] 1행으로 된 자료를 2열로 정리하기

by excelnote2 2017. 5. 22.





이전 블로그에서 2열로 된 데이터를 아래 행으로 옮겨서 2행으로 만드는 방법에 대해 정리했었다. 











이번 글에서는 위 그림과 반대로 1행으로 된 자료를 2열씩 끊어서 옮기는 방법에 대해서 알아본다. 



행으로 된 자료를 몇 개의 열로 옮기려면 offset함수를 사용한다. 

 


OFFSET함수는 참조를 반환하는 함수로 기본 구문은 아래와 같다. 



OFFSET(기준셀, 행방향 이동 수, 열방향 이동 수, 참조 높이, 참조 너비)



즉, offset함수는 기준 셀에서부터 행 방향과 열 방향으로 각각 이동한 다음 그 셀값을 반환하는 함수이다. 




offset함수 사용이 익숙하지 않으면 어떤 숫자가 들어가야 하는지 생각하면서 거꾸로 수식을 만들어가는 방법을 사용하는 것이 낫다. 










아래 그림에서 B1셀에는 A1셀의 값을, B2셀에는 A3셀의 값을 가져오려고 한다. 







그러면 B1셀은 =offset(A1, 0, 0) 의 값을 가져야 한다. 

A1셀을 기준으로 행방향으로 0, 열방향으로 0 움직인 셀 값을 반환한다. 



B2셀은 A1셀 위치에서 행 방향만 2 늘어서 

=offset(A1, 2, 0)의 값을 가져야 한다. 



그러면 B열에 들어가는 수식은 다른 값은 변하지 않고 offset함수 두번째 인수인 행방향 이동 수가 0,2,4,6,8...로 변경되어야 한다. 





이를 위해서 row()함수를 사용한다. 


row()함수는 현재 셀이 위치한 행 값을 반환한다. 


(row(B1)은 1, row(B2)는 2를 반환한다)



row(a1)은 1을 반환하는데 offset함수에서 0부터 인수로 사용하기 위해서 row()-1을 사용하고 2행마다의 값을 가져와야 하므로 *2를 사용한다. 


결국 offset 함수 두번째 인수(행방향 이동 수)는 (row()-1)*2를 사용한다. 







C열에 A열의 2,4,6번째 행 값을 가져오려면 row()함수로 다시 계산해도 되지만 위에서 계산한 row()-1*2의 값에서 1을 더한 값을 사용하는 것이 더 간단하다. 






이제 B1셀과 C1셀을 블록으로 잡고 자동채우기 핸들로 끝으로 내린다. 









덧. 


만약 1행으로 된 자료를 3열로 나눠서 입력하려면 offset함수의 두번째 인수를 row()-1*3 으로 주면 된다. 




댓글