DAX 수식의 컨텍스트

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

컨텍스트를 사용 하면 수식 결과를 변경 하 여 현재 행 또는 셀 선택과 관련 데이터도 반영할 수 있는 동적 분석을 수행할 수 있습니다. 컨텍스트 및 사용 컨텍스트를 이해 하는 것이 효과적인 수식, 동적 분석, 수식의 문제 해결을 위한 매우 중요 합니다.

이 섹션에서는 여러 유형의 컨텍스트 (행 컨텍스트, 쿼리 컨텍스트, 필터 컨텍스트)를 정의 합니다. 계산 된 열과 피벗 테이블의 수식에 대 한 컨텍스트가 평가 되는 방식을 설명 합니다.

이 문서의 마지막 부분에서는 컨텍스트에 따라 수식의 결과가 어떻게 변경 되는지 보여주는 자세한 예제 링크를 제공 합니다.

컨텍스트 이해

파워 피벗 의 수식은 피벗 테이블에 적용 된 필터의 영향을 받을 수 있습니다. 컨텍스트는 동적 분석을 수행 하는 데 사용 됩니다. 컨텍스트 이해는 수식 작성과 문제 해결에 중요 합니다.

컨텍스트 유형 (행 컨텍스트, 쿼리 컨텍스트, 필터 컨텍스트)이 서로 다릅니다.

행 컨텍스트는 "현재 행" 이라고 간주할 수 있습니다. 계산 된 열을 만든 경우 행 컨텍스트는 현재 행과 관련 된 각 개별 행의 값과 열의 값으로 구성 됩니다. 이전이른)를 사용 하 여 현재 행에서 값을 가져온 다음 전체 테이블에서 작업을 수행 하는 동안 해당 값을 사용할 수도 있습니다.

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

필터 컨텍스트는 각 열에 허용 되는 값 집합으로, 행에 적용 된 필터 제약 조건을 기준으로 하거나 수식 내에서 필터 식에 의해 정의 됩니다.

맨 위로 이동

행 컨텍스트

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

예를 들어 = [Freight] + [세금]을 계산 된 열을 만드는 경우

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

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

예를 들어 다음 수식은 관련 함수를 사용 하 여 주문이 선적 된 지역에 따라 관련 표에서 세금 값을 가져옵니다. 세금 값은 현재 테이블의 region 값을 사용 하 여 관련 테이블에서 영역을 조회 한 다음 관련 테이블에서 해당 지역에 대 한 세율을 가져오는 방식으로 결정 됩니다.

= [Freight] + 관련 (' 지역 ' [TaxRate])

이 수식은 지역 표에서 현재 지역에 대 한 세금 비율을 쉽게 가져옵니다. 테이블을 연결 하는 키를 모르거나 지정할 필요가 없습니다.

여러 행 컨텍스트

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

예를 들어 통합 문서에 Products 테이블과 Sales 테이블이 포함 되어 있다고 가정 합니다. 여러 제품을 포함 하는 모든 거래의 전체 판매 테이블을 통해 한 거래에서 각 제품에 대해 주문 하는 가장 큰 수량을 찾을 수 있습니다.

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

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

= maxx (필터 (sales, [ProdKey] = 이전 ([ProdKey])), Sales [OrderQty])

이 수식에 대 한 자세한 연습은 이전를 참조 하세요.

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

맨 위로 이동

쿼리 컨텍스트

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

이 컨텍스트는 수식을 어디에 배치할지에 따라 변경 될 수 있으므로, 많은 그룹화 및 필터가 있는 피벗 테이블에서 수식을 사용 하는지, 그리고 필터 및 최소 컨텍스트를 포함 하는 계산 된 열에 따라 수식의 결과도 달라 집니다.

예를 들어 Sales 테이블의 수익 열에 있는 값의 합계를 구하는 간단한 수식 (= SUM (' Sales ' [수익])을 만들 수 있습니다.

sales 테이블에서 계산 된 열에이 수식을 사용 하는 경우 수식에 대 한 쿼리 컨텍스트가 항상 Sales 테이블의 전체 데이터 집합 이므로 수식에 대 한 결과가 전체 테이블에 대해 동일 하 게 됩니다. 결과에는 모든 지역, 모든 제품, 모든 연도 등에 대 한 수익이 포함 됩니다.

그러나 일반적으로 동일한 결과를 수백 번 표시 하려는 것은 아니지만, 특정 연도, 특정 국가나 지역, 특정 제품 또는 이러한 항목의 일부 조합에 대 한 수익을 확보 하려는 경우에는 총계를 가져옵니다.

피벗 테이블에서 열 및 행 머리글을 추가 또는 제거 하 고 슬라이서를 추가 하거나 제거 하 여 컨텍스트를 쉽게 변경할 수 있습니다. 위와 같은 수식을 측정값에서 만든 다음, 피벗 테이블에 놓을 수 있습니다. 피벗 테이블에 열 또는 행 머리글을 추가할 때마다 측정값이 평가 되는 쿼리 컨텍스트를 변경할 수 있습니다. 분할 및 필터링 작업도 컨텍스트에도 영향을 줍니다. 따라서 피벗 테이블에서 사용 되는 동일한 수식이 각 셀의 다른 쿼리 컨텍스트에서 계산 됩니다.

맨 위로 이동

필터 컨텍스트

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

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

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

필터를 지워 총계를 만드는 방법에 대 한 예제를 보려면 ALL을 참조 하세요.

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

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

맨 위로 이동

수식에서 컨텍스트 확인

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

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

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

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

수식의 컨텍스트 예제

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

  • FILTER 함수를 사용 하면 현재 컨텍스트에 포함할 행을 지정할 수 있습니다. 이 항목의 예제는 집계를 수행 하는 다른 함수 내에 필터를 포함 하는 방법에 대해서도 설명 합니다.

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

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

  • 이전 함수와 초기 함수를 사용 하면 내부 루프의 값을 참조 하면서 계산을 수행 하 여 테이블을 반복할 수 있습니다. 재귀의 개념을 잘 알고 있고 내부 및 외부 루프를 사용 하는 경우 이전 및 초기 함수에서 제공 하는 기능을 사용해 주셔서 감사 합니다. 이러한 개념을 처음 사용 하는 경우에는 예제에 나와 있는 단계를 주의 깊게 따라 계산에서 내부 및 외부 컨텍스트를 사용 하는 방법을 확인 해야 합니다.

맨 위로 이동

참조 무결성

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

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

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

파워 피벗 에서는 올바른 관계를 정의 하기 위해 두 테이블 사이에 참조 무결성을 적용 하지 않아도 됩니다. 대신, 일대다 관계의 "일" 쪽 끝에 빈 행이 만들어지고 관련 테이블에서 일치 하지 않는 모든 행을 처리 하는 데 사용 됩니다. 이는 사실상 SQL 외부 조인으로 작동 합니다.

피벗 테이블에서 관계의 한 쪽으로 데이터를 그룹화 하면 관계의 여러 측면에 있는 일치 하지 않는 데이터가 모두 그룹화 되 고 빈 행 머리글이 있는 합계에 포함 됩니다. 빈 머리글은 "알 수 없는 멤버"와 거의 동일 합니다.

알 수 없는 멤버 이해

SQL Server Analysis Services와 같은 다차원 데이터베이스 시스템에 대해 작업 한 경우 알 수 없는 멤버의 개념은 사용자에 게 익숙할 것입니다. 해당 용어가 새로운 경우 다음 예에서는 알 수 없는 구성원과 계산에 미치는 영향에 대해 설명 합니다.

각 상점의 월간 판매량을 합산 하는 계산을 만드는 경우 sales 테이블의 열에 상점 이름 값이 누락 되었다고 가정 합니다. 매장판매 테이블이 상점 이름으로 연결 되 면 수식에서 발생 하는 예상 되는 결과는 무엇 인가요? 피벗 테이블 그룹에 기존 저장소와 관련 되지 않은 판매액 그림이 표시 되는 방식

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

빈 값과 빈 행의 처리 비교

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

맨 위로 이동

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

이 정보가 유용한가요?

의견 주셔서 감사합니다!

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

×