데이터 셀 순서 거꾸로 뒤집기(바꾸기)
얼마전, 엑셀VBA를 활용해서 데이터 셀 순서 거꾸로 뒤집기(바꾸기) 내용을 쓴적이 있다.
이번에는 함수를 활용해서 해보자.
[VBA로 데이터 셀 순서 뒤집기]
편의상 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로 했었던거긴 하지만....