Excel OFFSET 함수 - 수식 예 및 사용

  • 이 공유
Michael Brown

이 튜토리얼에서는 Excel 세계에서 가장 신비한 존재 중 하나인 OFFSET 함수에 대해 조명할 것입니다.

그러면 OFFSET이란 무엇입니까? 엑셀에서? 간단히 말해서 OFFSET 수식은 지정된 수의 행과 열에 의해 시작 셀 또는 셀 범위에서 오프셋된 범위에 대한 참조를 반환합니다.

OFFSET 함수는 얻기가 약간 까다로울 수 있습니다. , 먼저 짧은 기술 설명을 살펴보고(간단하게 유지하기 위해 최선을 다하겠습니다) 그런 다음 Excel에서 OFFSET을 사용하는 가장 효율적인 몇 가지 방법을 다룰 것입니다.

    Excel OFFSET 함수 - 구문 및 기본 사용법

    Excel의 OFFSET 함수는 주어진 셀 또는 범위에서 주어진 수의 행과 열인 셀 또는 셀 범위를 반환합니다.

    OFFSET 함수의 구문은 다음과 같습니다.

    OFFSET(참조, 행, 열, [높이], [너비])

    처음 3개의 인수는 필수이며 마지막 2개는 선택 사항입니다. 모든 인수는 다른 셀에 대한 참조이거나 다른 수식에서 반환된 결과일 수 있습니다.

    Microsoft가 매개변수 이름에 의미를 부여하기 위해 상당한 노력을 기울인 것으로 보이며, 매개변수에 대한 힌트를 제공합니다. 각각에 지정해야 합니다.

    필수 인수:

    • 참조 - 오프셋의 기준이 되는 셀 또는 인접 셀 범위입니다. 시작점이라고 생각하시면 됩니다.
    • Rows - 행의 개수열 (A):

      =OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1)

      수식이 좀 어색해 보이지만 잘 됩니다 :)

      예 2 . Excel에서 위쪽 조회하는 방법

      VLOOKUP이 왼쪽을 볼 수 없는 경우와 마찬가지로 수평 대응 함수(HLOOKUP 함수)는 값을 반환하기 위해 위쪽을 볼 수 없습니다.

      일치 항목을 찾기 위해 위쪽 행을 스캔해야 하는 경우 OFFSET MATCH 공식이 다시 도움이 될 수 있지만 이번에는 다음과 같이 COLUMNS 함수로 개선해야 합니다.

      OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, COLUMNS( lookup_table )) , 0) -1, 1, 1)

      여기서:

      • Lookup_row_offset - 시작점에서 조회 행으로 이동할 행 수
      • Return_row_offset - 시작 지점에서 반환 행으로 이동할 행 수.

      조회 테이블이 B4:F5이고 조회 값이 셀 B1에 있다고 가정하면 공식은 다음과 같습니다.

      =OFFSET(B4:F5, 0, MATCH(B1, OFFSET(B4:F5, 1, 0, 1, COLUMNS(B4:F5)), 0) -1, 1, 1)

      우리의 경우, 조회 범위는 시작점에서 1행 아래이므로 조회 행 오프셋은 1이고 반환 행 오프셋은 테이블의 첫 번째 행에서 일치 항목을 반환하므로 0입니다.

      예 3. 양방향 조회(열 및 행 값 기준)

      양방향 조회는 행과 열 모두에서 일치 항목을 기반으로 값을 반환합니다. 그리고 당신은 다음을 사용할 수 있습니다특정 행과 열의 교차점에서 값을 찾는 이중 조회 배열 수식:

      =OFFSET( 조회 테이블 , MATCH( 행 조회 값 , OFFSET( 룩업 테이블 , 0, 0, ROWS( 룩업 테이블 ), 1), 0) -1, MATCH( 컬럼 룩업 값 , OFFSET( 룩업 테이블 , 0, 0, 1, COLUMNS( 조회표 )), 0) -1)

      주어진 사실:

      • 조회표는 A5:G9
      • 행에서 일치하는 값은 B2입니다.
      • 열에서 일치하는 값은 B1입니다.

      다음과 같은 2차원 조회 수식을 얻습니다.

      =OFFSET(A5:G9, MATCH(B2, OFFSET(A5:G9, 0, 0, ROWS(A5:G9), 1), 0)-1, MATCH(B1, OFFSET(A5:G9, 0, 0, 1, COLUMNS(A5:G9)), 0) -1)

      제일 기억하기 쉽지 않죠? 또한 이것은 배열 수식이므로 Ctrl + Shift + Enter를 눌러 정확하게 입력하는 것을 잊지 마십시오.

      물론 이 긴 OFFSET 수식은 Excel에서 이중 조회를 수행할 수 있는 유일한 방법입니다. VLOOKUP & MATCH 함수, SUMPRODUCT 또는 INDEX & 성냥. 명명된 범위와 교차 연산자(공백)를 사용하는 공식 없는 방법도 있습니다. 다음 자습서에서는 모든 대체 솔루션에 대해 자세히 설명합니다. Excel에서 양방향 조회를 수행하는 방법.

      OFFSET 함수 - 제한 사항 및 대안

      이 페이지의 수식 예제를 통해 일부 문제가 해결되셨길 바랍니다. Excel에서 OFFSET을 사용하는 방법에 대해 설명합니다. 그러나 자신의 통합 문서에서 기능을 효율적으로 활용하려면

      Excel OFFSET 함수의 가장 중요한 한계는 다음과 같습니다.

      • 다른 휘발성 함수와 마찬가지로 OFFSET은 자원이 부족한 기능 . 원본 데이터가 변경될 때마다 OFFSET 수식이 다시 계산되어 Excel이 조금 더 오래 사용됩니다. 이것은 작은 스프레드시트의 단일 수식에 대한 문제가 아닙니다. 그러나 통합 문서에 수식이 수십 또는 수백 개 있는 경우 Microsoft Excel에서 다시 계산하는 데 시간이 오래 걸릴 수 있습니다.
      • Excel OFFSET 수식은 검토하기 어렵습니다 . OFFSET 함수에 의해 반환된 참조는 동적이기 때문에 큰 수식(특히 중첩된 OFFSET이 있는)은 디버그하기가 상당히 까다로울 수 있습니다.

      Excel에서 OFFSET을 사용하는 대안

      종종 Excel의 경우 여러 가지 방법으로 동일한 결과를 얻을 수 있습니다. 따라서 OFFSET에 대한 3가지 우아한 대안이 있습니다.

      1. Excel 테이블

        Excel 2002 이후로 우리는 진정으로 놀라운 기능을 갖게 되었습니다. 일반적인 범위. 구조화된 데이터로 표를 만들려면 삽입 > Home 탭의 Table 또는 Ctrl + T를 누르십시오.

        Excel 표의 한 셀에 수식을 입력하여 소위 "계산된 열"을 만들 수 있습니다. 해당 열의 다른 모든 셀에 수식을 자동으로 복사하고테이블의 각 행에 대한 수식입니다.

        또한 테이블의 데이터를 참조하는 모든 수식은 테이블에 추가하는 새 행을 포함하거나 삭제하는 행을 제외하도록 자동으로 조정됩니다. 기술적으로 이러한 공식은 본질적으로 동적 범위 인 테이블 열 또는 행에서 작동합니다. 통합 문서의 각 테이블에는 고유한 이름(기본 이름은 Table1, Table2 등)이 있으며 디자인 탭 > 속성 그룹 >을 통해 테이블 ​​이름을 자유롭게 변경할 수 있습니다. ; Table Name 텍스트 상자.

        다음 스크린샷은 Table3의 Bonus 열을 참조하는 SUM 수식을 보여줍니다. 수식에는 셀 범위가 아닌 테이블의 열 이름 이 포함된다는 점에 유의하십시오.

      2. Excel INDEX 함수

        OFFSET과 정확히 같은 방식은 아니지만 Excel INDEX를 사용하여 동적 범위 참조를 만들 수도 있습니다. OFFSET과 달리 INDEX 함수는 휘발성이 아니므로 Excel 속도를 저하시키지 않습니다.

      3. Excel INDIRECT 함수

        INDIRECT 함수를 사용하여 동적 범위를 만들 수 있습니다. 셀 값, 셀 값 및 텍스트, 명명된 범위와 같은 여러 소스의 참조. 또한 다른 Excel 시트나 통합 문서를 동적으로 참조할 수도 있습니다. Excel INDIRECT 함수 자습서에서 이러한 수식 예제를 모두 찾을 수 있습니다.

      이 튜토리얼의 시작 부분에서 했던 질문을 기억하십니까? Excel에서 OFFSET이 무엇인가요? 이제 답을 아셨기를 바랍니다 : ) 더 많은 실습 경험을 원하시면 여기에서 논의된 모든 수식이 포함된 실습 워크북(아래 참조)을 다운로드하십시오. 더 깊은 이해를 위해 페이지를 넘기고 리버스 엔지니어링합니다. 읽어주셔서 감사합니다!

      연습 워크북 다운로드

      OFFSET 수식 예제(.xlsx 파일)

      시작점에서 위 또는 아래로 이동합니다. 행이 양수인 경우 수식이 시작 참조 아래로 이동하고 음수인 경우 시작 참조 위로 이동합니다.
    • Cols - 수식을 원하는 열 수 시작점에서 이동합니다. 행뿐만 아니라 열도 양수(시작 참조 오른쪽) 또는 음수(시작 참조 왼쪽)일 수 있습니다.

    선택적 인수:

    • Height - 반환할 행 수.
    • Width - 반환할 열 수.

    높이와 너비 인수는 항상 양수여야 합니다. 둘 중 하나를 생략하면 참조 의 높이 또는 너비가 기본값이 됩니다.

    참고. OFFSET은 휘발성 함수이며 워크시트 속도를 저하시킬 수 있습니다. 느림은 다시 계산되는 셀 수에 정비례합니다.

    이제 가장 간단한 OFFSET 수식의 예를 들어 이론을 설명하겠습니다.

    Excel OFFSET 수식 예

    다음은 지정한 시작점, 행 및 열을 기준으로 셀 참조를 반환하는 간단한 OFFSET 수식의 예입니다.

    =OFFSET(A1,3,1)

    수식은 Excel에서 A1 셀을 시작점(참조)을 선택한 다음 아래로 3행(rows 인수), 왼쪽으로 1열(cols 인수) 이동합니다. 결과적으로 이 OFFSET 수식은 셀 B4의 값을 반환합니다.

    왼쪽 이미지함수의 경로를 보여주고 오른쪽의 스크린샷은 실제 데이터에서 OFFSET 공식을 사용하는 방법을 보여줍니다. 두 수식의 유일한 차이점은 두 번째 수식(오른쪽)은 행 인수에 셀 참조(E1)를 포함한다는 것입니다. 그러나 셀 E1에는 숫자 3이 포함되어 있고 첫 번째 수식의 행 인수에 정확히 같은 숫자가 나타나므로 둘 다 동일한 결과(B4.

    의 값)를 반환합니다. Excel OFFSET 수식 - 기억해야 할 사항

    • OFFSET 함수는 Excel이 실제로 셀이나 범위를 이동하지 않고 참조만 반환한다는 것입니다.
    • OFFSET 수식이 범위를 반환할 때 셀의 행 및 열 인수는 항상 반환된 범위의 왼쪽 위 셀을 참조합니다.
    • 참조 인수는 셀 또는 인접 셀 범위를 포함해야 합니다. 그렇지 않으면 수식이 #VALUE! 오류입니다.
    • 지정된 행 및/또는 열이 참조를 스프레드시트 가장자리 위로 이동하면 Excel OFFSET 수식이 #REF! 오류입니다.
    • OFFSET 함수는 인수에서 셀/범위 참조를 허용하는 다른 모든 Excel 함수 내에서 사용할 수 있습니다.

    예를 들어 수식 =OFFSET(A1,3,1,1,3) 을 사용하려는 경우 자체적으로 #VALUE! 반환할 범위(1행, 3열)가 단일 셀에 맞지 않기 때문에 오류입니다. 그러나 SUM 함수에 포함시키면 다음과 같이 됩니다.this:

    =SUM(OFFSET(A1,3,1,1,3))

    이 수식은 셀 A1의 아래에 3행, 오른쪽에 1열인 1행 3열 범위의 값 합계를 반환합니다. B4:D4 셀의 총 값.

    Excel에서 OFFSET을 사용하는 이유는 무엇입니까?

    이제 OFFSET 함수의 기능을 알았으므로 "왜 귀찮게 사용합니까?" 단순히 B4:D4와 같은 직접 참조를 작성하지 않는 이유는 무엇입니까?

    Excel OFFSET 공식은 다음에 매우 유용합니다.

    동적 범위 만들기 : B1:C4와 같은 참조는 정적입니다. , 이는 항상 주어진 범위를 참조함을 의미합니다. 그러나 일부 작업은 동적 범위를 사용하여 수행하기가 더 쉽습니다. 이는 특히 변경되는 데이터로 작업하는 경우입니다. 매주 새 행이나 열이 추가되는 워크시트가 있습니다.

    시작 셀에서 범위 가져오기 . 경우에 따라 특정 셀에서 시작한다는 것을 알고 있지만 범위의 실제 주소를 모를 수도 있습니다. 이런 경우에는 엑셀에서 OFFSET을 사용하는 것이 정답입니다.

    엑셀에서 OFFSET 함수를 사용하는 방법 - 수식 예제

    그렇게 많은 이론이 지루하지 않으셨으면 합니다. . 어쨌든 이제 우리는 가장 흥미로운 부분인 OFFSET 함수의 실제 사용에 도달하고 있습니다.

    Excel OFFSET 및 SUM 함수

    조금 전에 논의한 예는 OFFSET &의 가장 간단한 사용법을 보여줍니다. ; 합집합. 이제 이러한 기능을 다른 각도에서 살펴보고그렇지 않으면 할 수 있습니다.

    예제 1. 동적 SUM/OFFSET 수식

    지속적으로 업데이트되는 워크시트로 작업할 때 새로 추가된 모든 행을 자동으로 선택하는 SUM 수식이 필요할 수 있습니다.

    아래 스크린샷에 표시된 것과 유사한 소스 데이터가 있다고 가정합니다. 매월 새 행이 SUM 수식 바로 위에 추가되며 당연히 합계에 포함되기를 원할 것입니다. 전체적으로 SUM 수식의 범위를 매번 수동으로 업데이트하거나 OFFSET 수식이 자동으로 업데이트하도록 하는 두 가지 선택이 있습니다.

    합계 범위는 SUM 공식에서 직접 지정되며 Excel OFFSET 함수에 대한 매개변수만 결정하면 범위의 마지막 셀을 가져옵니다.

    • Reference - 셀 우리의 경우 총계 B9를 포함합니다.
    • Rows - 총계 바로 위의 셀로, 음수 -1이 필요합니다.
    • Cols - 변경하지 않기 때문에 0입니다. 열입니다.

    여기에 SUM / OFFSET 수식 패턴이 있습니다.

    =SUM( 첫 번째 셀:(OFFSET( 총계가 있는 셀, -1,0)

    위의 예를 수정하면 수식이 다음과 같이 표시됩니다.

    =SUM(B2:(OFFSET(B9, -1, 0)))

    그리고 아래 스크린샷과 같이 완벽하게 작동합니다.

    예 2. 마지막 N개의 행을 합산하는 Excel OFFSET 수식

    위 예에서 다음에 대한 보너스 금액을 알고 싶다고 가정합니다.총계가 아닌 지난 N개월. 또한 시트에 추가하는 새 행이 수식에 자동으로 포함되기를 원합니다.

    이 작업에서는 SUM 및 COUNT / COUNTA 함수와 함께 Excel OFFSET을 사용합니다.

    =SUM(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    또는

    =SUM(OFFSET(B1,COUNTA(B:B)-E1,0,E1,1))

    다음 세부 정보는 수식을 더 잘 이해하는 데 도움이 될 수 있습니다.

    • Reference - 합산하려는 값이 있는 열의 헤더(이 예에서는 셀 B1).
    • Rows - 오프셋할 행 수를 계산하려면 COUNT 또는 COUNTA 함수를 사용합니다.

      COUNT는 숫자가 포함된 B열의 셀 수를 반환하며 여기서 마지막 N개월(숫자는 셀 E1임)을 빼고 1을 더합니다.

      COUNTA가 선택한 함수인 경우 이 함수는 비어 있지 않은 모든 셀을 계산하고 텍스트 값이 있는 머리글 행은 수식에 필요한 추가 셀을 추가하므로 1을 추가할 필요가 없습니다. 이 수식은 유사한 테이블 구조(하나의 머리글 행 뒤에 숫자가 있는 행)에서만 올바르게 작동합니다. 다른 테이블 레이아웃의 경우 OFFSET/COUNTA 수식을 약간 조정해야 할 수도 있습니다.

    • Cols - 오프셋할 열의 수는 0입니다.
    • Height - 합산할 행 수는 E1에 지정됩니다.
    • Width - 1 열.

    AVERAGE, MAX, MIN과 함께 OFFSET 기능 사용

    동일한 방식 지난 N개월 동안의 보너스를 계산했으므로 다음을 수행할 수 있습니다.지난 N일, 주 또는 년의 평균을 얻고 최대값 또는 최소값을 찾습니다. 수식 간의 유일한 차이점은 첫 번째 함수의 이름입니다.

    =AVERAGE(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    =MAX(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    =MIN(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    키 일반적인 AVERAGE(B5:B8) 또는 MAX(B5:B8)에 비해 이러한 수식의 이점은 원본 테이블이 업데이트될 때마다 수식을 업데이트할 필요가 없다는 것입니다. 워크시트에서 얼마나 많은 새 행이 추가되거나 삭제되더라도 OFFSET 수식은 항상 열에서 지정된 수의 마지막(최하위) 셀을 참조합니다.

    동적 범위를 생성하는 Excel OFFSET 수식

    COUNTA와 함께 사용되는 OFFSET 기능은 예를 들어 자동으로 업데이트 가능한 드롭다운 목록을 생성하는 것과 같은 많은 시나리오에서 유용할 수 있는 동적 범위를 만드는 데 도움이 될 수 있습니다.

    OFFSET 공식 동적 범위의 경우 다음과 같습니다.

    =OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)

    이 공식의 핵심은 COUNTA 함수를 사용하여 대상 열에서 비어 있지 않은 셀의 수를 가져오는 것입니다. 이 숫자는 반환할 행 수를 지시하는 OFFSET의 높이 인수로 이동합니다.

    그 외에 일반적인 오프셋 수식입니다. 여기서:

    • 참조 는 오프셋의 기준이 되는 시작점입니다. 예를 들어 Sheet1!$A$1.
    • Rows Cols 는 오프셋할 열이나 행이 없기 때문에 둘 다 0입니다.
    • 너비 는 1열입니다.

    참고. 당신이있는 경우현재 시트에 동적 범위를 만들면 참조에 시트 이름을 포함할 필요가 없으며 명명된 범위를 만들 때 Excel에서 자동으로 수행합니다. 그렇지 않으면 이 수식 예제와 같이 시트 이름 뒤에 느낌표를 포함해야 합니다.

    위의 OFFSET 수식을 사용하여 동적 명명 범위를 만든 후에는 데이터 유효성 검사를 사용하여 소스 목록에서 항목을 추가하거나 제거하는 즉시 자동으로 업데이트되는 동적 드롭다운 목록을 만들 수 있습니다.

    Excel에서 드롭다운 목록을 만드는 방법에 대한 자세한 단계별 지침은 다음 자습서를 확인하십시오.

    • 드롭다운 목록 만들기 Excel에서 - 정적, 동적, 다른 통합 문서에서
    • 종속 드롭다운 목록 만들기

    Excel OFFSET & VLOOKUP

    간단한 수직 조회는 VLOOKUP과 HLOOKUP 함수로 각각 수행됩니다. 그러나 이러한 함수에는 제한 사항이 너무 많으며 보다 강력하고 복잡한 조회 수식에서 종종 문제가 발생합니다. 따라서 Excel 테이블에서 보다 정교한 조회를 수행하려면 INDEX, MATCH 및 OFFSET과 같은 대안을 찾아야 합니다.

    예제 1. Excel

    <0에서 왼쪽 Vlookup에 대한 OFFSET 수식>VLOOKUP 함수의 가장 악명 높은 제한 중 하나는 왼쪽을 볼 수 없다는 것입니다. 즉, VLOOKUP은조회 열 오른쪽.

    샘플 조회 테이블에는 월 이름(A열)과 보너스(B열)라는 두 개의 열이 있습니다. 특정 달에 대해 보너스를 받으려면 다음과 같은 간단한 VLOOKUP 공식이 문제 없이 작동합니다.

    =VLOOKUP(B1, A5:B11, 2, FALSE)

    그러나 조회 테이블에서 열을 바꾸자마자 이 즉시 #N/A 오류가 발생합니다.

    왼쪽 조회를 처리하려면 반환 열의 위치를 ​​실제로 신경 쓰지 않는 보다 다양한 기능이 필요합니다. . 가능한 솔루션 중 하나는 INDEX 및 MATCH 함수의 조합을 사용하는 것입니다. 또 다른 접근 방식은 OFFSET, MATCH 및 ROWS를 사용하는 것입니다. 21>, ROWS( lookup_table ), 1) ,0) -1, return_col_offset , 1, 1)

    여기서:

    • Lookup_col_offset - 시작 지점에서 조회 열까지 이동할 열 수입니다.
    • Return_col_offset - 시작 지점에서 반환 지점까지 이동할 열 수입니다. 열.

    이 예에서 조회 테이블은 A5:B9이고 조회 값은 B1 셀에 있으며 조회 열 오프셋은 1입니다(두 번째 열(B ), 테이블 시작 부분에서 오른쪽으로 1열을 이동해야 합니다.) 반환 열 오프셋은 첫 번째에서 값을 반환하기 때문에 0입니다.

    Michael Brown은 소프트웨어 도구를 사용하여 복잡한 프로세스를 단순화하려는 열정을 가진 열성적인 기술 애호가입니다. 기술 산업에서 10년 이상의 경험을 쌓은 그는 Microsoft Excel 및 Outlook은 물론 Google 스프레드시트 및 문서 도구에 대한 기술을 연마했습니다. Michael의 블로그는 자신의 지식과 전문 지식을 다른 사람과 공유하는 데 전념하며 따라하기 쉬운 팁과 생산성 및 효율성 향상을 위한 자습서를 제공합니다. 노련한 전문가이든 초보자이든 Michael의 블로그는 이러한 필수 소프트웨어 도구를 최대한 활용하기 위한 귀중한 통찰력과 실용적인 조언을 제공합니다.