Power Pivot의 DAX(데이터 분석 식)

DAX (데이터 분석 식)는 처음에는 거의 사용 되지 않지만 이름에 대해 바보 같이 표시 됩니다. DAX 기본 사항은 매우 쉽게 이해할 수 있습니다. 첫 번째 항목-DAX는 프로그래밍 언어가 아닙니다. DAX는 수식 언어입니다. DAX를 사용 하 여 계산 된 열측정값 (계산 필드 라고도 함)에 대 한 사용자 지정 계산을 정의할 수 있습니다. DAX에는 Excel 수식에 사용 되는 함수와 관계형 데이터를 사용 하 고 동적 집계를 수행 하도록 디자인 된 추가 함수가 포함 되어 있습니다.

DAX 수식 이해

DAX 수식은 Excel 수식과 매우 유사 합니다. 하나를 만들려면 등호 (=)를 입력 하 고 함수 이름 또는 식과 필수 값 또는 인수를 차례로 입력 합니다. Excel과 마찬가지로 DAX는 문자열로 작업 하거나, 날짜 및 시간을 사용 하 여 계산을 수행 하거나, 조건부 값을 만드는 데 사용할 수 있는 다양 한 함수를 제공 합니다.

그러나 DAX 수식은 다음과 같은 중요 한 점에서 다릅니다.

  • 행 단위 기준으로 계산을 사용자 지정 하려는 경우 DAX에는 현재 행 값 또는 관련 값을 사용 하 여 컨텍스트에 따라 달라 지는 계산을 수행할 수 있는 함수가 포함 되어 있습니다.

  • DAX에는 단일 값 대신 테이블을 결과로 반환 하는 함수 형식이 포함 되어 있습니다. 이러한 함수는 다른 함수에 대 한 입력을 제공 하는 데 사용할 수 있습니다.

  • DAX의 시간 인텔리전스 함수는 날짜 범위를 사용 하 여 계산을 허용 하 고 해당 결과를 병렬 기간별 비교 합니다.

DAX 수식을 사용 하는 위치

파워 피벗계산 된 columns 또는 계산 된 fields에서 수식을 만들 수 있습니다.

계산 된 열

계산 된 열은 기존 파워 피벗 테이블에 추가 하는 열입니다. 열에서 값을 붙여넣거나 가져오는 대신 열 값을 정의 하는 DAX 수식을 만듭니다. 피벗 테이블 또는 피벗 차트에 파워 피벗 테이블을 포함 하는 경우에는 다른 데이터 열 에서처럼 계산 된 열을 사용할 수 있습니다.

계산 된 열의 수식은 Excel에서 만든 수식과 매우 유사 합니다. 그러나 Excel에서와 달리 표의 여러 행에 대해 다른 수식을 만들 수는 없습니다. 대신 DAX 수식이 전체 열에 자동으로 적용 됩니다.

열에 수식이 포함 되어 있으면 각 행에 대해 값이 계산 됩니다. 수식을 만드는 즉시 해당 열에 대 한 결과가 계산 됩니다. 열 값은 기본 데이터를 새로 고치거 나 수동 재계산을 사용 하는 경우에만 다시 계산 됩니다.

측정값 및 다른 계산 열을 기반으로 하는 계산 된 열을 만들 수 있습니다. 그러나 계산 된 열과 측정값에 동일한 이름을 사용 하지 않도록 하는 것은 혼란 스 러 울 수 있습니다. 열을 언급할 때 실수로 측정값을 호출 하지 않도록 정규화 된 열 참조를 사용 하는 것이 좋습니다.

자세한 내용은 Power Pivot의 계산 열을 참조 하세요.

기준을

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

명시적 측정값에 대해 수식을 정의할 때는 피벗 테이블에 측정값을 추가할 때까지 아무 작업도 수행 되지 않습니다. 측정값을 추가 하면 피벗 테이블의 영역에 있는 각 셀에 대해 수식이 계산 됩니다. 행 및 열 머리글의 각 조합에 대해 결과가 만들어지기 때문에 각 셀에서 측정값의 결과가 다를 수 있습니다.

생성 하는 측정값에 대 한 정의가 원본 데이터 테이블에 저장 됩니다. 이 보고서는 피벗 테이블 필드 목록에 표시 되며 통합 문서의 모든 사용자가 사용할 수 있습니다.

자세한 내용은 Power Pivot의 측정값을 참조 하세요.

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

Excel과 같이파워 피벗 는 수식을 쉽게 만들고 편집 하 고, 자동 완성 기능을 사용 하 여 입력 및 구문 오류를 최소화 하는 수식 입력줄을 제공 합니다.

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

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

수식을 작성 하는 방법에 대 한 자세한 내용 및 연습을 보려면 Power Pivot에서 계산을 위한 수식 만들기를 참조 하세요.

자동 완성 사용 팁

수식 자동 완성은 중첩 된 함수를 사용 하 여 기존 수식 중간에 사용할 수 있습니다. 삽입 포인터 바로 앞의 텍스트는 드롭다운 목록의 값을 표시 하는 데 사용 되며, 삽입 포인터 뒤에 있는 모든 텍스트는 변경 되지 않은 상태로 유지 됩니다.

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

파워 피벗 에서는 함수의 닫는 괄호가 추가 되거나 괄호에 자동으로 짝이 맞지 않습니다. 각 함수의 구문이 올바른지 또는 수식을 저장 하거나 사용할 수 없는지 확인 해야 합니다. 

수식에 여러 함수 사용

함수를 중첩 하 여 한 함수의 결과를 다른 함수의 인수로 사용할 수 있습니다. 계산 된 열에 최대 64 수준의 함수를 중첩할 수 있습니다. 그러나 중첩을 사용 하면 수식을 만들거나 문제 해결 하기가 어려울 수 있습니다.

많은 DAX 함수는 중첩 된 함수로만 사용 하도록 디자인 되었습니다. 이러한 함수는 테이블을 반환 하며, 결과적으로 직접 저장할 수 없습니다. 테이블 함수에 대 한 입력으로 제공 해야 합니다. 예를 들어 SUMX, AVERAGEX, MINX 함수에는 첫 번째 인수로 테이블이 필요 합니다.

참고: 열 간의 종속성에 필요한 여러 계산의 성능이 영향을 받지 않도록 하기 위해 측정값 내에 함수 중첩에 대 한 몇 가지 제한이 있습니다.

DAX 함수 및 Excel 함수 비교

DAX 함수 라이브러리는 Excel 함수 라이브러리를 기반으로 하지만 라이브러리에는 많은 차이점이 있습니다. 이 섹션에서는 Excel 함수와 DAX 함수의 차이점과 유사점을 요약 하 여 설명 합니다.

  • 대부분의 DAX 함수는 Excel 함수와 동일한 이름 및 일반적인 동작을 사용 하지만 다른 종류의 입력을 위해 수정 된 것 처럼 일부 경우에는 다른 데이터 형식을 반환할 수 있습니다. 일반적으로 Excel 수식에서 DAX 함수를 사용 하거나 일부 수정 없이 파워 피벗 에서 Excel 수식을 사용할 수 없습니다.

  • DAX 함수는 셀 참조 또는 범위를 참조로 사용 하지 않지만 대신 DAX 함수는 열 또는 테이블을 참조로 사용 합니다.

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

  • 새로운 DAX 함수 중 상당수는 값 테이블을 반환 하거나 값 테이블을 기준으로 계산을 수행 합니다. 반면에 Excel에는 테이블을 반환 하는 함수는 없지만 일부 함수는 배열을 사용 하 여 작업할 수 있습니다. 전체 테이블 및 열을 쉽게 참조할 수 있는 기능은 파워 피벗 의 새로운 기능입니다.

  • DAX Excel의 array 및 vector lookup 함수와 유사한 새로운 조회 함수를 제공 합니다. 그러나 DAX 함수는 테이블 간에 관계가 설정 되어 있어야 합니다.

  • 열의 데이터는 항상 같은 데이터 형식 이어야 합니다. 데이터가 같은 형식이 아니면 DAX는 전체 열을 모든 값에 가장 적합 한 데이터 형식으로 변경 합니다.

DAX 데이터 형식

다양 한 데이터 형식을 지원할 수 있는 다양 한 데이터 원본의 파워 피벗 데이터 모델로 데이터를 가져올 수 있습니다. 데이터를 가져오거나 로드 한 다음 계산 또는 피벗 테이블에서 데이터를 사용 하는 경우 데이터가 파워 피벗 데이터 형식 중 하나로 변환 됩니다. 데이터 형식의 목록은 데이터 모델의 데이터 형식을참조 하세요.

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

수식 및 관계형 모델

파워 피벗 창은 여러 데이터 테이블을 사용 하 여 작업 하 고 관계형 모델에서 테이블을 연결할 수 있는 영역입니다. 이 데이터 모델 내에서 테이블은 관계를 통해 서로 연결 되므로 다른 테이블의 열을 사용 하 여 상관 관계를 만들고 보다 재미 있는 계산을 만들 수 있습니다. 예를 들어 관련 테이블의 값을 합산 하는 수식을 만든 다음 해당 값을 단일 셀에 저장할 수 있습니다. 또는 관련 테이블의 행을 제어 하기 위해 테이블 및 열에 필터를 적용할 수 있습니다. 자세한 내용은 데이터 모델의 테이블 간 관계를 참조 하세요.

관계를 사용 하 여 테이블을 연결할 수 있으므로 피벗 테이블에는 서로 다른 테이블의 여러 열에 있는 데이터도 포함 될 수 있습니다.

그러나 수식은 전체 테이블 및 열과 함께 사용할 수 있으므로 Excel에서와 다른 방식으로 계산을 디자인 해야 합니다.

  • 일반적으로 열의 DAX 수식은 열에 있는 전체 값 집합에 항상 적용 됩니다 (일부 행 또는 셀에 대해서만 허용 되지 않음).

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

  • 테이블을 관계로 연결 하면 키로 사용 되는 두 열의 값이 대부분의 요소와 일치 하는지 확인 해야 합니다. 파워 피벗 는 참조 무결성을 적용 하지 않기 때문에 키 열에 일치 하지 않는 값이 있을 수 있으며 관계를 만들 수도 있습니다. 그러나 공백이 나 일치 하지 않는 값이 있으면 수식의 결과와 피벗 테이블의 모양에 영향을 줄 수가 있습니다. 자세한 내용은 Power Pivot 수식의 조회를 참조 하세요.

  • 관계를 사용 하 여 테이블을 연결 하는 경우 수식이 계산 되는 범위 또는 context 확대 됩니다. 예를 들어 피벗 테이블의 수식은 피벗 테이블의 모든 필터나 열 및 행 머리글의 영향을 받을 수 있습니다. 컨텍스트를 조작 하는 수식을 작성할 수 있지만, 컨텍스트는 예측 하지 못할 수 있는 방식으로 결과가 변경 될 수도 있습니다. 자세한 내용은 DAX 수식의 컨텍스트를 참조 하세요.

수식 결과 업데이트

데이터 r efresh 및 재계산은 복잡 한 수식, 많은 양의 데이터 또는 외부 데이터 원본에서 가져온 데이터를 포함 하는 데이터 모델을 디자인할 때 이해 해야 하는 별도의 두 가지 작업입니다.

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

재계산 은 수식에 대 한 변경 내용을 반영 하 고 기본 데이터의 해당 변경 내용을 반영 하도록 수식 결과를 업데이트 하는 프로세스입니다. 다시 계산을 수행 하면 다음과 같은 방식으로 성능이 저하 될 수 있습니다.

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

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

수식 문제 해결

수식을 작성할 때 발생 하는 오류

수식을 정의할 때 오류가 발생 하는 경우 수식에 구문 오류, 의미 오류또는 계산 오류중 하나가 포함 될 수 있습니다.

구문 오류는 가장 쉬운 해결 방법입니다. 일반적으로 괄호 또는 쉼표 누락을 포함 합니다. 개별 함수의 구문에 대 한 도움말은 DAX 함수 참조를 참조 하세요.

다른 유형의 오류는 구문이 올바르지만 참조 하는 열이 수식의 컨텍스트에서 의미가 없는 경우에 발생 합니다. 이러한 의미 체계와 계산 오류는 다음과 같은 문제로 인해 발생할 수 있습니다.

  • 수식이 비 기존 열, 테이블 또는 함수를 참조 합니다.

  • 수식이 올바르게 표시 되지만 데이터 엔진이 데이터를 반입 하면 형식이 일치 하지 않는 것을 발견 하면 오류를 발생 시킵니다.

  • 수식이 잘못 된 수 또는 매개 변수 형식을 함수에 전달 합니다.

  • 수식이 오류가 있는 다른 열을 참조 하므로 해당 값이 유효 하지 않습니다.

  • 수식이 처리 되지 않은 열을 참조 하는데,이는 메타 데이터는 있지만 계산에 사용할 실제 데이터는 없다는 의미입니다.

처음 네 가지 경우 DAX는 잘못 된 수식을 포함 하는 전체 열에 플래그를 표시 합니다. 마지막 경우 DAX가 열을 회색으로 표시 하 여 열이 처리 되지 않은 상태임을 나타냅니다.

열 값의 순위를 지정 하거나 순서를 지정 하는 경우 잘못 되거나 이상한 결과가 나타나는 경우

NaN (숫자가 아님) 값이 포함 된 열을 순위 지정 하거나 순서를 지정 하는 경우 잘못 되거나 예기치 않은 결과가 나타날 수 있습니다. 예를 들어 계산이 0을 0으로 나누는 경우 NaN 결과가 반환 됩니다.

수식 엔진이 숫자 값을 비교 하 여 순서와 순위를 지정 하기 때문입니다. 그러나 NaN을 열에 있는 다른 숫자와 비교할 수는 없습니다.

올바른 결과를 보장 하기 위해 IF 함수를 사용 하는 조건문을 사용 하 여 NaN 값을 테스트 하 고 숫자 0 값을 반환할 수 있습니다.

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

일반적으로 파워 피벗 에서 작성 하는 DAX 수식은 Analysis Services 테이블 형식 모델과 완벽 하 게 호환 됩니다. 그러나 파워 피벗 모델을 Analysis Services 인스턴스로 마이그레이션한 다음 DirectQuery 모드에서 모델을 배포 하는 경우 몇 가지 제한 사항이 있습니다.

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

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

자세한 내용은 Analysis Services 테이블 형식 모델링 설명서의 SQL Server 2012 BooksOnline을 참조 하세요.

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

추가 도움이 필요하신가요?

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

이 정보가 유용한가요?

의견 주셔서 감사합니다!

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

×