다음을 통해 공유


CALCULATETABLE

적용 대상: 계산 열 계산 테이블 측정 시각적 계산

수정된 필터 컨텍스트에서 테이블 식을 평가합니다.

참고 항목

CALCULATE 함수도 있습니다. 스칼라 값을 반환하는 식에 적용된 필터 컨텍스트수정한다는 점을 제외하고 정확히 동일한 기능을 수행합니다.

구문

CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

매개 변수

용어 정의
평가할 테이블 식입니다.
filter1, filter2,... (선택 사항) 필터 또는 필터 한정자 함수를 정의하는 부울 식 또는 테이블 식입니다.

첫 번째 매개 변수로 사용되는 식은 모델 테이블 또는 테이블을 반환하는 함수여야 합니다.

필터는 다음과 같습니다.

  • 부울 필터 식
  • 테이블 필터 식
  • 필터 수정 함수

여러 필터가 있는 경우 AND 논리 연산자를 사용하여 평가됩니다. 즉, 모든 조건이 동시에 TRUE여야 합니다.

부울 필터 식

부울 식 필터는 TRUE 또는 FALSE로 평가되는 식입니다. 준수해야 하는 몇 가지 규칙이 있습니다.

  • 단일 열만 참조할 수 있습니다.
  • 측정값을 참조할 수 없습니다.
  • 중첩된 CALCULATE 함수를 사용할 수 없습니다.

Power BI Desktop의 2021년 9월 릴리스부터 다음이 적용됩니다.

  • 집계 함수에 인수로 전달되지 않는 한 테이블을 검색하거나 반환하는 함수를 사용할 수 없습니다.
  • 스칼라 값을 반환하는 집계 함수를 포함할 수 있습니다.

테이블 필터 식

테이블 식 필터는 테이블 개체를 필터로 적용합니다. 모델 테이블에 대한 참조일 수 있지만 테이블 개체를 반환하는 함수일 가능성이 높습니다. FILTER 함수를 사용하여 부울 필터 식으로 정의할 수 없는 필터 조건을 포함하여 복잡한 필터 조건을 적용할 수 있습니다.

필터 한정자 함수

필터 한정자 함수를 사용하면 단순히 필터를 추가하는 것 이상을 수행할 수 있습니다. 필터 컨텍스트를 수정할 때 추가 제어를 제공합니다.

함수 목적
REMOVEFILTERS 테이블의 하나 이상의 열 또는 단일 테이블의 모든 열에서 모든 필터 또는 필터를 제거합니다.
ALL 1, ALLEXCEPT, ALLNOBLANKROW 하나 이상의 열 또는 단일 테이블의 모든 열에서 필터를 제거합니다.
KEEPFILTERS 동일한 열에서 기존 필터를 제거하지 않고 필터를 추가합니다.
USERELATIONSHIP 관련 열 간에 비활성 관계를 설정합니다. 이 경우 활성 관계는 자동으로 비활성 상태가 됩니다.
크로스필터 필터 방향을 수정하거나(둘 다에서 단일로, 단일에서 둘 다로) 관계를 사용하지 않도록 설정합니다.

1 ALL 함수와 해당 변형은 필터 한정자와 테이블 개체를 반환하는 함수로 작동합니다. REMOVEFILTERS 함수가 도구에서 지원되는 경우 필터를 제거하는 데 사용하는 것이 좋습니다.

반환 값

값의 테이블입니다.

설명

  • 필터 식이 제공되면 CALCULATETABLE 함수는 필터 컨텍스트를 수정하여 식을 평가합니다. 각 필터 식에 대해 필터 식이 KEEPFILTERS 함수에 래핑되지 않은 경우 두 가지 가능한 표준 결과가 있습니다.

    • 열(또는 테이블)이 필터 컨텍스트에 없는 경우 새 필터가 필터 컨텍스트에 추가되어 식을 평가합니다.
    • 열(또는 테이블)이 이미 필터 컨텍스트에 있는 경우 새 필터에서 기존 필터를 덮어쓰고 CALCULATETABLE 식을 평가합니다.
  • 이 함수는 계산 열 또는 RLS(행 수준 보안) 규칙에서 사용되는 경우 DirectQuery 모드에서 사용할 수 없습니다.

예시

다음 예제에서는 CALCULATETABLE 함수를 사용하여 2006년 인터넷 판매 합계를 가져옵니다. 이 값은 나중에 2006년의 모든 판매와 비교하여 인터넷 판매 비율을 계산하는 데 사용됩니다.

다음 수식은 다음과 같습니다.

= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)  

그러면 다음 표가 표시됩니다.

Row Labels 인터넷 SalesAmount_USD CalculateTable 2006 Internet Sales Internet Sales to 2006 ratio
2005 $2,627,031.40 $5,681,440.58 0.46
2006 $5,681,440.58 $5,681,440.58 1.00
2007 $8,705,066.67 $5,681,440.58 1.53
2008 $9,041,288.80 $5,681,440.58 1.59
총합계 $26,054,827.45 $5,681,440.58 4.59