다음을 통해 공유


CALCULATETABLE

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

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

메모

CALCULATE 함수도 있습니다. 스칼라 value반환하는 식에 적용된 filter 컨텍스트 수정할 except 정확히 동일한 기능을 수행합니다.

통사론

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

매개 변수

학기 정의
expression 평가할 테이블 식입니다.
filter1, filter2,… (선택 사항) 부울 식은 filters, orfilter 한정자 함수를 정의하는 테이블 식을 or.

first 매개 변수로 사용되는 식은 테이블을 반환하는 함수를 or 모델 테이블이어야 합니다.

Filters 수 있습니다.

  • 부울 filter 식
  • 테이블 filter 식
  • 수정 함수 Filter

여러 filters있는 경우 AND논리 연산자사용하여 평가됩니다. 즉, all 조건은 동일한 timeTRUE 합니다.

부울 filter 식

부울 식 filterTRUEorFALSE계산되는 식입니다. 준수해야 하는 몇 가지 규칙이 있습니다.

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

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

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

테이블 filter 식

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

Filter 한정자 함수

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

기능 목적
REMOVEFILTERS 단일 테이블의 all 열에서 or 테이블의 or 더 많은 열에서 allfilters, orfilters 제거합니다.
ALL 1, ALLEXCEPT, ALLNOBLANKROW 단일 테이블의 all 열에서 or 한 or 더 많은 열에서 filters 제거합니다.
KEEPFILTERS 동일한 열에서 기존 filters 제거하지 않고 filter 추가합니다.
USERELATIONSHIP related 열 간에 비활성 관계를 적용하면 활성 관계가 자동으로 비활성 상태가 됩니다.
CROSSFILTER 관계를 사용하지 않도록 설정할 orfilter 방향(둘 다에서 단일 방향, or 둘 다에서 둘 다로)을 수정합니다.

1 해당 변형을 andALL 함수는 두 filter 한정자가 모두 테이블 개체를 반환하는 함수로 and 동작합니다. 도구에서 REMOVEFILTERS 함수를 지원하는 Iffilters제거하는 데 사용하는 것이 좋습니다.

반환 value

values테이블입니다.

발언

  • filter 식이 제공되면 CALCULATETABLE 함수는 filter 컨텍스트를 수정하여 식을 evaluate. 각 filter 식에 대해 filter 식이 KEEPFILTERS 함수에 래핑될 not 두 가지 가능한 표준 결과가 있습니다.

    • 열(or 테이블)이 filter 컨텍스트에 없는 Iffilter 컨텍스트에 새 filters 추가하여 식을 evaluate.
    • 열(or 테이블)이 이미 filter 컨텍스트에 IfCALCULATETABLE 식을 evaluate 새 filters 기존 filters 덮어씁니다.
  • 이 함수는 not RLS(행 수준 보안) 규칙에 or 계산 열에서 사용되는 경우 DirectQuery 모드에서 사용할 수 있습니다.

본보기

다음 예제에서는 CALCULATETABLE 함수를 사용하여 2006년 인터넷 판매 sum 가져옵니다. 이 value 나중에 year 2006의 all 판매와 비교하여 인터넷 판매 비율을 calculate 데 사용됩니다.

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

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

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

행 레이블 인터넷 SalesAmount_USD CalculateTable 2006 인터넷 판매 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