Excel · 조회

엑셀 OFFSET

기준 셀에서 이동·크기 지정해 범위 반환 — 동적 차트·자동 확장 범위의 표준.

OFFSET 수식 구조

=OFFSET(기준, 행이동, 열이동, [높이], [너비])

기준 (reference)

이동의 출발점이 되는 셀 또는 범위.

행이동, 열이동 (rows, cols)

기준에서 떨어진 거리. 음수면 위쪽·왼쪽.

높이, 너비 (height, width, 선택)

결과 범위의 크기. 생략하면 기준과 동일한 크기. 1·1이면 단일 셀.

OFFSET 자체는 결과를 표시하지 않습니다 — 범위를 반환할 뿐이라 보통 SUM·AVERAGE· COUNTA 안에 감싸서 씁니다. INDIRECT처럼 휘발성 함수라 잦은 재계산이 일어납니다.

직접 체험해보세요

기준 셀 B2(검정)에서 4개 슬라이더로 이동·크기를 조절하면 결과 영역(녹색)이 실시간으로 움직입니다.

B11=SUM(OFFSET(B2, 2, 1, 2, 2))194
2
1
2
2
ABCDEF
1111213141516
2212223242526
3313233343536
4414243444546
5515253545556
6616263646566
7717273747576
8818283848586

기준

B2

반환 범위

C4:D5

SUM

194

실전 활용 예제

=OFFSET(A1, 2, 3)

단일 셀 이동 — A1에서 2행 아래, 3열 오른쪽인 D3 셀을 반환. 좌표 기반 셀 참조에 사용.

예시: =OFFSET(A1, 2, 3)D3의 값
=SUM(OFFSET(A1, 0, 0, COUNTA(A:A), 1))

자동 확장 합계 — A열에 값이 늘어날 때마다 SUM 범위가 자동으로 확장. 매일 데이터가 쌓이는 시트에 유용.

예시: A열에 100개 → 100개 합동적 합계
=AVERAGE(OFFSET(B1, COUNTA(B:B)-7, 0, 7, 1))

최근 N개 평균 — B열의 마지막 7개 값 평균. 이동 평균(MA7) 만들 때 클래식 패턴.

예시: 최근 7일 매출 평균이동 평균
=OFFSET(B1, 0, 0, COUNTA(B:B), 1)

이름 정의로 동적 차트 범위 — 이 수식을 이름 정의에 넣으면 데이터 추가에 따라 차트가 자동으로 늘어남.

예시: 이름 '매출범위'로 정의차트 데이터 범위
목차
  1. 1.엑셀 OFFSET 함수란?
  2. 2.동작 예시
  3. 3.OFFSET vs INDEX vs INDIRECT
  4. 4.핵심 활용 (동적 범위·이동평균·차트)
  5. 5.실전 사용 시나리오 8가지
  6. 6.INDEX로 OFFSET 대체 (권장)
  7. 7.함정 6가지 + 자주 묻는 질문

엑셀 OFFSET 함수란?

엑셀 OFFSET 함수는 기준 셀에서 행·열로 이동한 후 지정한 크기의 범위를 반환하는 검색·참조 함수입니다. 데이터 추가 시 자동 확장되는 동적 범위, 최근 N개 이동 평균, 동적 차트 데이터 범위 등에 사용. 단, 휘발성(volatile)이라 시트 어디든 변경 되면 매번 재계산 → 성능 저하 우려.

구문은 =OFFSET(기준셀, 행이동, 열이동, [높이], [너비]) 5인수. 가능한 한 INDEX 사용 권장 — 결과 동일하면서 비휘발성. OFFSET은 동적 크기 필요한 차트 범위 정도에만.

동작 예시

=OFFSET(A1, 2, 3) → A1에서 아래 2, 오른쪽 3 = D3

=OFFSET(A1, 0, 0, 5, 3) → A1:C5 범위 (5행 3열)

=OFFSET(A1, 10, 0, 1, 1) → A11

=SUM(OFFSET(A1, 1, 0, 5, 1)) → A2:A6 합계

표:

A B C

1 10 20 30

2 40 50 60

3 70 80 90

 

=OFFSET(A1, 1, 1) → B2 = 50

=OFFSET(A1, 0, 0, 3, 3) → A1:C3 전체

=SUM(OFFSET(A1, 0, 2, 3, 1)) → C1:C3 합계 = 180

OFFSET vs INDEX vs INDIRECT

함수동작휘발성권장
INDEX좌표 (행, 열)권장 (비휘발성)
OFFSET좌표 + 크기✅ (휘발성)동적 크기 필요 시
INDIRECT텍스트 주소✅ (휘발성)시트 이름 동적

가능하면 INDEX, OFFSET은 동적 크기·차트 범위에만.

핵심 활용 (동적 범위·이동평균·차트)

자동 확장 범위 (데이터 추가)

=SUM(OFFSET(A1, 0, 0, COUNTA(A:A), 1))

→ A열 데이터 끝까지 자동 합계

 

대체 (INDEX 권장):

=SUM(A1:INDEX(A:A, COUNTA(A:A)))

→ 비휘발성 + 같은 결과

이동 평균 (최근 N개)

=AVERAGE(OFFSET(A1, COUNTA(A:A)-N, 0, N, 1))

→ A열 마지막 N개 평균

동적 차트 범위 (이름 정의)

이름 정의: 매출 = OFFSET(Sheet1!$A$2, 0, 0, COUNTA(Sheet1!$A:$A)-1, 1)

차트 데이터: =Sheet1!매출

→ 데이터 추가 시 차트 자동 확장

실전 사용 시나리오 8가지

  • 단순 좌표 이동 =OFFSET(A1, 5, 2) → C6
  • N×M 범위 반환 =OFFSET(A1, 0, 0, 3, 2) → A1:B3
  • 자동 확장 합계 =SUM(OFFSET(A1, 0, 0, COUNTA(A:A), 1))
  • 이동 평균 (최근 7일) =AVERAGE(OFFSET($A$1, COUNTA($A:$A)-7, 0, 7, 1))
  • N번째 셀 =OFFSET(A1, 9, 0) → A10 (INDEX가 더 깔끔)
  • 음수 이동 (위·왼쪽) =OFFSET(D5, -2, -1) → C3
  • 동적 차트 (이름 정의) — 이름 정의 매출 = OFFSET(...) → 차트 데이터에 사용
  • INDIRECT 결합 (시트 동적 + 범위) =SUM(OFFSET(INDIRECT(A1&"!A1"), 0, 0, 10, 1))

INDEX로 OFFSET 대체 (권장)

OFFSET이 휘발성이라 큰 시트에서 성능 저하 → INDEX 패턴으로 대체:

OFFSETINDEX 대체
=OFFSET(A1, 5, 2)=INDEX(A:C, 6, 3)
=OFFSET(A1, 0, 0, 10, 1)=A1:INDEX(A:A, 10)
=SUM(OFFSET(A1, 0, 0, N, 1))=SUM(A1:INDEX(A:A, N))

→ 결과 동일, 비휘발성이라 성능 ↑.

함정 6가지 + 자주 묻는 질문

자주 발생하는 함정 6가지

  • 휘발성 → 성능 저하 — 시트 어디든 변경 시 매번 재계산. OFFSET 100개 = 매번 100번. INDEX 권장
  • 범위 초과 → #REF! OFFSET(A1, -5, 0) → 시트 위로 나감 → #REF!(참조 오류)
  • height·width 생략 시 reference 크기 OFFSET(A1:C3, 0, 0) → A1:C3. 단일 셀은 명시
  • 가독성 떨어짐 — 단순 위치는 직접 참조 또는 INDEX가 명확
  • COUNTA + OFFSET 빈 셀 문제 — 중간 빈 셀 있으면 COUNTA 부정확. LOOKUP(2, 1/(A:A<>""), ROW(A:A)) 권장
  • 차트 범위 이름 정의 필수 — 차트 데이터에 직접 OFFSET 못 씀. 이름 정의 통해서만

자주 묻는 질문

Q. OFFSET 함수 사용법은?

=OFFSET(기준셀, 행이동, 열이동, [높이], [너비]) 형식. 기준 셀에서 행·열 이동 + 지정 크기 범위 반환. 예: =OFFSET(A1, 2, 3) → D3, =OFFSET(A1, 0, 0, 5, 1) → A1:A5.

Q. OFFSET vs INDEX 어떤 게 좋나요?

INDEX 권장. OFFSET은 휘발성(volatile)이라 매번 재계산 → 성능 저하. INDEX는 비휘발성. 결과 동일하면 INDEX 우선.

Q. 동적 범위 만드는 법은?

=OFFSET(A1, 0, 0, COUNTA(A:A), 1) 또는 비휘발성 =A1:INDEX(A:A, COUNTA(A:A)). 데이터 추가 시 자동 확장. 차트 데이터 범위에 이름 정의로 등록.

Q. 휘발성이 뭔가요?

시트 어디든 변경되면 매번 재계산되는 함수. OFFSET, INDIRECT, NOW, TODAY, RAND 등. 큰 시트에서 OFFSET 많이 쓰면 매번 100번씩 계산 → 성능 ↓.

Q. 이동 평균은?

=AVERAGE(OFFSET(A1, COUNTA(A:A)-N, 0, N, 1)) → 최근 N개 평균. 또는 비휘발성: =AVERAGE(INDEX(A:A, COUNTA(A:A)-N+1):INDEX(A:A, COUNTA(A:A))).

Q. 음수 이동 가능한가요?

. rows·cols 음수면 위·왼쪽 이동. =OFFSET(D5, -2, -1) = C3. 단 시트 범위 벗어나면 #REF!(참조 오류).

Q. 동적 차트 범위는?

이름 정의 + OFFSET 표준 패턴. 1) 이름 정의: 매출 = OFFSET(...) 2) 차트 데이터: =Sheet1!매출 3) 데이터 추가 시 차트 자동 확장.

Q. 구글 스프레드시트에서도 동일하게 작동하나요?

네. OFFSET은 표준 검색·참조 함수로 Google Sheets, LibreOffice Calc, Apple Numbers, 한컴 한셀, WPS에서 동일하게 작동합니다.

본 페이지는 Microsoft Support 공식 OFFSET·INDEX·INDIRECT 문서를 기준으로 작성되었습니다. 정확한 동작은 Excel 버전·환경에 따라 달라질 수 있으니 중요한 작업 전에는 실제 환경에서 확인하세요.