CALCULATETABLE
수정된 필터 컨텍스트에서 테이블 식을 평가합니다.
구문
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 |