DAX 수식의 컨텍스트

참고:  사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서 가 여기 있습니다.

컨텍스트를 사용하면 수식의 결과가 현재 행 또는 셀 선택과 모든 관련 데이터에 맞게 변경될 수 있는 동적 분석을 수행할 수 있습니다.우수한 성능 수식, 동적 분석을 작성하고 수식 문제를 해결하려면 컨텍스트를 이해하고 효과적으로 사용해야 합니다.

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

이 문서의 마지막 부분에는 컨텍스트에 따라 수식의 결과가 어떻게 변경되는지를 보여 주는 구체적인 예에 대한 링크가 있습니다.

컨텍스트 이해

피벗 테이블에 적용 된 필터, 테이블 간의 관계 및 수식에 사용 되는 필터 하 여 파워 피벗 의 수식 영향을 받을 수 있습니다. 상황에 맞는 동적 분석을 수행할 수 있도록 기능입니다. 컨텍스트 이해가 건물 및 수식 문제 해결에 대 한 중요 합니다.

여러 가지 방법으로 컨텍스트: 행 컨텍스트, 쿼리 컨텍스트 필터 컨텍스트입니다.

행 컨텍스트 "현재 행입니다."로 간주할 수 있습니다. 계산된 된 열을 만든 경우 각 행의 값과 현재 행에 관련 된 열에 있는 값의 행 컨텍스트 구성 됩니다. 현재 행의 값을 가져오는 한 다음 전체 표를 통해 작업을 수행 하는 동안 해당 값을 사용 하는 몇 가지 함수 (이전 함수EARLIEST 함수)는 합니다.

쿼리 컨텍스트는 행 및 열 머리글에 따라 피벗 테이블의 각 셀에 대해 암시적으로 만들어지는 데이터 하위 집합을 나타냅니다.

필터 컨텍스트는 행에 적용 된 또는 수식 내에서 필터 식에 정의 된 필터 제한 사항에 따라 각 열에 허용 되는 값의 집합입니다.

맨 위로 이동

행 컨텍스트

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

예를 들어, 계산된 된 열 만들기, [Freight] = + [세금]

계산 열을 만든다고 가정합니다.이 수식은 동일한 행의 값을 자동으로 참조하는 Excel 테이블의 수식처럼 동작합니다.이때 테이블은 범위와 다릅니다.즉, 범위 노테이션을 사용하여 현재 행 앞에 있는 행의 값을 참조할 수 없으며 테이블 또는 셀에 있는 임의의 단일 값을 참조할 수 없습니다.항상 테이블 및 열을 사용해야 합니다.

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

예를 들어 다음은 RELATED 함수를 사용하여 관련 테이블에서 주문이 발송된 지역을 기준으로 세금 값을 가져오는 수식입니다.세금 값은 현재 테이블의 지역 값을 사용하고 관련 테이블에서 지역을 조회한 다음 관련 테이블에서 해당 지역의 세율을 가져와 결정됩니다.

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

이 수식은 단순히 Region 테이블에서 현재 지역의 세율을 가져옵니다.테이블을 연결하는 키를 몰라도 되고 지정할 필요도 없습니다.

여러 행 컨텍스트

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

예를 들어 Products 테이블 및 판매 테이블 통합 문서에 포함 되어 있습니다. 제품이 여러 개 포함 된 트랜잭션 꽉 차면 전체 판매 테이블을 통해 이동 하 한 임의의 한 트랜잭션이에서 각 제품에 대 한 주문 큰 수량을 찾을 수 있습니다.

Excel에서 이 계산을 수행하려면 일련의 중간 요약이 필요하며, 데이터가 변경될 경우 이러한 중간 요약을 다시 작성해야 합니다.Excel의 고급 사용자인 경우 이 작업을 수행하는 배열 수식을 작성할 수 있습니다.또는 관계형 데이터베이스에서 중첩된 하위 SELECT를 작성할 수 있습니다.

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

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

이 수식은 한 구체적인된 연습은 EARLIER 함수을 참고 하세요.

간단히 말해 EARLIER 함수는 현재 연산보다 먼저 발생한 연산의 행 컨텍스트를 저장합니다.이 함수는 항상 두 개의 컨텍스트 집합을 메모리에 저장합니다.하나의 컨텍스트 집합은 수식의 내부 루프에 대한 현재 행을 나타내고, 다른 컨텍스트 집합은 수식의 외부 루프에 대한 현재 행을 나타냅니다.DAX는 두 루프 간에 값을 자동으로 공급하므로 복잡한 집계를 만들 수 있습니다.

맨 위로 이동

쿼리 컨텍스트

쿼리 컨텍스트는 수식에 대해 암시적으로 검색 하는 데이터의 하위 집합을 나타냅니다. 피벗 테이블의 셀에 측정값 또는 기타 값 필드를 삭제 하면 행과 열 머리글, 슬라이서, 및 보고서 필터 컨텍스트를 확인 하려면 파워 피벗 엔진을 검사 합니다. 그런 다음 파워 피벗 은 피벗 테이블의 각 셀을 채우는 데 필요한 계산 합니다. 검색 되는 데이터 집합은 각 셀에 대 한 쿼리 컨텍스트입니다.

컨텍스트는 수식을 배치하는 위치에 따라 변경될 수 있으므로 많은 그룹화 및 필터가 있는 피벗 테이블에서 수식을 사용하는지, 아니면 필터가 없고 최소한의 컨텍스트만 있는 계산 열에서 수식을 사용하는지에 따라 수식의 결과도 변경됩니다.

예를 들어, 판매 table:=SUM('Sales'[Profit])의 Profit 열에서 값의 합계를 계산 하는이 간단한 수식 만들기

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

그러나 동일한 결과를 수백 번 표시하려는 경우는 거의 없으며 특정 연도, 특정 국가나 지역, 특정 제품 또는 이러한 조건의 조합에 대한 수익을 가져온 후 총합계를 가져오려고 합니다.

피벗 테이블에 추가 하거나 열 및 행 머리글을 제거 하 고 추가 하거나 슬라이서를 제거 하 여 컨텍스트를 변경 하려면 쉽습니다. 와 같은 위에 측정값에 수식을 만들 수 있으며 피벗 테이블에 배치 합니다. 피벗 테이블에 열 또는 행 머리글을 추가할 때마다 측정값 평가 쿼리 컨텍스트를 변경 합니다. 분할 및 필터링 작업 상황에 맞는 적용 합니다. 따라서 피벗 테이블에 사용 되는 동일한 수식에서 각 셀에 대 한 다른 쿼리 컨텍스트 계산 됩니다.

맨 위로 이동

필터 컨텍스트

수식에 대 한 인수를 사용 하 여 열 또는 테이블에 허용 되는 값의 집합에 대 한 필터 제한이 지정 하면 필터 컨텍스트 추가 됩니다. 필터 컨텍스트 다른 행 컨텍스트 등 컨텍스트 또는 쿼리 컨텍스트 위에 적용 됩니다.

예를 들어, 피벗 테이블에서 쿼리 컨텍스트는 이전 섹션에 설명 된 대로 행 및 열 머리글에 따라 각 셀에 대 한 값을 계산 합니다. 그러나 측정값 또는 피벗 테이블에 추가 하는 계산 된 열 내에서 수식에서 사용 되는 값을 제어 하려면 필터 식을 지정할 수 있습니다. 선택적으로 특정 열에서 필터를 지울 수 있습니다.

수식 내에 필터를 만드는 방법에 대 한 자세한 내용은 Filter 함수 (DAX)를참조 하십시오.

방법의 예에 대 한 필터를 지워서 총합계를 구하는 ALL 함수를 참조 하세요 지울 수 있습니다.

선택적으로 지우고 수식 내에 필터를 적용 하는 방법의 예는 ALLEXCEPT 함수를 참고 하세요.

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

맨 위로 이동

수식의 컨텍스트 확인

수식을 만들면 파워 피벗 for Excel에서 먼저 일반 구문을 확인한 다음 현재 컨텍스트에서 가능한 열과 테이블을 기준으로 제공된 열 및 테이블의 이름을 확인합니다. 파워 피벗에서 수식에 의해 지정된 열과 테이블을 찾을 수 없는 경우 오류가 발생합니다.

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

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

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

수식의 컨텍스트 예

  • RELATED 함수는 관련 열의 값을 포함하도록 현재 행의 컨텍스트를 확장합니다.이 함수를 사용하여 조회를 수행할 수 있습니다.이 항목의 예에서는 필터링과 행 컨텍스트의 상호 작용을 보여 줍니다.

  • FILTER 함수를 사용하여 현재 컨텍스트에 포함시킬 행을 지정할 수 있습니다.또한 이 항목의 예에서는 집계를 수행하는 다른 함수에 필터를 포함하는 방법을 보여 줍니다.

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

  • ALLEXCEPT 함수를 사용하면 지정된 필터를 제외한 모든 필터를 제거할 수 있습니다.두 항목에는 모두 수식을 작성하고 복잡한 컨텍스트를 이해할 수 있도록 안내하는 예가 포함되어 있습니다.

  • EARLIER 및 EARLIEST 함수를 사용하면 내부 루프의 값을 참조하면서 계산을 수행하여 테이블을 반복할 수 있습니다.재귀의 개념과 내부 및 외부 루프에 대해 잘 알고 있다면 EARLIER 및 EARLIEST 함수의 기능이 얼마나 유용한지 확인할 수 있을 것입니다.이러한 개념을 처음 접하는 경우 예에서 설명된 단계를 수행하여 계산에서 내부 컨텍스트와 외부 컨텍스트가 어떻게 사용되는지를 확인해야 합니다.

맨 위로 이동

참조 무결성

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

관계형 데이터 개념을 처음 접하는 경우 먼저 항목인 관계 개요를 읽어 하는 것이 좋습니다.

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

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

피벗 테이블에서 관계의 일 쪽을 기준으로 데이터를 그룹화하는 경우 관계의 다 쪽에서 일치하지 않는 데이터가 함께 그룹화되며 빈 행 머리글과 함께 합계에 포함됩니다.빈 머리글은 "알 수 없는 멤버"와 거의 동일한 의미입니다.

알 수 없는 멤버 이해

SQL Server Analysis Services와 같은 다차원 데이터베이스 시스템으로 작업한 적이 있다면 알 수 없는 멤버라는 개념을 이미 알고 있을 것입니다.이 용어가 생소한 경우 다음 예를 통해 알 수 없는 멤버란 무엇이고 계산에 어떤 영향을 주는지 확인할 수 있습니다.

예를 들어 각 저장소에 대 한 월별 매출 합계를 계산 하는 계산을 만드는 했는데 Sales 테이블의 열 이름 저장에 대 한 값이 누락 됩니다. 저장판매 에 대 한 테이블 이름을 저장 하 여 연결 된, 된다는 것 예상과 수식에서 발생 하? 피벗 테이블 하는 방법 판매액 기존 저장소와 관련이 없는 그룹화 하거나?

이 문제는 대형 팩트 데이터 테이블이 저장소, 지역 및 팩트 분류와 계산에 사용되는 기타 특성에 대한 정보를 포함하는 차원 테이블에 논리적으로 연결되어야 하는 데이터 웨어하우스에서 공통적으로 발생하는 문제입니다.문제를 해결하기 위해 기존 엔터티와 관련이 없는 새 팩트는 모두 알 수 없는 멤버에 일시적으로 할당됩니다.따라서 관련 없는 팩트는 피벗 테이블에서 빈 머리글 밑에 그룹화되어 나타납니다.

빈 값과 빈 행 처리 비교

빈 값을 빈 행에 맞게 알 수 없는 멤버 추가와 다릅니다. 빈 값이 null, 빈 문자열, 및 기타 누락 된 값을 나타내는 데 사용 되는 특수 한 값입니다. 빈 값 뿐 아니라 다른 DAX 데이터 형식에 대 한 자세한 내용은 데이터 모델의 데이터 형식참조 하십시오.

맨 위로 이동

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×