다음을 통해 공유


KEEPFILTERS

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

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.

함수 함수 함수