Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

컨텍스트를 사용하면 동적 분석을 수행할 수 있으며, 수식의 결과가 현재 행 또는 셀 선택 및 관련 데이터를 반영하기 위해 변경할 수 있습니다. 컨텍스트를 이해하고 컨텍스트를 효과적으로 사용하는 것은 고성능 수식, 동적 분석을 구축하고 수식의 문제 해결을 위해 매우 중요합니다.

이 섹션에서는 행 컨텍스트, 쿼리 컨텍스트 및 필터 컨텍스트와 같은 다양한 유형의 컨텍스트를 정의합니다. 계산된 열 및 피벗 테이블에서 수식에 대해 컨텍스트를 평가하는 방법을 설명합니다.

이 문서의 마지막 부분에서는 상황에 따라 수식의 결과가 변경되는 방법을 보여 주는 자세한 예제에 대한 링크를 제공합니다.

컨텍스트 이해

파워 피벗 수식은 피벗 테이블에 적용된 필터, 테이블 간의 관계 및 수식에 사용되는 필터에 의해 영향을 받을 수 있습니다. 컨텍스트는 동적 분석을 수행할 수 있는 것입니다. 컨텍스트 이해는 수식을 구축하고 문제를 해결하는 데 중요합니다.

행 컨텍스트, 쿼리 컨텍스트 및 필터 컨텍스트와 같은 다양한 유형의 컨텍스트가 있습니다.

행 컨텍스트는 "현재 행"으로 생각할 수 있습니다. 계산된 열을 만든 경우 행 컨텍스트는 각 개별 행의 값과 현재 행과 관련된 열의 값으로 구성됩니다. 또한 현재 행에서 값을 얻은 다음 전체 테이블에서 작업을 수행하는 동안 해당 값을 사용하는 일부함수(EARLIEREARLIEST)도있습니다.

쿼리 컨텍스트는 행 및 열 헤더에 따라 피벗 테이블의 각 셀에 대해 암시적으로 생성된 데이터의 하위 집합을 참조합니다.

필터 컨텍스트는 행에 적용되거나 수식 내의 필터 식으로 정의된 필터 제약 조건에 따라 각 열에 허용되는 값 집합입니다.

맨 위로 이동

행 컨텍스트

계산된 열에 수식을 만드는 경우 해당 수식의 행 컨텍스트에는 현재 행의 모든 열의 값이 포함됩니다. 테이블이 다른 테이블과 관련이 있는 경우 콘텐츠에는 현재 행과 관련된 다른 테이블의 모든 값도 포함됩니다.

예를 들어 계산된 열 =[Freight] + [세금]을 만들었다고 가정합니다.

는 동일한 테이블의 두 열을 함께 추가합니다. 이 수식은 동일한 행의 값을 자동으로 참조하는 Excel 테이블의 수식과 같이 실행됩니다. 표는 범위와 다릅니다. 범위 표기법을 사용하여 현재 행 앞 행의 값을 참조할 수 없습니다. 테이블 또는 셀에서 임의의 단일 값을 참조할 수 없습니다. 항상 테이블 및 열로 작업해야 합니다.

행 컨텍스트는 테이블 간의 관계를 자동으로 따라 관련 테이블의 행을 현재 행과 연결합니다.

예를 들어 다음 수식은 RELATED 함수를 사용하여 주문이 배송된 지역에 따라 관련 테이블에서 세금 값을 인용합니다. 세금 값은 현재 테이블의 지역 값을 사용하여 관련 테이블의 지역을 찾고 관련 테이블에서 해당 지역에 대한 세율을 받고 결정됩니다.

= [Freight] + RELATED('Region'[TaxRate])

이 수식은 지역 테이블에서 현재 지역에 대한 세율을 단순히 얻습니다. 테이블을 연결하는 키를 알거나 지정할 필요가 없습니다.

여러 행 컨텍스트

또한 DAX에는 테이블을 통해 계산을 이행하는 함수가 포함되어 있습니다. 이러한 함수에는 여러 현재 행 및 현재 행 컨텍스트가 있을 수 있습니다. 프로그래밍 측면에서 내부 및 외부 루프를 통해 반복하는 수식을 만들 수 있습니다.

예를 들어 통합 문서에 제품 테이블 및 판매 테이블이 포함되어 있는 경우를 가정해 보겠습니다. 여러 제품을 포함하는 트랜잭션으로 가득 차 있는 전체 판매 테이블을 통해 한 트랜잭션에서 각 제품에 대해 주문된 가장 큰 수량을 찾을 수 있습니다.

Excel 경우 이 계산에는 일련의 중간 요약이 필요하기 때문에 데이터가 변경된 경우 다시 다시빌드해야 합니다. 사용자에 대한 강력한 Excel 작업을 할 배열 수식을 빌드할 수 있습니다. 또는 관계식 데이터베이스에서 중첩된 하위 셀렉트를 작성할 수 있습니다.

그러나 DAX를 사용하면 올바른 값을 반환하는 단일 수식을 빌드할 수 있으며 테이블에 데이터를 추가할 때 결과가 자동으로 업데이트됩니다.

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey]),Sales[OrderQty])

이 수식의 자세한 설명은 EARLIER 를 참조합니다.

즉, EARLIER 함수는 현재 작업을 앞선 작업에서 행 컨텍스트를 저장합니다. 함수는 메모리에 두 개의 컨텍스트 집합을 저장합니다. 한 컨텍스트 집합은 수식의 내부 루프에 대한 현재 행을 나타내고 다른 컨텍스트 집합은 수식의 외부 루프에 대한 현재 행을 나타내고 있습니다. DAX는 복잡한 집계를 만들 수 있도록 두 루프 간에 값을 자동으로 공급합니다.

맨 위로 이동

쿼리 컨텍스트

쿼리 컨텍스트는 수식에 대해 암시적으로 검색되는 데이터의 하위 집합을 참조합니다. 피벗 테이블의 셀에 측정값 또는 다른 값 필드를 놓을 때 파워 피벗 엔진은 행 및 열 헤더, 슬라이서 및 보고서 필터를 검사하여 컨텍스트를 파악합니다. 그런 다음 파워 피벗 피벗테이블에 각 셀을 채우는 데 필요한 계산을 합니다. 검색되는 데이터 집합은 각 셀에 대한 쿼리 컨텍스트입니다.

수식을 어디에 두는지에 따라 컨텍스트가 변경될 수 있기 때문에 수식의 결과는 그룹화 및 필터가 많은 피벗 테이블에서 수식을 사용할지 또는 필터가 없는 계산된 열에 필터와 최소한의 컨텍스트를 사용하는지 여부에 따라 변경됩니다.

예를 들어 Sales 테이블:=SUM('Sales'[Profit])의 이익 열의 값을 합산하는 이 간단한 수식을 만들었다고 가정해 보겠습니다.

Sales 테이블 내의 계산된 열에서 이 수식을 사용하는 경우 수식의 쿼리 컨텍스트는 항상 Sales 테이블의 전체 데이터 집합이기 때문에 전체 테이블에 대해 수식의 결과는 동일합니다. 결과는 모든 지역, 모든 제품, 모든 연도에 대한 수익을 낼 수 있습니다.

그러나 일반적으로 동일한 결과를 수백 번 보고 싶지는 않지만 특정 연도, 특정 국가 또는 지역, 특정 제품 또는 이러한 조합의 일부 조합에 대한 수익을 얻은 다음 총합을 얻습니다.

피벗 테이블에서는 열 및 행 헤더를 추가하거나 제거하고 슬라이서를 추가하거나 제거하여 컨텍스트를 쉽게 변경할 수 있습니다. 위의 수식을 측정값으로 만든 다음 피벗테이블에 놓을 수 있습니다. 피벗 테이블에 열 또는 행 제목을 추가할 때마다 측정값이 평가되는 쿼리 컨텍스트를 변경합니다. 또한 문맥에 영향을 미치고 필터링 작업도 영향을 미치게 됩니다. 따라서 피벗테이블에 사용되는 동일한 수식은 각 셀에 대한 다른 쿼리 컨텍스트에서 평가됩니다.

맨 위로 이동

필터 컨텍스트

수식에 인수를 사용하여 열 또는 테이블에서 허용되는 값 집합에 필터 제약 조건을 지정할 때 필터 컨텍스트가 추가됩니다. 필터 컨텍스트는 행 컨텍스트 또는 쿼리 컨텍스트와 같은 다른 컨텍스트 위에 적용됩니다.

예를 들어 피벗 테이블은 쿼리 컨텍스트의 앞부분에서 설명한 바와 같이 행 및 열 제목을 기반으로 각 셀의 값을 계산합니다. 그러나 피벗 테이블에 추가하는 측정값 또는 계산된 열 내에서 수식에서 사용되는 값을 제어하기 위해 필터 식을 지정할 수 있습니다. 특정 열에서 필터를 선택적으로 지울 수도 있습니다.

수식 내에서 필터를 만드는 방법에 대한 자세한 내용은 필터 함수 를 참조하세요.

총 합계를 만들기 위해 필터를 지우는 방법에 대한 예제는 ALL 을 참조합니다.

수식 내에서 필터를 선택적으로 지우고 적용하는 방법에 대한 예제는 ALLEXCEPT 함수를 참조합니다.

따라서 수식의 결과를 해석할 때 필터 컨텍스트를 인식할 수 있도록 피벗테이블에 사용되는 측정값 또는 수식의 정의를 검토해야 합니다.

맨 위로 이동

수식에서 컨텍스트 결정

수식을 만들 때 파워 피벗 Excel 일반 구문을 먼저 검사한 다음, 현재 컨텍스트에서 가능한 열 및 테이블에 대해 제공하는 열 및 테이블의 이름을 검사합니다. 수식에서 파워 피벗 열과 테이블을 찾을 수 없는 경우 오류가 발생합니다.

컨텍스트는 이전 섹션에서 설명한 바와 같이 통합 문서의 사용 가능한 테이블, 테이블 간의 관계 및 적용된 필터를 사용하여 결정됩니다.

예를 들어 일부 데이터를 새 테이블로 가져오고 필터를 적용하지 않은 경우 테이블의 전체 열 집합은 현재 컨텍스트의 일부입니다. 관계로 연결된 테이블이 여러 개 있으며 열 제목을 추가하고 슬라이서를 사용하여 필터링된 피벗 테이블에서 작업하는 경우 컨텍스트에는 관련 테이블과 데이터에 대한 필터가 포함됩니다.

컨텍스트는 수식 문제 해결을 어렵게 만들 수 있는 강력한 개념입니다. 간단한 수식과 관계로 시작하여 컨텍스트가 작동하는 방법을 보고 피벗테이블에서 간단한 수식 실험을 시작하는 것이 좋습니다. 다음 섹션에서는 수식이 다양한 유형의 컨텍스트를 사용하여 결과를 동적으로 반환하는 방법에 대한 몇 가지 예제도 제공합니다.

수식의 컨텍스트 예제

  • RELATED 함수는 현재 행의 컨텍스트를 확장하여 관련 열에 값을 포함합니다. 이렇게 하면 검색을 수행할 수 있습니다. 이 항목의 예제에서는 필터링 및 행 컨텍스트의 상호 작용을 보여 주는 것입니다.

  • FILTER 함수를 사용하면 현재 컨텍스트에 포함할 행을 지정할 수 있습니다. 이 항목의 예제에서는 집계를 수행하는 다른 함수 내에 필터를 탑재하는 방법을 보여 주었다.

  • ALL 함수는 수식 내에서 컨텍스트를 설정합니다. 이 필터를 사용하여 쿼리 컨텍스트의 결과로 적용되는 필터를 다시 적용할 수 있습니다.

  • ALLEXCEPT 함수를 사용하면 지정한 필터를 제외한 모든 필터를 제거할 수 있습니다. 두 항목 모두 수식을 구축하고 복잡한 컨텍스트를 이해하는 예제를 포함합니다.

  • EARLIER 및 EARLIEST 함수를 사용하면 내부 루프에서 값을 참조하면서 계산을 수행하여 테이블을 반복할 수 있습니다. 재구성 개념에 익숙하고 내부 및 외부 루프에 익숙한 경우 EARLIER 및 EARLIEST 함수가 제공하는 기능을 평가할 수 있습니다. 이러한 개념을 새로 사용하는 경우 예제의 단계를 신중하게 수행하여 내부 및 외부 컨텍스트가 계산에 사용되는 방법을 참조해야 합니다.

맨 위로 이동

참조 무결성

이 섹션에서는 관계로 연결된 테이블의 누락된 값과 파워 피벗 몇 가지 고급 개념에 대해 설명합니다. 이 섹션은 여러 테이블과 복잡한 수식이 있는 통합 문서가 있으며 결과를 이해하는 데 도움이 필요한 경우 유용할 수 있습니다.

관계형 데이터 개념을 처음 사용 중이신 경우 먼저 소개 항목인 관계 개요 를 읽어보는 것이 좋습니다.

참조 무결성 및 파워 피벗 관계

파워 피벗 관계를 정의하기 위해 두 테이블 간에 참조 무결성을 적용할 필요가 없습니다. 대신, 각 일대다 관계의 "one" 끝에 빈 행이 만들어지며 관련 테이블에서 일치하지 않는 모든 행을 처리하는 데 사용됩니다. 이 조인은 효과적으로 SQL 조인으로 사용됩니다.

피벗 테이블에서 관계의 한 쪽으로 데이터를 그룹화하는 경우 관계의 여러 면에 있는 비할 데 없는 데이터는 함께 그룹화됩니다. 빈 행 제목이 있는 합계에 포함됩니다. 빈 제목은 거의 "알 수 없는 멤버"에 해당합니다.

알 수 없는 구성원 이해

알 수 없는 멤버의 개념은 Analysis Services와 같은 다차원 데이터베이스 시스템과 함께 작업한 SQL Server 잘 알고 있습니다. 용어가 새로운 경우 다음 예제에서는 알 수 없는 멤버가 무엇일지와 계산에 미치는 영향을 설명합니다.

각 저장소에 대한 월별 매출을 합산하는 계산을 만들지만 판매 테이블의 열에 저장소 이름 값이 누락된 경우를 가정합니다. Store 및 Sales 테이블이 저장소 이름으로 연결되어 있는 경우 수식에서 어떤 일이 일어날 것으로 예상하나요? 피벗테이블 그룹 또는 기존 저장소와 관련이 없는 판매 수치는 어떻게 표시해야 하나요?

이 문제는 데이터 웨어하우스에서 일반적인 문제로, 팩트의 큰 테이블은 팩트 분류 및 계산에 사용되는 저장소, 지역 및 기타 특성에 대한 정보를 포함하는 차원 테이블과 논리적으로 관련되어야 합니다. 문제를 해결하려면 기존 엔터티와 관련이 없는 모든 새 팩트가 알 수 없는 멤버에 일시적으로 할당됩니다. 이 때문에 관련이 없는 팩트는 빈 제목 아래 피벗테이블에 그룹화됩니다.

빈 값 및 빈 행 처리

빈 값은 알 수 없는 멤버를 수용하기 위해 추가된 빈 행과 다릅니다. 빈 값은 null, 빈 문자열 및 기타 누락된 값을 나타내는 데 사용되는 특수 값입니다. 빈 값 및 기타 DAX 데이터 형식에 대한 자세한 내용은 데이터 모델의 데이터 형식을 참조하세요.

맨 위로 이동

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×