DAX 시나리오
이 섹션에서는 다음과 같은 시나리오에서 DAX 수식의 사용 방법을 보여 주는 예에 대한 링크를 제공합니다.
복잡한 계산 수행
텍스트 및 날짜 작업
조건 값 및 오류 테스트
시간 인텔리전스 사용
값 순위 지정 및 비교
시작
DAX 수식을 처음 사용하는 경우에는 먼저 DAX 예제 통합 문서의 예를 검토하는 것이 좋습니다. 예제 통합 문서를 가져오는 방법은 PowerPivot용 예제 데이터 가져오기를 참조하십시오.
추가 리소스
다음 링크를 사용하여 DAX를 배우는 데 유용한 비디오, 추가 예제 및 연습을 확인할 수 있습니다.
시나리오: 복잡한 계산 수행
DAX 수식을 사용하면 사용자 지정 집계, 필터링 및 조건 값 사용을 포함하는 복잡한 계산을 수행할 수 있습니다. 이 섹션에서는 사용자 지정 계산을 시작하는 방법을 보여 주는 예를 제공합니다.
피벗 테이블용 사용자 지정 계산 만들기
CALCULATE 및 CALCULATETABLE은 측정값을 정의하는 데 유용한 강력하고 유연한 함수입니다. 이러한 함수를 사용하여 계산을 수행할 컨텍스트를 변경할 수 있습니다. 수행할 집계 또는 수치 연산의 유형을 사용자 지정할 수도 있습니다. 예를 보려면 다음 항목을 참조하십시오.
수식에 필터 적용
DAX 함수에서 테이블을 인수로 사용하는 대부분의 경우 일반적으로 테이블 이름 대신 FILTER 함수를 사용하거나 필터 식을 함수 인수 중 하나로 지정하여 필터링된 테이블을 대신 전달할 수 있습니다. 다음 항목에서는 필터를 만드는 방법과 필터가 수식 결과에 주는 영향을 보여 주는 예를 제공합니다. 자세한 내용은 수식의 데이터 필터링를 참조하십시오.
FILTER 함수를 사용하면 식을 통해 필터 조건을 지정할 수 있는 반면 다른 함수는 특히 빈 값을 필터링하도록 디자인되었습니다.
필터를 선택적으로 제거하여 동적 비율 만들기
수식에 동적 필터를 만들면 다음과 같은 사항을 쉽게 확인할 수 있습니다.
연간 총 판매량에 대한 현재 제품 판매량의 기여도는?
다른 사업부와 비교하여 모든 운영 연도의 총 수익에 대한 이 사업부의 기여도는?
피벗 테이블에 사용하는 수식은 피벗 테이블 컨텍스트에 따라 달라질 수 있지만, 필터를 추가하거나 제거하여 컨텍스트를 선택적으로 변경할 수 있습니다. ALL 항목의 예에서는 이 작업을 수행하는 방법을 보여 줍니다. 모든 대리점의 판매량에 대한 특정 대리점의 판매량 비율을 확인하려면 현재 컨텍스트의 값을 ALL 컨텍스트의 값으로 나눈 측정값을 만듭니다.
ALLEXCEPT 항목에서는 수식에서 필터를 선택적으로 지우는 방법을 보여 주는 예를 제공합니다. 두 예를 통해 피벗 테이블의 디자인에 따라 결과가 달라진다는 것을 알 수 있습니다.
비율과 백분율을 계산하는 방법의 다른 예는 다음 항목을 참조하십시오.
외부 루프의 값 사용
DAX에서는 계산에 현재 컨텍스트의 값을 사용할 수 있을 뿐 아니라 관련 계산 집합을 만들 때 이전 루프의 값을 사용할 수도 있습니다. 다음 항목에서는 외부 루프의 값을 참조하는 수식을 작성하는 방법에 대한 연습을 제공합니다. EARLIER 함수는 최대 두 가지 수준의 중첩 루프를 지원합니다.
행 컨텍스트 및 관련 테이블에 대한 자세한 내용과 수식에 이 개념을 사용하는 방법은 DAX 수식의 컨텍스트를 참조하십시오.
맨 위로 이동
시나리오: 텍스트 및 날짜 작업
이 섹션에서는 텍스트에 대한 작업을 수행하거나, 날짜 및 시간 값을 추출 및 구성하거나, 조건에 따라 값을 만드는 데 관련된 일반적인 시나리오의 예가 포함된 DAX 참조 항목에 대한 링크를 제공합니다.
연결을 통해 키 열 만들기
PowerPivot에서는 복합 키를 사용할 수 없으므로 데이터 원본에 복합 키가 있는 경우 복합 키를 단일 키 열로 조합해야 할 수 있습니다. 다음 항목에서는 복합 키를 기반으로 계산 열을 만드는 방법에 대한 한 가지 예를 제공합니다.
텍스트 날짜에서 추출된 날짜 부분을 기반으로 날짜 구성
PowerPivot에서는 SQL Server 날짜/시간 데이터 형식을 사용하여 날짜 작업을 수행하므로 날짜가 PowerPivot 데이터 엔진에서 인식하지 않는 국가별 날짜 형식으로 작성되었거나 데이터에 정수 서로게이트 키가 사용되는 경우와 같이 외부 데이터에 다른 형식의 날짜가 들어 있는 경우에는 DAX 수식을 사용하여 날짜 부분을 추출한 다음 이 부분을 올바른 날짜/시간 표현으로 구성해야 할 수 있습니다.
예를 들어 정수로 표현된 날짜 열을 텍스트 문자열로 가져온 경우 다음 수식을 사용하여 해당 문자열을 날짜/시간 값으로 변환할 수 있습니다.
=DATE(RIGHT([Value1],4),LEFT([Value1],2),MID([Value1],2))
Value1 |
결과 |
01032009 |
1/3/2009 |
12132008 |
12/13/2008 |
06252007 |
6/25/2007 |
다음 항목에서는 날짜를 추출하고 구성하는 데 사용되는 함수에 대한 자세한 정보를 제공합니다.
사용자 지정 날짜 또는 숫자 형식 정의
표준 Windows 텍스트 형식 중 하나로 표시되지 않는 날짜나 숫자가 데이터에 포함되어 있으면 사용자 지정 형식을 정의하여 값이 올바르게 처리되도록 할 수 있습니다. 이러한 형식은 값을 문자열로 변환하거나 문자열에서 변환할 때 사용됩니다. 다음 항목에서는 날짜 및 숫자 작업에 사용할 수 있는 미리 정의된 형식의 세부 목록도 제공합니다.
수식을 사용하여 데이터 형식 변경
PowerPivot에서 출력의 데이터 형식은 원본 열에 따라 달라지며, 최적의 데이터 형식은 PowerPivot에 의해 결정되므로 결과 데이터 형식을 명시적으로 지정할 수 없습니다. 그러나 PowerPivot에서 수행되는 암시적 데이터 형식 변환을 사용하여 출력 데이터 형식을 조작할 수 있습니다. 형식 변환에 대한 자세한 내용은 PowerPivot 통합 문서에서 지원되는 데이터 원본을 참조하십시오.
날짜 또는 숫자 문자열을 숫자로 변환하려면 1.0으로 곱합니다. 예를 들어 다음 수식은 현재 날짜에서 3일을 뺀 다음 해당 정수 값을 출력합니다.
=(TODAY()-3)*1.0
날짜, 숫자 또는 통화 값을 문자열로 변환하려면 값과 빈 문자열을 연결합니다. 예를 들어 다음 수식은 오늘 날짜를 문자열로 반환합니다.
=""& TODAY()
다음 함수를 사용하여 특정 데이터 형식이 반환되도록 할 수도 있습니다.
실수를 정수로 변환
실수, 정수 또는 날짜를 문자열로 변환
문자열을 실수 또는 날짜로 변환
맨 위로 이동
시나리오: 조건 값 및 오류 테스트
Excel과 마찬가지로 DAX에는 데이터의 값을 테스트하고 조건에 따라 다른 값을 반환할 수 있는 함수가 있습니다. 예들 들어 연간 판매액에 따라 Preferred나 Value로 대리점의 레이블을 지정하는 계산 열을 만들 수 있습니다. 값을 테스트하는 함수는 예기치 않은 데이터 오류로 인해 계산이 중단되지 않도록 값의 범위 또는 유형을 검사하는 경우에도 유용합니다.
조건을 기반으로 값 만들기
중첩 IF 조건을 사용하여 값을 테스트하고 새 값을 조건부로 생성할 수 있습니다. 다음 항목에는 조건부 처리 및 조건 값에 대한 몇 가지 간단한 예가 들어 있습니다.
수식 내의 오류 테스트
Excel과 달리 계산 열의 한 행에는 유효한 값을 지정하고 다른 행에는 유효하지 않은 값을 지정할 수 없습니다. 즉 PowerPivot 열의 일부에 오류가 있는 경우 전체 열이 오류로 플래그가 지정되므로 항상 올바르지 않은 값을 생성하는 수식 오류를 수정해야 합니다.
예들 들어 0으로 나누는 수식을 만들 경우 무한대 결과나 오류가 발생할 수 있습니다. 일부 수식은 함수에 숫자 값이 필요한데 빈 값이 있을 때도 실패합니다. 데이터 모델을 개발하는 동안에는 오류 메시지를 클릭하여 문제를 해결할 수 있도록 오류가 표시되도록 하는 것이 좋습니다. 그러나 통합 문서를 게시할 때는 예기치 않은 값으로 인해 계산이 실패하지 않도록 오류 처리를 통합해야 합니다.
계산 열에서 오류가 반환되지 않도록 하려면 논리 및 정보 함수의 조합을 사용하여 오류를 테스트하고 항상 유효한 값을 반환합니다. 다음 항목에서는 DAX에서 이 작업을 수행하는 방법에 대한 몇 가지 간단한 예를 제공합니다.
맨 위로 이동
시나리오: 시간 인텔리전스 사용
DAX 시간 인텔리전스 함수에는 데이터에서 날짜 또는 날짜 범위를 검색하는 데 유용한 함수가 포함되어 있습니다. 이러한 날짜 또는 날짜 범위를 사용하여 비슷한 기간의 값을 계산할 수 있습니다. 시간 인텔리전스 함수에는 표준 날짜 간격에 대한 작업을 수행하는 함수도 포함되어 있으므로 월, 연도 또는 분기의 값을 비교할 수 있습니다. 지정된 기간의 첫째 날과 마지막 날의 값을 비교하는 수식을 만들 수도 있습니다.
시간 인텔리전스 함수의 전체 목록은 시간 인텔리전스 함수(DAX)를 참조하십시오. PowerPivot 분석에서 날짜 및 시간을 효율적으로 사용하는 방법은 PowerPivot의 날짜을 참조하십시오.
누적 매출 계산
다음 항목에는 결산 잔액과 개시 잔액을 계산하는 방법의 예가 포함되어 있습니다. 이러한 예를 사용하여 일, 월, 분기 또는 연도와 같은 여러 간격의 누적 잔액을 만들 수 있습니다.
CLOSINGBALANCEMONTH 함수, CLOSINGBALANCEQUARTER 함수, CLOSINGBALANCEYEAR 함수
OPENINGBALANCEMONTH 함수, OPENINGBALANCEQUARTER 함수, OPENINGBALANCEYEAR 함수
시간별 값 비교
다음 항목에는 여러 기간의 합계를 비교하는 방법의 예가 포함되어 있습니다. DAX에서 지원되는 기본 기간은 월, 분기 및 연도입니다.
사용자 지정 날짜 범위의 값 계산
판매 홍보 시작 후 처음 15일 등의 사용자 지정 날짜 범위를 검색하는 방법의 예는 다음 항목을 참조하십시오.
시간 인텔리전스 함수를 사용하여 사용자 지정 날짜 집합을 검색하는 경우 계산을 수행하는 함수에 대한 입력으로 해당 날짜 집합을 사용하여 기간별 사용자 지정 집계를 만들 수 있습니다. 이 작업을 수행하는 방법의 예는 다음 항목을 참조하십시오.
[!참고]
사용자 지정 날짜 범위를 지정할 필요는 없지만 월, 분기 또는 연도와 같은 표준 회계 단위를 사용하는 경우 이러한 목적으로 디자인된 TOTALQTD, TOTALMTD, TOTALQTD 등의 시간 인텔리전스 함수를 사용하여 계산을 수행하는 것이 좋습니다.
맨 위로 이동
시나리오: 값 순위 지정 및 비교
열 또는 피벗 테이블에 상위 n개의 항목만 표시하려면 다음 방법을 사용합니다.
Excel 2010에서 Top 필터를 만드는 기능을 사용합니다. 피벗 테이블에서 상위 값이나 하위 값을 여러 개 선택할 수도 있습니다. 이 섹션의 첫 번째 부분에서는 피벗 테이블의 상위 10개 항목을 필터링하는 방법에 대해 설명합니다. 자세한 내용은 Excel 설명서를 참조하십시오.
값의 순위를 동적으로 지정하는 수식을 만든 다음, 순위 값으로 필터링하거나 순위 값을 슬라이서로 사용합니다. 이 섹션의 두 번째 부분에서는 이 수식을 만든 다음 슬라이서에서 해당 순위를 사용하는 방법에 대해 설명합니다.
각 방법에는 장단점이 있습니다.
Excel Top 필터는 사용하기 쉽지만 표시 용도로만 사용할 수 있습니다. 피벗 테이블의 기본이 되는 데이터가 변경될 경우에는 피벗 테이블을 수동으로 새로 고쳐서 변경 내용을 확인해야 합니다. 동적으로 순위를 사용해야 하는 경우 DAX를 사용하여 값을 열에 있는 다른 값과 비교하는 수식을 만들 수 있습니다.
DAX 수식은 더욱 강력합니다. 또한 슬라이서에 순위 값을 추가할 경우 슬라이서를 클릭하면 표시되는 상위 값의 수를 손쉽게 변경할 수 있습니다. 그러나 계산 처리에 많은 비용이 들며, 행이 많은 테이블에는 이 방법이 적합하지 않을 수 있습니다.
피벗 테이블에 상위 10개의 항목만 표시
피벗 테이블에 상위 값이나 하위 값을 표시하려면 |
||||||||
|
수식을 사용하여 동적으로 항목 순서 지정
다음 항목에는 DAX를 사용하여 계산 열에 저장되는 순위를 만드는 방법의 예가 포함되어 있습니다. DAX 수식은 동적으로 계산되기 때문에 기본 데이터가 변경되더라도 순위를 항상 올바르게 유지할 수 있습니다. 또한 수식은 계산 열에 사용되므로 슬라이서에서 순위 지정을 사용한 다음 상위 5개, 상위 10개 또는 상위 100개의 값을 선택할 수 있습니다.
맨 위로 이동