본문 바로가기
WeekdayLife/excel

[엑셀] 데이터 셀 순서 거꾸로 뒤집기(바꾸기)

by JO_i 2016. 11. 18.

 

 

데이터 셀 순서 거꾸로 뒤집기(바꾸기)

 

얼마전, 엑셀VBA를 활용해서 데이터 셀 순서 거꾸로 뒤집기(바꾸기) 내용을 쓴적이 있다.

이번에는 함수를 활용해서 해보자.

 

[VBA로 데이터 셀 순서 뒤집기]

 

 

[엑셀VBA] 데이터 셀 순서 거꾸로 뒤집기(바꾸기)

데이터 셀 순서 거꾸로 뒤집기(바꾸기) 의외로 DB에서 추출한 데이터가 뒤집혀 있는 경우가 많다.대부분 경우, 엑셀 노가다로 충분하지만,엑셀에 버튼을 만들어 놓으면 편할 수 있다.개인적으로

sunnybong.tistory.com

 

 

편의상 1부터 6까지의 숫자가 있다고 치자.

우측 열에 거꾸로 뒤집어서 넣을 생각이다.

 

OFFSET 함수를 활용할 예정이다.

OFFSET 함수는 특정 셀로부터 X열만큼, Y행만큼 떨어진 곳의 값을 반환해준다.

=OFFSET(기준이 되는 셀,옮기고 싶은 값이 들어있는 셀과의 행간격, 옮기고 싶은 값이 들어있는 셀과의 열간격)

으로 입력하면 되겠다.

 

글로써놓고 보니 나도 잘 모르겠다.

 

C4 셀에는 B9의 값이 들어와야 하니, 옮기고 싶은 값의 셀과의 행간격은 5가 되겠다.

단순히 5를 입력해도 되지만,

자동 채우기를 해야하는 관계로 아래로 갈수록 5-4-3-2-1이라는 값을 만들어 내야 한다.

 

나는 편의상.

숫자가 들어있는 전체 영역의 갯수(6)를 세어 전체 수를 만들고, ---------------(A)

아래로 하나씩 내려갈때마다 값이 하나씩 증가되는 것을 해당 열의 행번호로 잡았다. ------------(B)

 

이런식이 될테다

=OFFSET(값,A,B)

 

입력해보면

=OFFSET(B$4,COUNTA(B$4:B$9)-ROW(B1),)

이 된다.

 

** 열 이동은 없으므로 열 인수 입력은 공백으로 두었다

=OFFSET(B$4,COUNTA(B$4:B$9)-ROW(B1), 열 입력)

기준이 되는 값과 데이터가 들어있는 영역은 변하면 안되기 때문에 절대참조로 해둔다.

결과는 아래와 같다.

 

단, 1,2,3 행을 삭제하거나 변화를 주면, 수식이 어그러질 수 있다.

사실 이게 귀찮아서, VBA로 했었던거긴 하지만....