소개

완료됨

DAX(데이터 분석 식)를 사용하여 의미 체계 모델에 세 가지 유형의 계산을 추가할 수 있습니다.

  • 계산된 테이블
  • 계산 열
  • 측정값

참고

DAX는 모델 테이블에 필터를 적용하는 식인 RLS(행 수준 보안) 규칙을 정의하는 데도 사용할 수 있습니다. 그러나 규칙은 모델 계산으로 간주되지 않으므로 이 모듈의 범위를 벗어납니다. 자세한 내용은 Power BI의 RLS(행 수준 보안)를 참조하세요.

계산된 테이블

DAX 수식을 작성하여 모델에 계산된 테이블을 추가할 수 있습니다. 수식은 기존 모델 데이터를 복제 또는 변환하거나 일련의 데이터를 만들어 새 테이블을 생성할 수 있습니다. 계산된 테이블 데이터는 항상 모델로 가져오므로 모델 스토리지 크기가 증가하고 데이터 새로 고침 시간이 길어질 수 있습니다.

참고

계산된 테이블은 외부 데이터에 연결할 수 없습니다. 이렇게 하려면 파워 쿼리를 사용해야 합니다.

계산된 테이블은 다양한 시나리오에서 유용할 수 있습니다.

  • 날짜 테이블
  • 롤플레잉 차원
  • 가상 분석

날짜 테이블

날짜 테이블은 시간 인텔리전스라는 특수 시간 필터를 적용하는 데 필요합니다. DAX 시간 인텔리전스 함수는 날짜 테이블이 설정된 경우에만 제대로 작동합니다. 원본 데이터가 날짜 테이블을 포함하지 않는 경우 CALENDAR 또는 CALENDARAUTO DAX 함수를 사용하여 계산 테이블로 만들 수 있습니다.

롤플레잉 차원

두 모델 테이블에 여러 관계가 있는 경우 모델에 롤플레잉 차원이 있기 때문일 수 있습니다. 예를 들어 두 개의 날짜 열 OrderDateKeyShipDateKey을 포함하는 Sales 라는 테이블이 있는 경우 두 열 모두 Date 테이블의 Date 열과 관련되어 있습니다. 이 경우 Date 테이블은 주문 날짜 또는 배송 날짜의 역할을 수행할 수 있으므로 롤플레잉 차원으로 설명됩니다.

이미지에서는 다음 두 개의 테이블을 보여 줍니다. Sales 및 Date. 테이블 간에는 두 개의 관계가 있습니다. 하나의 관계만 활성 상태입니다.

Microsoft Power BI 모델은 테이블 간에 하나의 활성 관계만 허용합니다. 모델 다이어그램에 실선으로 표시되어 있습니다. 기본적으로 활성 관계는 필터를 전파하는 데 사용됩니다. 이 경우 Date 테이블에서 Sales 테이블의 OrderDateKey 열로 전파됩니다. 두 테이블 간의 나머지 관계는 모두 비활성 상태입니다. 모델 다이어그램에는 이러한 관계가 파선으로 표시되어 있습니다. 비활성 관계는 USERELATIONSHIP DAX 함수를 사용하여 계산된 수식에서 명시적으로 요청된 경우에만 사용됩니다.

더 나은 모델 디자인에는 각각 Sales 테이블과의 활성 관계가 있는 두 개의 날짜 테이블이 있을 수도 있습니다. 그러면 보고서 사용자는 주문 날짜, 배송 날짜 또는 둘 다를 기준으로 필터링할 수 있습니다. 계산된 테이블은 Date 테이블 데이터를 복제하여 Ship Date 테이블을 만들 수 있습니다.

이미지에서는 다음 두 개의 테이블을 보여 줍니다. Sales 및 Date. Sales 테이블과 Date 테이블 간에 하나의 관계가 있고 Sales 테이블과 Ship Date 테이블 간에 하나의 관계가 있습니다. 두 관계 모두 활성 상태입니다.

가상 분석

Power BI Desktop은 가상 매개 변수라는 기능을 지원합니다. 가상 매개 변수를 만들면 계산된 테이블이 자동으로 모델에 추가됩니다.

가상 매개 변수를 사용하면 보고서 사용자가 계산된 테이블에 저장된 값을 선택하거나 이를 기준으로 필터링 할 수 있습니다. 측정값 수식은 선택한 값을 의미 있는 방식으로 사용할 수 있습니다. 예를 들어 가상 매개 변수를 사용하면 보고서 사용자가 가상의 통화 환율을 선택하고 측정값이 수익 금액(현지 통화)을 선택한 환율로 나눌 수 있습니다.

특히 계산된 테이블은 필터를 전파하는 데 사용되지 않기 때문에 다른 모델 테이블과 관련되지 않습니다. 이 때문에 연결되지 않은 테이블이라고도 합니다.

계산 열

DAX 수식을 작성하여 모델의 테이블에 계산 열을 추가할 수 있습니다. 수식은 각 테이블 행에 대해 평가되어 단일 값을 반환합니다. 가져오기 스토리지 모드 테이블에 추가되면 의미 체계 모델을 새로 고칠 때 수식이 평가되고 모델의 스토리지 크기가 증가합니다. DirectQuery 스토리지 모드 테이블에 추가하면 테이블을 쿼리할 때 기본 원본 데이터베이스에서 수식을 평가합니다.

필드 창에서 계산된 열은 특수 아이콘을 사용하여 향상됩니다. 다음 예제에는 Customer 테이블의 Age라는 단일 계산 열이 있습니다.

이미지에서는 필드 창의 일부를 보여 줍니다. Customer 테이블 내에는 여러 필드가 있습니다. 하나는 계산 열임을 나타내는 특수 아이콘으로 표시됩니다.

측정값

DAX 수식을 작성하여 모델의 모든 테이블에 측정값을 추가할 수 있습니다. 수식은 모델 데이터를 요약하는 것과 관련이 있습니다. 계산 열과 마찬가지로 수식은 단일 값을 반환해야 합니다. 계산 열이 데이터를 새로 고칠 때 평가되는 것과 달리 측정값은 쿼리 시간에 평가됩니다. 해당 결과는 모델에 저장되지 않습니다.

필드 창에는 측정값이 계산기 아이콘으로 표시됩니다. 다음 예제에서는 Sales 테이블에 있는 세 개의 측정값, Cost, Profit, Revenue을 보여 줍니다.

이미지에서는 필드 창의 일부를 보여 줍니다. Sales 테이블 내에는 여러 필드가 있습니다. 세 필드는 측정값임을 나타내는 계산기 아이콘으로 표시됩니다.

때로는 측정값이 명시적 측정값이라고 설명될 수 있습니다. 명확히 하자면 명시적 측정값은 DAX로 작성된 모델 계산이며 일반적으로는 단순히 측정값이라고 합니다. 그러나 암시적 측정값 개념도 있습니다. 암시적 측정값은 개수, 합계, 최소값, 최대값 등 간단한 방법으로 시각적 개체를 통해 요약할 수 있는 열입니다. 필드 창에서는 시그마 기호(∑)로 표시되므로 암시적 측정값을 식별할 수 있습니다.

참고

시각적 개체에 추가된 열은 모두 요약할 수 있습니다. 따라서 시그마 기호로 표시되는지 여부와 관계없이 열을 시각적 개체에 추가할 때 암시적 측정값으로 설정할 수 있습니다.

또한 테이블 형식 모델링에 계산된 측정값과 같은 개념은 존재하지 않습니다. 계산이라는 단어가 계산된 테이블 및 계산 열을 설명하는 데 사용되며, 이를 통해 파워 쿼리에서 시작되는 테이블 및 열과 구분됩니다. 파워 쿼리에는 명시적 측정값의 개념이 없습니다.