Excel

엑셀과 VBA의 Offset 함수가 다르다. (1)

별동산 2024. 6. 24. 08:22
반응형

1. 구문 비교

Excel VBA
OFFSET(reference, rows, cols, [height], [width]) expression.Offset (RowOffset, ColumnOffset)
기준(참조) 셀이 첫번째 인수이고,
행과 열만큼 떨어진 셀을 지정하기 위해 rows와 cols를 지정하는데 기준 셀의 위치가 0임

그리고, 떨어진 셀부터 높이와 너비만큼 영역을 지정하기 위해 height와 width 지정 가능
기준셀을 먼저 expresseion 자리에 지정하고,
속성(property)으로 Offset을 지정하는데,
행과 열로 떨어진 값만 지정 가능하고
높이와 너비는 지정할 수 없음

 

2. 사용 예

offset 비교1.xlsx
0.01MB

 

 

가. Excel의 Offset 함수

(1) 떨어진 셀 지정

C9셀을 기준으로 아래로 3칸, 오른쪽으로 한 칸 이동한 셀을 지정하므로 D12셀이 됩니다.

 

(2) 떨어진 영역 지정

=OFFSET(C9,3,1,2,2)

C9셀에서 아래로 3칸, 오른쪽으로 한 칸 이동한 다음

그 셀을 기준으로 높이 2, 너비 2의 영역을 지정합니다.

 

(3) 응용 1

=OFFSET(C9,3,1,2,2)에서 = 다음에 sum을 입력해서

떨어진 영역의 합계를 구할 수 있습니다.

=SUM(OFFSET(C9,3,1,2,2))

 

=92+95+91+75=353 맞습니다.

 

(4) 응용 2

지점별 해당 월의 매출을 찾을 때 여러 가지 방법이 있을 수 있지만

=OFFSET(G7,MATCH(G2,G8:G9,0),MATCH(H1,H7:J7,0))라고 해서

 

G7셀을 기준으로 아래로 떨어진 값과 오른쪽으로 떨어진 셀의 값이 해당 지점, 해당 월의 매출이 됩니다.

 

아래로 떨어진 값과 오른쪽으로 떨어진 값을

Match 함수를 이용해 구하는데,

MATCH(G2, G8:G9,0)은 G2셀의 값을 G8과 G9셀에서 찾아서 위치를 구하는 수식으로 1이 반환되고,

MATCH(H1,H7:J7,0)은 H1셀 값을 H7과 J7셀에서 찾아서 위치를 구하는 수식으로 1이 반환됩니다.

 

따라서, Offset(G7,1,1)이 되니, 97이 구해지는 것입니다.

 

G2셀의 값을 B지점, H1셀의 값을 2월이라고 수정하면

80이라고, G7셀에서 세로로 2, 가로로 2만큼 떨어진 값입니다.

 

마찬가지로 2월을 3월로 고치면 79가 구해집니다.

 

offset 비교1(완성).xlsx
0.01MB

반응형