KEEPFILTERS
CALCULATE or CALCULATETABLE 함수를 평가하는 동안 filters 적용되는 방법을 수정합니다.
통사론
KEEPFILTERS(<expression>)
매개 변수
학기 | 정의 |
---|---|
expression |
모든 식입니다. |
반환 value
values테이블입니다.
발언
컨텍스트 CALCULATEandCALCULATETABLE 함수 내에서 KEEPFILTERS 사용하여 해당 함수의 표준 동작을 재정의합니다.
기본적으로 CALCULATE 같은 함수의 filter 인수는 같은 열에 CALCULATEreplaceall 기존 filters 대한 filter 인수와 같은 and 식을 평가하기 위한 컨텍스트로 사용됩니다. CALCULATE 대한 filter 인수의 영향을 받는 새 컨텍스트는 filter 인수의 일부로 언급된 열의 기존 filters만 영향을 줍니다. CALCULATE or 다른 related 함수의 인수에 언급된 열 이외의 열에 대한 Filters 변경되지 effectand 유지됩니다.
KEEPFILTERS 함수를 사용하면 이 동작을 수정할 수 있습니다. KEEPFILTERS사용하면 현재 컨텍스트의 모든 기존 filtersfilter 인수의 열과 비교됩니다. and 이러한 인수의 교집합은 식을 평가하기 위한 컨텍스트로 사용됩니다. 한 열에 대한 net effect 두 인수 집합이 모두 적용된다는 것입니다. KEEPFILTER 함수의 인수에서 filtersCALCULATEand 데 사용되는 filter 인수입니다. 즉, 현재 컨텍스트를 CALCULATEfiltersreplace 반면 KEEPFILTERS 현재 컨텍스트에 filters 추가합니다.
이 함수는 not RLS(행 수준 보안) 규칙에 or 계산 열에서 사용되는 경우 DirectQuery 모드에서 사용할 수 있습니다.
본보기
다음 예제에서는 CALCULATEorCALCULATETABLE 수식의 일부로 KEEPFILTERS 함수를 사용하는 방법을 보여 주는 몇 가지 일반적인 시나리오를 안내합니다.
first 세 식은 비교에 사용할 간단한 데이터를 가져옵니다.
워싱턴 주에 대한 인터넷 판매.
워싱턴 주 and 오리건 주의 인터넷 판매(두 주 모두 합산).
워싱턴 주에 대한 인터넷 판매는 브리티시 컬럼비아 주(두 지역 결합)and.
네 번째 식은 워싱턴 and 오리건의 인터넷 판매를 계산하고, 워싱턴 and 브리티시 컬럼비아의 filter 적용됩니다.
next 식은 워싱턴 and 오리건의 Internet Sales를 계산하지만 KEEPFILTERS; 워싱턴 and 브리티시 컬럼비아의 filter 이전 맥락의 일부입니다.
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
이 식이 sample 데이터베이스 AdventureWorks DW에 대해 평가되면 다음 결과를 가져옵니다.
열 | Value |
---|---|
[$$ in WA] |
$ 2,467,248.34 |
[$$ in WA and OR] |
$ 3,638,239.88 |
[$$ in WA and BC] |
$ 4,422,588.44 |
[$$ in WA and OR ??] |
$ 3,638,239.88 |
[$$ in WA !!] |
$ 2,467,248.34 |
메모
위의 결과는 교육용으로 단일 행 대신 표에 서식이 지정되었습니다.
First식을 검사하고 [$$ in WA and OR ??]
. 외부 CALCULATE 식에는 워싱턴 and 브리티시 컬럼비아에 대한 filter 포함되어 있기 때문에 이 수식이 워싱턴 and 오리건에서 판매 value 어떻게 반환할 수 있는지 궁금할 수 있습니다. 대답은 CALCULATE 기본 동작이 'Geography'[State Province Code]의 외부 filters 재정의하고 and 동일한 열에 filters 적용되므로 자체 filter 인수를 대체한다는 것입니다.
Next식을 검사하고 [$$ in WA !!]
. 외부 CALCULATE 식에 워싱턴 andand 브리티시 컬럼비아의 filter 포함되어 filter 인수에 오리건이 포함되어 있기 and 때문에이 수식이 워싱턴 판매 value 어떻게 반환 할 수 있는지 궁금할 filter 있습니다. 대답은 KEEPFILTERSCALCULATEand 기본 동작을 수정하여 추가 filter추가한다는 것입니다.
filters 교집합이 사용되므로 now 외부 filter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")
'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"
filter 인수에 추가됩니다. 두 filters 모두 동일한 열에 적용되므로 결과 filter'Geography'[State Province Code]="WA"
식을 평가할 때 적용되는 filter.
콘텐츠 Related
함수