Excel 동적 명명 범위: 만들고 사용하는 방법

  • 이 공유
Michael Brown

이 자습서에서는 Excel에서 동적 이름이 지정된 범위를 만드는 방법과 수식에서 이를 사용하여 새 데이터가 자동으로 계산에 포함되도록 하는 방법을 배웁니다.

지난 주 자습서에서는 Excel에서 정적 이름 범위를 정의하는 다양한 방법을 살펴보았습니다. 정적 이름은 항상 동일한 셀을 참조합니다. 즉, 새 데이터를 추가하거나 기존 데이터를 제거할 때마다 범위 참조를 수동으로 업데이트해야 합니다.

지속적으로 변경되는 데이터 세트로 작업하는 경우 다음을 수행할 수 있습니다. 새로 추가된 항목 또는 제거된 데이터를 제외하기 위한 계약을 수용하도록 자동으로 확장되도록 명명된 범위를 동적으로 만드십시오. 이 자습서에서는 이 작업을 수행하는 방법에 대한 자세한 단계별 지침을 찾을 수 있습니다.

    Excel에서 동적 명명 범위를 만드는 방법

    For 먼저 단일 열과 가변 개수의 행으로 구성된 동적 명명 범위를 구축해 보겠습니다. 완료하려면 다음 단계를 수행하십시오.

    1. 수식 탭의 정의된 이름 그룹에서 이름 정의 를 클릭합니다. . 또는 Ctrl + F3을 눌러 Excel 이름 관리자를 열고 새로 만들기… 버튼을 클릭합니다.
    2. 어느 쪽이든 새 이름 대화 상자가 열립니다. 여기서 다음 세부 정보를 지정합니다.
      • 이름 상자에 동적 범위의 이름을 입력합니다.
      • 범위 드롭다운에서 다음을 설정합니다. 이름의 범위. 통합 문서 (기본값)는 대부분의경우.
      • 참조 상자에 OFFSET COUNTA 또는 INDEX COUNTA 수식을 입력합니다.
    3. 확인을 클릭합니다. 완료!

    다음 스크린샷에서는 머리글 행을 제외하고 열 A에서 데이터 가 있는 모든 셀을 수용하는 동적 명명 범위 항목 을 정의합니다. :

    Excel 동적 명명 범위를 정의하는 OFFSET 수식

    Excel에서 동적 명명 범위를 만드는 일반 수식은 다음과 같습니다.

    OFFSET ( first_cell, 0, 0, COUNTA( column), 1)

    여기서:

    • first_cell - 첫 번째 이름이 지정된 범위에 포함될 항목(예: $A$2.
    • column - $A:$A.
    <0과 같은 열에 대한 절대 참조)>이 수식의 핵심에는 COUNTA 함수를 사용하여 관심 있는 열에서 비어 있지 않은 셀의 수를 가져옵니다. 이 숫자는 반환할 행 수를 알려주는 OFFSET(reference, rows, cols, [height], [width]) 함수의 height인수로 바로 이동합니다.

    그 이상, 일반적인 오프셋 수식입니다. 여기서

    • 참조 는 오프셋(first_cell)의 기준이 되는 시작점입니다.
    • rows cols 는 오프셋할 열이나 행이 없으므로 둘 다 0입니다.
    • width 는 1열과 같습니다.

    예를 들어 A2 셀에서 시작하여 Sheet3의 열 A에 대한 동적 명명 범위를 작성하려면 다음 수식을 사용합니다.

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

    참고. 당신이 정의하는 경우현재 워크시트에 동적 범위가 있는 경우 참조에 시트 이름을 포함할 필요가 없습니다. Excel에서 자동으로 수행합니다. 다른 시트에 대한 범위를 작성하는 경우 셀 또는 범위 참조 앞에 시트 이름과 느낌표를 붙입니다(위의 수식 예에서와 같이).

    INDEX 수식을 사용하여 동적 명명된 범위를 Excel

    Excel 동적 범위를 만드는 또 다른 방법은 COUNTA를 INDEX 함수와 함께 사용하는 것입니다.

    first_cell:INDEX( column,COUNTA( column))

    이 수식은 두 부분으로 구성됩니다.

    • 범위 연산자(:)의 왼쪽에는 $A$2와 같이 하드 코딩된 시작 참조를 넣습니다. .
    • 오른쪽에서 INDEX(array, row_num, [column_num]) 함수를 사용하여 끝 참조를 알아냅니다. 여기에서 배열에 대한 전체 열 A를 제공하고 COUNTA를 사용하여 행 번호(즉, 열 A의 비입력 셀 수)를 가져옵니다.

    샘플 데이터세트의 경우(다음을 참조하십시오. 위 스크린샷 참조) 수식은 다음과 같습니다.

    =$A$2:INDEX($A:$A, COUNTA($A:$A))

    열 헤더를 포함하여 열 A에 비어 있지 않은 5개의 셀이 있으므로 COUNTA는 5를 반환합니다. 결과적으로 INDEX는 $A를 반환합니다. A 열에서 마지막으로 사용된 셀인 $5(일반적으로 인덱스 수식은 값을 반환하지만 참조 연산자는 참조를 반환하도록 합니다). 그리고 $A$2를 시작점으로 설정했기 때문에공식은 범위 $A$2:$A$5입니다.

    새로 생성된 동적 범위를 테스트하기 위해 COUNTA가 항목 수를 가져오도록 할 수 있습니다.

    =COUNTA(Items)

    모든 작업이 제대로 수행된 경우 목록에 항목을 추가하거나 목록에서 제거하면 수식의 결과가 변경됩니다.

    참고. 위에서 설명한 두 수식은 동일한 결과를 생성하지만 알고 있어야 하는 성능에는 차이가 있습니다. OFFSET은 시트가 변경될 때마다 다시 계산되는 휘발성 함수입니다. 강력한 최신 시스템과 합리적인 크기의 데이터 세트에서는 문제가 되지 않습니다. 저용량 컴퓨터와 대용량 데이터 세트에서는 이로 인해 Excel 속도가 느려질 수 있습니다. 이 경우 INDEX 수식을 사용하여 동적 명명 범위를 만드는 것이 좋습니다.

    Excel에서 2차원 동적 범위를 만드는 방법

    2차원 명명 범위를 구축하려면, 행 수뿐만 아니라 열 수도 동적인 경우 INDEX COUNTA 수식을 다음과 같이 수정하여 사용합니다.

    first_cell:INDEX($1:$1048576, COUNTA( first_column), COUNTA( first_row)))

    이 수식에는 비어 있지 않은 마지막 행과 비어 있지 않은 마지막 열( row_num 및 INDEX 함수의 column_num 인수). array 인수에서 전체 워크시트(Excel 2016 - 2007에서는 1048576행, Excel 2003 이하에서는 65535행)를 공급합니다.

    그리고 이제,데이터 세트에 대한 동적 범위를 하나 더 정의해 보겠습니다. 3개월(1월~3월)의 판매 수치를 포함하고 새 항목(행) 또는 월(열)을 추가할 때 자동으로 조정되는 sales 라는 범위입니다.

    판매 데이터가 B열, 2행에서 시작하는 공식은 다음과 같은 형태를 취합니다.

    =$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))

    동적 범위가 예상대로 작동하는지 확인하려면 시트 어딘가에 다음 수식을 입력하십시오.

    =SUM(sales)

    =SUM(B2:D5)

    아래 스크린샷에서 볼 수 있듯이 , 두 수식 모두 동일한 합계를 반환합니다. 차이점은 테이블에 새 항목을 추가하는 순간에 드러납니다. 첫 번째 수식(동적 명명 범위 포함)은 자동으로 업데이트되는 반면 두 번째 수식은 변경될 때마다 수동으로 업데이트해야 합니다. 이것이 큰 차이를 만듭니다. 어?

    Excel 수식에서 동적 명명 범위를 사용하는 방법

    이 자습서의 이전 섹션에서 이미 본 내용입니다. 동적 범위를 사용하는 몇 가지 간단한 공식. 이제 Excel 동적 명명 범위의 실제 값을 보여주는 보다 의미 있는 것을 생각해 봅시다.

    이 예에서는 Excel에서 Vlookup을 수행하는 고전적인 INDEX MATCH 수식을 사용하겠습니다.

    INDEX ( return_range, MATCH ( lookup_value, lookup_range, 0))

    … 를 사용하여 공식을 더욱 강력하게 만들 수 있습니다.동적 명명 범위.

    위의 스크린샷에 표시된 것처럼 사용자가 H1에 항목 이름을 입력하고 H2에서 해당 항목의 총 판매액을 가져오는 대시보드를 구축하려고 합니다. 데모용으로 만든 샘플 테이블에는 항목이 4개만 포함되어 있지만 실제 시트에는 수백, 심지어 수천 개의 행이 있을 수 있습니다. 또한 새 항목이 매일 추가될 수 있으므로 수식을 계속해서 업데이트해야 하므로 참조를 사용하는 것은 옵션이 아닙니다. 그러기엔 너무 게을러! :)

    수식을 강제로 자동으로 확장하기 위해 3개의 이름을 정의합니다: 동적 범위 2개, 정적 이름 셀 1개:

    Lookup_range: =$A$2:INDEX($ A:$A, COUNTA($A:$A))

    반환 범위: =$E$2:INDEX($E:$E, COUNTA($E:$E))

    Lookup_value: =$H$1

    참고. Excel은 현재 시트의 이름을 모든 참조에 추가하므로 이름을 만들기 전에 원본 데이터가 있는 시트를 열어야 합니다.

    이제 H1에 수식 입력을 시작합니다. 첫 번째 인수에 대해 사용할 이름의 몇 글자를 입력하면 Excel에서 일치하는 이름을 모두 표시합니다. 적절한 이름을 두 번 클릭하면 Excel에서 바로 수식에 삽입합니다.

    완성된 수식은 다음과 같습니다.

    =INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))

    완벽하게 작동합니다!

    새 레코드를 테이블에 추가하는 즉시 계산에 포함됩니다.공식을 한 번도 변경하지 않고도 한 번에! 수식을 다른 Excel 파일로 이식해야 하는 경우 대상 통합 문서에 동일한 이름을 만들고 수식을 복사/붙여넣기하면 즉시 작동합니다.

    팁. 수식의 내구성을 높이는 것 외에도 동적 범위는 동적 드롭다운 목록을 만드는 데 유용합니다.

    이는 Excel에서 동적 이름이 지정된 범위를 만들고 사용하는 방법입니다. 이 자습서에서 설명하는 수식을 자세히 살펴보려면 샘플 Excel Dynamic Named Range Workbook을 다운로드하세요. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙겠습니다!

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