다음을 통해 공유


DAX(Data Analysis Expressions) 개요

DAX(Data Analysis Expressions) 언어는 사용자가 PowerPivot 테이블(계산 열) 및 Excel 피벗 테이블(측정값)에서 사용자 지정 계산을 정의할 수 있도록 하는 수식 언어입니다. DAX에는 Excel 수식에서 사용되는 일부 함수와 관계형 데이터 작업에 사용되고 동적 집계를 수행하는 추가 함수가 포함되어 있습니다.

이 섹션에서는 다음 개념을 설명합니다.

  • DAX 수식을 사용하는 위치

  • DAX 수식을 만드는 방법

  • DAX를 사용하여 수행할 수 있는 연산 유형

DAX 수식 개요

DAX 수식은 Excel 수식과 매우 비슷합니다. DAX 수식을 만들려면 등호 뒤에 함수 이름 또는 식과 필요한 값 또는 인수를 입력합니다. DAX는 Excel과 같이 문자열을 사용하거나, 날짜 및 시간을 사용하여 계산을 수행하거나, 조건 값을 만드는 데 사용할 수 있는 다양한 함수를 제공합니다.

그러나 DAX 수식에는 다음과 같은 중요한 차이점이 있습니다.

  • DAX 함수는 항상 전체 열 또는 테이블을 참조합니다. 테이블 또는 열의 특정 값만 사용하려면 수식에 필터를 추가하면 됩니다.

  • 행 단위로 계산을 사용자 지정하려는 경우 PowerPivot에서 제공하는 함수를 통해 현재 행 값이나 관련 값을 사용하여 컨텍스트에 따라 달라지는 계산을 수행할 수 있습니다.

  • DAX에는 단일 값이 아닌 테이블을 결과로 반환하는 함수 유형이 포함되어 있습니다. 이러한 함수는 다른 함수에 대한 입력을 제공하여 전체 테이블 또는 열의 값을 계산하는 데 사용할 수 있습니다.

  • 일부 DAX 함수는 시간 인텔리전스를 제공하며, 이 기능을 통해 의미 있는 날짜 범위를 사용하여 계산을 만들고 병렬 기간에서 결과를 비교할 수 있습니다.

수식을 사용하는 위치

DAX 수식을 PowerPivot 테이블에 사용하거나 Excel의 피벗 테이블에 사용할 수 있습니다.

  • 열을 추가한 다음 수식 입력줄에 식을 입력하여 계산 열에 수식을 사용할 수 있습니다. 이러한 수식은 PowerPivot 창에서 만들 수 있습니다. 자세한 내용은 계산 열를 참조하십시오.

  • 측정값에 수식을 사용할 수 있습니다. Excel의 기존 PowerPivot 피벗 테이블이나 피벗 차트에서 새 측정값 추가를 클릭하여 이러한 수식을 만들 수 있습니다. 자세한 내용은 PowerPivot의 측정값을 참조하십시오.

수식이 계산 열에 사용되는지 측정값에 사용되는지에 따라 동일한 수식의 동작이 다를 수 있습니다. 계산 열에서는 수식이 항상 테이블 전체에 걸쳐 열의 모든 행에 적용됩니다. 행 컨텍스트에 따라서는 값이 바뀔 수 있습니다. 그러나 측정값의 경우 결과의 계산이 컨텍스트에 크게 의존합니다. 즉, 계산에 사용되는 값이 피벗 테이블의 디자인과 행 및 열 머리글의 선택에 영향을 받습니다. 자세한 내용은 DAX 수식의 컨텍스트를 참조하십시오.

수식 입력줄을 사용하여 수식 만들기

Excel과 마찬가지로 PowerPivot에서는 수식을 손쉽게 만들고 편집할 수 있는 수식 입력줄과 입력 및 구문 오류를 최소화하는 자동 완성 기능을 제공합니다.

테이블 이름을 입력하려면   테이블 이름 입력을 시작합니다. 수식 자동 완성 사용 기능에서 해당 문자로 시작하는 유효한 이름이 포함된 드롭다운 목록을 제공합니다.

열 이름을 입력하려면   대괄호를 입력한 다음 현재 테이블의 열 목록에서 열을 선택합니다. 다른 테이블에 있는 열의 경우 테이블 이름의 처음 몇 문자를 입력한 후 자동 완성 드롭다운 목록에서 열을 선택합니다.

수식을 작성하는 방법을 보여 주는 연습은 계산 수식 작성을 참조하십시오.

자동 완성 사용 팁

  • 중첩된 함수가 있는 기존 수식의 중간에 수식 자동 완성 기능을 사용할 수 있습니다. 삽입 지점 바로 전 텍스트는 드롭다운 목록의 값을 표시하는 데 사용되며 삽입 지점 이후의 모든 텍스트는 변경되지 않은 상태로 유지됩니다.

  • 상수에 대해 만드는 정의된 이름은 자동 완성 드롭다운 목록에 표시되지는 않지만 이 이름을 입력할 수 있습니다.

  • PowerPivot은 함수의 닫는 괄호를 추가하거나 괄호를 자동으로 일치시키지 않습니다. 각 함수의 구문이 올바른지 확인해야 합니다. 구문이 올바르지 않으면 수식을 저장하거나 사용할 수 없습니다.

수식에 여러 함수 사용

한 함수의 결과를 다른 함수의 인수로 사용하도록 함수를 중첩할 수 있습니다. 계산 열에서 함수의 64 수준까지 중첩할 수 있습니다. 그러나 함수를 중첩하면 수식을 만들거나 수식의 문제를 해결하기가 어려워질 수 있습니다.

PowerPivot의 여러 함수는 중첩 함수로만 사용되도록 설계되었습니다. 이러한 함수는 테이블을 반환합니다. 테이블은 PowerPivot 통합 문서에 결과로 직접 저장할 수 없으며 테이블 함수에 대한 입력으로 제공해야 합니다. 예를 들어 SUMX, AVERAGEX 및 MINX 함수의 경우 첫 번째 인수로 테이블을 사용해야 합니다.

[!참고]

열 사이의 종속성에 필요한 여러 계산 때문에 성능이 저하되지 않도록 측정값 내의 함수 중첩에는 몇 가지 제한이 있습니다.

DAX 함수와 Excel 함수 비교

DAX 함수 라이브러리는 Excel 함수 라이브러리를 기반으로 하지만 여러 가지 차이점이 있습니다. 이 섹션에서는 Excel 함수 및 DAX 함수 간의 차이점 및 유사점에 대해 간략하게 설명합니다.

  • 대부분의 DAX 함수는 Excel 함수와 이름이 같고 동일한 일반 동작을 수행하지만 다른 형식의 입력을 받아들이도록 수정되었으며 경우에 따라 다른 데이터 형식을 반환할 수 있습니다. 일반적으로 수정 작업을 하지 않으면 Excel 통합 문서에서 DAX 수식을 사용하거나 PowerPivot 통합 문서에서 Excel 수식을 사용할 수 없습니다.

  • DAX 함수는 셀 범위 또는 범위를 참조로 받아들이지 않고 열 또는 테이블을 참조로 받아들입니다.

  • DAX 날짜 및 시간 함수는 datetime 데이터 형식을 반환하지만 Excel 날짜 및 시간 함수는 날짜를 일련 번호로 나타내는 정수를 반환합니다.

  • 대부분의 새 DAX 함수는 값 테이블을 반환하거나 입력으로 값 테이블을 사용하여 계산을 수행합니다. 이와 달리 Excel에는 테이블을 반환하는 함수가 없지만 일부 함수에서 배열 작업을 수행할 수 있습니다. 전체 테이블 및 열을 쉽게 참조할 수 있는 기능은 PowerPivot의 새 기능입니다.

  • DAX에서는 Excel의 배열 및 벡터 조회 함수와 비슷한 새로운 조회 함수를 제공하지만 DAX 함수의 경우 테이블 간에 관계를 설정해야 합니다.

  • DAX에서는 Excel의 variant 데이터 형식이 지원되지 않습니다. 열의 데이터 형식은 항상 동일한 데이터 형식이어야 합니다. 데이터가 동일한 형식이 아니면 DAX는 전체 열을 모든 값에 가장 적합한 데이터 형식으로 변경합니다.

맨 위로 이동

DAX 데이터 형식

다양한 데이터 형식을 지원하는 여러 데이터 원본의 데이터를 PowerPivot 워크시트로 가져올 수 있습니다. 데이터를 통합 문서로 가져오거나 로드하고 계산 또는 피벗 테이블에서 사용하는 경우 데이터가 PowerPivot 데이터 형식 중 하나로 변환됩니다. 데이터 형식의 목록은 PowerPivot 통합 문서에서 지원되는 데이터 형식을 참조하십시오.

테이블 데이터 형식은 새로운 많은 함수에 대한 입력 또는 출력으로 사용되는 DAX의 새로운 데이터 형식입니다. 예를 들어 FILTER 함수는 테이블을 입력으로 사용하여 필터 조건을 충족하는 행만 포함하는 다른 테이블을 출력합니다. 집계 함수와 테이블 함수를 결합하면 동적으로 정의된 데이터 집합을 대상으로 복잡한 계산을 수행할 수 있습니다. 자세한 내용은 수식의 집계를 참조하십시오.

맨 위로 이동

수식 및 관계형 모델

PowerPivot 창은 여러 개의 데이터 테이블 작업을 할 수 있고 해당 테이블을 관계형 모델로 연결할 수 있는 영역입니다. 이 모델 내에서 테이블은 관계에 의해 서로 연결되므로 사용자가 다른 테이블의 열에 대한 상관 관계를 만들고 보다 유용한 계산을 만들 수 있습니다. 예를 들어 관련 테이블의 값을 더한 다음 단일 셀에 저장하는 수식을 만들 수 있습니다. 또는 관련 테이블의 행을 제어하기 위해 테이블과 열에 필터를 적용할 수 있습니다. 자세한 내용은 관계 개요를 참조하십시오.

관계를 사용하여 테이블을 연결할 수 있기 때문에 다양한 테이블의 여러 열에 있는 데이터가 피벗 테이블에 포함될 수도 있습니다.

하지만 수식이 전체 테이블과 열에 적용될 수 있기 때문에 Excel과는 다르게 계산을 디자인해야 합니다.

  • 일반적으로 열의 DAX 수식은 일부 행 또는 셀에만 적용되지 않고 항상 열의 전체 값 집합에 적용됩니다.

  • PowerPivot의 테이블은 각 행에 항상 같은 수의 열이 있고 열의 모든 행에 동일한 데이터 형식이 포함되어야 합니다.

  • 관계를 통해 테이블을 연결할 경우 키로 사용된 두 열의 값이 대부분 일치해야 합니다. PowerPivot에서는 참조 무결성을 강제로 적용하지 않기 때문에 키 열에 일치하지 않는 값이 있을 수 있으며 그래도 관계는 만들어집니다. 그러나 빈 값이나 일치하지 않는 값이 있으면 수식 결과와 피벗 테이블의 모양에 영향을 줄 수 있습니다. 자세한 내용은 수식의 관계 및 조회을 참조하십시오.

  • 관계를 사용하여 통합 문서에서 테이블을 연결하면 수식이 계산되는 범위, 즉 컨텍스트가 확장됩니다. 예를 들어 피벗 테이블의 수식은 피벗 테이블에 있는 모든 필터 또는 열 및 행 머리글의 영향을 받을 수 있습니다. 컨텍스트를 조작하는 수식을 작성할 수 있지만 컨텍스트로 인해 결과가 예기치 않은 방식으로 변경될 수도 있습니다. 자세한 내용은 DAX 수식의 컨텍스트를 참조하십시오.

맨 위로 이동

계산 열 및 측정값

PowerPivot의 계산 열 또는 측정값에서 수식을 만들 수 있습니다.

계산 열

계산 열은 기존 PowerPivot 테이블에 추가하는 열입니다. 열에 값을 붙여 넣거나 가져오는 대신 열 값을 정의하는 DAX 수식을 만듭니다. 피벗 테이블(또는 피벗 차트)에 PowerPivot 테이블을 포함할 경우 다른 데이터 열과 마찬가지로 계산 열을 사용할 수 있습니다.

계산 열의 수식은 Excel에서 만드는 수식과 매우 비슷합니다. 하지만 Excel의 경우와 달리 테이블의 행마다 서로 다른 수식을 만들 수 없습니다. 대신 DAX 수식이 전체 열에 자동으로 적용됩니다.

열에 수식이 있으면 각 행에 대해 값이 계산됩니다. 수식을 작성하자마자 열에 대해 결과가 계산됩니다. 열 값은 관련 데이터를 새로 고치거나 수동 다시 계산을 사용할 경우에만 다시 계산됩니다.

측정값과 다른 계산 열을 기반으로 하는 계산 열을 만들 수 있습니다. 그러나 계산 열과 측정 값에 동일한 이름을 사용하면 결과가 모호해질 수 있으므로 동일한 이름을 사용하지 않도록 하십시오. 열을 참조할 때는 정규화된 열 참조를 사용함으로써 실수로 측정값을 호출하지 않도록 하는 것이 좋습니다.

측정값

측정값은 특별히 PowerPivot 데이터를 사용하는 피벗 테이블 또는 피벗 차트에서 사용하기 위해 만드는 수식입니다. COUNT 또는 SUM과 같은 표준 집계 함수를 기반으로 측정값을 만들거나 DAX를 사용하여 고유한 수식을 정의할 수 있습니다. 측정값은 피벗 테이블의 영역에 사용됩니다. 계산 결과를 피벗 테이블의 다른 영역에 배치하려면 대신 계산 열을 사용합니다.

측정값을 만들려면 먼저 PowerPivot 통합 문서에 피벗 테이블 또는 피벗 차트를 추가해야 합니다. 측정값에 대한 수식을 정의하는 경우 측정값을 피벗 테이블에 놓을 때까지 아무 작업도 실행되지 않습니다. 측정값을 추가하면 피벗 테이블의 영역에 있는 각 셀에 대해 수식이 계산됩니다. 행 머리글과 열 머리글의 각 조합에 대해 결과가 만들어지므로 측정값의 결과는 셀마다 다를 수 있습니다.

작성한 측정값 정의는 원본 데이터 테이블과 함께 저장됩니다. 측정값은 PowerPivot 필드 목록에 나타나며 통합 문서의 모든 사용자가 사용할 수 있습니다.

맨 위로 이동

수식 결과 업데이트

데이터 새로 고침 및 다시 계산은 복잡한 수식, 대용량 데이터 또는 외부 데이터 원본에서 가져온 데이터를 포함하는 데이터 모델을 디자인할 때 이해해야 하는 두 개의 관련된 개별 작업입니다.

데이터 새로 고침은 통합 문서의 데이터를 외부 데이터 원본의 새 데이터로 업데이트하는 프로세스입니다. 지정한 간격마다 수동으로 데이터를 새로 고칠 수 있습니다. 또는 통합 문서를 SharePoint 사이트에 게시한 경우 외부 원본에서 자동 새로 고침을 예약할 수 있습니다.

다시 계산은 수식 변경 및 기본 데이터의 변경 내용을 반영하도록 통합 문서의 수식 및 계산 열의 결과를 업데이트하는 프로세스입니다. 다시 계산은 다음과 같은 방식으로 성능에 영향을 줄 수 있습니다.

  • 계산 열의 경우 수식을 변경할 때마다 항상 전체 열에 대해 수식의 결과를 다시 계산해야 합니다.

  • 그러나 측정값의 경우 피벗 테이블이나 피벗 차트의 컨텍스트에 측정값이 놓일 때까지 수식의 결과가 계산되지 않습니다. 데이터의 필터에 영향을 주는 행 머리글 또는 열 머리글을 변경하거나 피벗 테이블을 수동으로 새로 고친 경우에도 수식이 다시 계산됩니다.

자세한 내용은 다음 항목을 참조하십시오.

맨 위로 이동

Analysis Services 테이블 형식 모델 및 DirectQuery 모드와의 호환성

일반적으로 PowerPivot에서 작성하는 DAX 수식은 Analysis Services 테이블 형식 모델과 완벽하게 호환됩니다. 그러나 PowerPivot 모델을 VertiPaq 모드에서 실행되는 Analysis Services 인스턴스로 마이그레이션하고 해당 모델을 DirectQuery 모드에서 배포할 경우에는 몇 가지 제한이 있습니다.

  • 모델을 DirectQuery 모드에서 배포할 경우 일부 DAX 수식이 다른 결과를 반환할 수 있습니다.

  • 일부 수식에는 관계형 데이터 원본에 대해 지원되지 않는 DAX 함수가 포함되어 있으므로 모델을 DirectQuery 모드에 배포할 경우 이러한 수식으로 인해 유효성 검사 오류가 발생할 수 있습니다.

자세한 내용은 https://go.microsoft.com/fwlink/?LinkId=219172 사이트를 참조하십시오.

참고 항목

개념

보고서, 차트 및 피벗 테이블에 계산 추가

PowerPivot 통합 문서에서 지원되는 데이터 형식

DAX(Data Analysis Expressions) 개요

관련 자료

DAX(Data Analysis Expressions) 참조

PowerPivot에서 분석할 수 있도록 데이터 준비

PowerPivot의 데이터 추가 및 유지 관리