PowerPivot의 DAX 시나리오

적용 대상
Microsoft 365용 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

이 섹션에서는 다음 시나리오에서 DAX 수식을 사용하는 방법을 보여 주는 예제에 대한 링크를 제공합니다.

  • 복잡한 계산 수행
  • 텍스트 및 날짜 작업
  • 조건부 값 및 오류 테스트
  • 시간 인텔리전스 사용
  • 순위 및 값 비교

이 문서의 내용

시작하기

DAX 리소스 센터 Wiki를 방문하여 업계 최고의 전문가 및 Microsoft에서 제공하는 블로그, 샘플, 백서 및 비디오를 포함하여 DAX에 대한 모든 종류의 정보를 찾을 수 있습니다.

시나리오: 복잡한 계산 수행

DAX 수식은 사용자 지정 집계, 필터링 및 조건부 값 사용과 관련된 복잡한 계산을 수행할 수 있습니다. 이 섹션에서는 사용자 지정 계산을 시작하는 방법에 대한 예제를 제공합니다.

피벗 테이블에 대한 사용자 지정 계산 만들기

CALCULATE 및 CALCULATETABLE은 계산된 필드를 정의하는 데 유용한 강력하고 유연한 함수입니다. 이러한 함수를 사용하면 계산이 수행될 컨텍스트를 변경할 수 있습니다. 수행할 집계 또는 수학 연산의 유형을 사용자 지정할 수도 있습니다. 예제는 다음 topics 참조하십시오.

수식에 필터 적용

DAX 함수가 테이블을 인수로 사용하는 대부분의 위치에서는 일반적으로 테이블 이름 대신 FILTER 함수를 사용하거나 필터 식을 함수 인수 중 하나로 지정하여 필터링된 테이블을 대신 전달할 수 있습니다. 다음 topics에서는 필터를 만드는 방법과 필터가 수식 결과에 미치는 영향에 대한 예제를 제공합니다. 자세한 내용은 DAX 수식에서 데이터 필터링을 참조하세요.

FILTER 함수를 사용하면 식을 사용하여 필터 조건을 지정할 수 있지만 다른 함수는 빈 값을 필터링하기 위해 특별히 설계되었습니다.

필터를 선택적으로 제거하여 동적 비율 만들기

수식에 동적 필터를 만들면 다음과 같은 질문에 쉽게 대답할 수 있습니다.

  • 해당 연도의 총 판매량에 대한 현재 제품의 매출 기여도는 어떻게 됩니까?
  • 이 사업부는 다른 사업부와 비교하여 모든 운영 연도의 총 이익에 얼마나 기여했습니까?

피벗 테이블에서 사용하는 수식은 피벗 테이블 컨텍스트의 영향을 받을 수 있지만 필터를 추가하거나 제거하여 컨텍스트를 선택적으로 변경할 수 있습니다. ALL 항목의 예제는 이 작업을 수행하는 방법을 보여줍니다. 모든 재판매인의 판매액에 대한 특정 재판매인의 매출 비율을 찾으려면 현재 컨텍스트의 값을 ALL 컨텍스트의 값으로 나눈 값을 계산하는 측정값을 만듭니다.

ALLEXCEPT 항목에서는 수식에서 필터를 선택적으로 지우는 방법의 예를 제공합니다. 두 예제 모두 피벗 테이블의 디자인에 따라 결과가 어떻게 달라지는지에 대해 설명합니다.

비율 및 백분율을 계산하는 방법에 대한 다른 예제는 다음 topics 참조하세요.

외부 루프의 값 사용

계산에 현재 컨텍스트의 값을 사용하는 것 외에도 DAX는 관련 계산 집합을 만들 때 이전 루프의 값을 사용할 수 있습니다. 다음 항목에서는 외부 루프에서 값을 참조하는 수식을 작성하는 방법에 대한 연습을 제공합니다. EARLIER 함수는 최대 두 가지 수준의 중첩 루프를 지원합니다.

행 컨텍스트 및 관련 테이블에 대한 자세한 내용과 수식에서 이 개념을 사용하는 방법은 DAX 수식의 컨텍스트를 참조하세요.

시나리오: 텍스트 및 날짜 작업

이 섹션에서는 텍스트 작업, 날짜 및 시간 값 추출 및 작성, 조건에 따라 값 만들기와 관련된 일반적인 시나리오의 예가 포함된 DAX 참조 topics에 대한 링크를 제공합니다.

연결을 통해 키 열 만들기

파워 피벗에서는 복합 키를 사용할 수 없습니다. 따라서 데이터 원본에 복합 키가 있는 경우 이를 단일 키 열로 결합해야 할 수 있습니다. 다음 항목에서는 복합 키를 기반으로 계산된 열을 만드는 방법에 대한 한 가지 예제를 제공합니다.

텍스트 날짜에서 추출한 날짜 부분을 기반으로 날짜 Compose

파워 피벗에서는 SQL Server 날짜/시간 데이터 형식을 사용하여 날짜를 처리할 수 있습니다. 따라서 외부 데이터에 다르게 서식이 지정된 날짜가 포함된 경우(예: 날짜가 파워 피벗 데이터 엔진에서 인식되지 않는 국가별 날짜 형식으로 작성되거나 데이터가 정수 서로게이트 키를 사용하는 경우) DAX 수식을 사용하여 날짜 부분을 추출한 다음 각 부분을 유효한 날짜로 구성해야 할 수 있습니다. 시간 표현입니다.

예를 들어 정수로 표현한 다음 텍스트 문자열로 가져온 날짜 열이 있는 경우 다음 수식을 사용하여 문자열을 날짜/시간 값으로 변환할 수 있습니다.

=DATE(RIGHT([Value1],4),LEFT([Value1],2),MID([Value1],2))

value1 결과
01032009 1/3/2009
12132008 12/13/2008
06252007 6/25/2007

다음 topics에서는 날짜를 추출하고 작성하는 데 사용되는 함수에 대해 자세히 설명합니다.

사용자 지정 날짜 또는 숫자 형식 정의

데이터에 표준 Windows 텍스트 형식 중 하나로 표시되지 않는 날짜나 숫자가 포함된 경우 값이 올바르게 처리되도록 사용자 지정 형식을 정의할 수 있습니다. 이러한 형식은 값을 문자열로 변환하거나 문자열에서 변환할 때 사용됩니다. 다음 topics에서는 날짜 및 숫자 작업에 사용할 수 있는 미리 정의된 형식의 세부 목록도 제공합니다.

수식을 사용하여 데이터 형식 변경

파워 피벗에서 출력의 데이터 형식은 원본 열에 의해 결정되며 최적의 데이터 형식은 파워 피벗에 의해 결정되므로 결과의 데이터 형식을 명시적으로 지정할 수 없습니다. 그러나 파워 피벗에서 수행하는 암시적 데이터 형식 변환을 사용하여 출력 데이터 형식을 조작할 수 있습니다. 

  • 날짜 또는 숫자 문자열을 숫자로 변환하려면 1.0을 곱합니다. 예를 들어 다음 수식은 현재 날짜에서 3일을 뺀 값을 계산한 후 해당 정수 값을 출력합니다.
    =(TODAY()-3)*1.0
  • 날짜, 숫자 또는 통화 값을 문자열로 변환하려면 빈 문자열을 사용하여 값을 연결합니다. 예를 들어 다음 수식은 오늘 날짜를 문자열로 반환합니다.
    =""& TODAY()

다음 함수를 사용하여 특정 데이터 형식이 반환되도록 할 수도 있습니다.

실수를 정수로 변환

시나리오: 조건부 값 및 오류 테스트

Excel과 마찬가지로 DAX에도 데이터의 값을 테스트하고 조건에 따라 다른 값을 반환할 수 있는 함수가 있습니다. 예를 들어 연간 판매액에 따라 재판매인에게 기본 설정 또는 으로 레이블을 지정하는 계산된 열을 만들 수 있습니다. 값을 테스트하는 함수는 값의 범위 또는 유형을 확인하여 예기치 않은 데이터 오류로 인해 계산이 중단되는 것을 방지하는 데도 유용합니다.

조건에 따라 값 만들기

중첩된 IF 조건을 사용하여 값을 테스트하고 조건부에 따라 새 값을 생성할 수 있습니다. 다음 topics에는 조건부 처리 및 조건부 값의 몇 가지 간단한 예제가 포함되어 있습니다.

수식 내 오류 테스트

Excel과 달리 계산된 열의 한 행에는 유효한 값을 포함하고 다른 행에는 잘못된 값을 포함할 수 없습니다. 즉, 파워 피벗 열의 어느 부분에라도 오류가 있는 경우 전체 열에 오류로 플래그가 지정되므로 잘못된 값이 발생하는 수식 오류는 항상 수정해야 합니다.

예를 들어 0으로 나누는 수식을 만들면 무한대 결과나 오류가 나올 수 있습니다. 함수가 숫자 값을 필요로 하는데 빈 값을 발견하면 일부 수식도 실패합니다. 데이터 모델을 개발하는 동안 메시지를 클릭하고 문제를 해결할 수 있도록 오류를 표시하도록 허용하는 것이 가장 좋습니다. 그러나 통합 문서를 게시할 때는 예기치 않은 값으로 인해 계산이 실패하지 않도록 오류 처리를 통합해야 합니다.

계산된 열에서 오류가 반환되지 않도록 하려면 논리 함수와 정보 함수의 조합을 사용하여 오류를 테스트하고 항상 유효한 값을 반환합니다. 다음 topics에서는 DAX에서 이 작업을 수행하는 방법에 대한 몇 가지 간단한 예를 제공합니다.

시나리오: 시간 인텔리전스 사용

DAX 시간 인텔리전스 함수에는 데이터에서 날짜 또는 날짜 범위를 검색하는 데 도움이 되는 함수가 포함되어 있습니다. 그런 다음 해당 날짜 또는 날짜 범위를 사용하여 유사한 기간의 값을 계산할 수 있습니다. 시간 인텔리전스 함수에는 표준 날짜 간격으로 작동하는 함수도 포함되어 있어 월, 연도 또는 분기별로 값을 비교할 수 있습니다. 지정된 기간의 첫 번째 날짜와 마지막 날짜의 값을 비교하는 수식을 만들 수도 있습니다.

모든 시간 인텔리전스 함수 목록은 DAX(시간 인텔리전스 함수)를 참조하세요. 파워 피벗 분석에서 날짜 및 시간을 효과적으로 사용하는 방법에 대한 팁은 파워 피벗의 날짜를 참조하세요.

누적 매출 계산

다음 topics에는 결산 및 개시 잔액을 계산하는 방법에 대한 예제가 포함되어 있습니다. 이 예를 통해 일, 월, 분기 또는 연도와 같은 다양한 간격에 걸쳐 실행 잔액을 생성할 수 있습니다.

시간 경과에 따른 값 비교

다음 topics에는 여러 기간의 합계를 비교하는 방법에 대한 예제가 포함되어 있습니다. DAX에서 지원하는 기본 기간은 월, 분기 및 년입니다.

사용자 지정 날짜 범위에 대한 값 계산

프로모션 시작 후 처음 15일과 같이 사용자 지정 날짜 범위를 검색하는 방법에 대한 예제는 다음 topics를 참조하세요.

시간 인텔리전스 함수를 사용하여 사용자 지정 날짜 집합을 검색하는 경우 해당 날짜 집합을 계산을 수행하는 함수에 대한 입력으로 사용하여 기간에 걸쳐 사용자 지정 집계를 만들 수 있습니다. 이 작업을 수행하는 방법의 예는 다음 항목을 참조하세요.

  • PARALLELPERIOD 함수

    참고

    사용자 지정 날짜 범위를 지정할 필요는 없지만 월, 분기 또는 연도와 같은 표준 회계 단위로 작업하는 경우 TOTALQTD, TOTALMTD, TOTALQTD 등과 같이 이 목적으로 설계된 시간 인텔리전스 함수를 사용하여 계산을 수행하는 것이 좋습니다.

시나리오: 순위 지정 및 값 비교

열 또는 피벗 테이블에서 상위 n개 항목만 표시하려면 다음과 같은 몇 가지 옵션이 있습니다.

  • Excel의 기능을 사용하여 상위 필터를 만들 수 있습니다. 피벗 테이블에서 여러 개의 위쪽 또는 아래쪽 값을 선택할 수도 있습니다. 이 섹션의 첫 번째 부분에서는 피벗 테이블에서 상위 10개 항목을 필터링하는 방법을 설명합니다. 자세한 내용은 Excel 설명서를 참조하세요.
  • 값을 동적으로 순위를 매기는 수식을 만든 다음 순위 값을 기준으로 필터링하거나 순위 값을 슬라이서로 사용할 수 있습니다. 이 섹션의 두 번째 부분에서는 이 수식을 만든 다음 슬라이서에서 해당 순위를 사용하는 방법을 설명합니다.

각 방법에는 장단점이 있습니다.

  • Excel 상단 필터는 사용하기 쉽지만 필터는 표시 전용입니다. 피벗 테이블의 기본 데이터가 변경되는 경우 변경 내용을 보려면 피벗 테이블을 수동으로 새로 고쳐야 합니다. 순위를 동적으로 처리해야 하는 경우 DAX를 사용하여 값을 열 내의 다른 값과 비교하는 수식을 만들 수 있습니다.
  • DAX 수식은 더 강력합니다. 또한 슬라이서에 순위 값을 추가하면 슬라이서를 클릭하여 표시되는 상위 값의 수를 변경할 수 있습니다. 그러나 계산은 계산 비용이 많이 들기 때문에 행이 많은 테이블에는 적합하지 않을 수 있습니다.

피벗 테이블에서 상위 10개 항목만 표시

피벗 테이블에서 상위 값 또는 하위 값을 표시하려면
  1. 피벗 테이블의 행 레이블 머리글에서 아래쪽 화살표를 클릭합니다.
  2. 값 필터>상위 10개를 선택합니다.
  3. 상위 10개 필터 <열 이름> 대화 상자에서 다음과 같이 순위를 매길 열과 값 개수를 선택합니다.
    1. 값이 가장 높은 셀을 보려면 위쪽 을 선택하고 값이 가장 낮은 셀을 보려면 아래쪽을 선택합니다.
    2. 보려는 상위 또는 하위 값의 개수를 입력합니다. 기본값은 10입니다.
    3. 값을 표시할 방법을 선택합니다.
NameDescriptionItems피벗 테이블을 필터링하여 상위 또는 하위 항목 목록만 해당 값별로 표시하려면 이 옵션을 선택합니다. 퍼센트 피벗 테이블을 필터링하여 합계가 지정된 백분율에 해당하는 항목만 표시하려면 이 옵션을 선택합니다. 합계상위 또는 하위 항목에 대한 값의 합계를 표시하려면 이 옵션을 선택합니다.
  1. 순위를 매길 값이 포함된 열을 선택합니다.
  2. 확인을 클릭합니다.

수식을 사용하여 항목을 동적으로 정렬

다음 항목에는 DAX를 사용하여 계산된 열에 저장된 순위를 만드는 방법의 예제가 포함되어 있습니다. DAX 수식은 동적으로 계산되므로 기본 데이터가 변경되더라도 순위가 올바른지 항상 확인할 수 있습니다. 또한 수식은 계산된 열에서 사용되므로 슬라이서의 순위를 사용한 다음 상위 5개, 상위 10개 또는 상위 100개의 값을 선택할 수 있습니다.