Applies ToMicrosoft 365용 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

이 섹션에서는 DAX(데이터 분석 식) 수식 내에서 필터를 만드는 방법을 설명합니다. 수식 내에서 필터를 만들어 계산에 사용되는 원본 데이터의 값을 제한할 수 있습니다. 수식에 대한 입력으로 테이블을 지정한 다음 필터 식을 정의하여 이 작업을 수행합니다. 제공하는 필터 식은 데이터를 쿼리하고 원본 데이터의 하위 집합만 반환하는 데 사용됩니다. 필터는 데이터의 현재 컨텍스트에 따라 수식의 결과를 업데이트할 때마다 동적으로 적용됩니다.

이 문서의 내용

수식에 사용되는 테이블에 필터 만들기

테이블을 입력으로 사용하는 수식에 필터를 적용할 수 있습니다. 테이블 이름을 입력하는 대신 FILTER 함수를 사용하여 지정된 테이블에서 행의 하위 집합을 정의합니다. 그런 다음, 해당 하위 집합은 사용자 지정 집계와 같은 작업에 대해 다른 함수로 전달됩니다.

예를 들어 재판매인에 대한 주문 정보가 포함된 데이터 테이블이 있고 각 재판매인의 판매량을 계산하려는 경우를 가정해 보겠습니다. 그러나 값이 높은 제품의 여러 단위를 판매한 재판매인의 판매액만 표시하려고 합니다. DAX 샘플 통합 문서를 기반으로 하는 다음 수식은 필터를 사용하여 이 계산을 만드는 방법의 한 가지 예를 보여줍니다.

=SUMX(      FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 5 &&      'ResellerSales_USD'[ProductStandardCost_USD] > 100)      'ResellerSales_USD'[SalesAmt]      )

  • 수식의 첫 번째 부분은 테이블을 인수로 사용하는 파워 피벗 집계 함수 중 하나를 지정합니다. SUMX는 테이블에 대한 합계를 계산합니다.

  • 수식의 두 번째 부분인 FILTER(table, expression),사용할 데이터를 SUMX 알려줍니다. SUMX 테이블 또는 테이블이 생성되는 식이 필요합니다. 여기서는 테이블의 모든 데이터를 사용하는 대신 FILTER 함수를 사용하여 사용되는 테이블의 행을 지정합니다.

    필터 식에는 두 부분으로 구성됩니다. 첫 번째 부분은 필터가 적용되는 테이블의 이름을 지정합니다. 두 번째 부분은 필터 조건으로 사용할 식을 정의합니다. 이 경우 5개 이상의 단위를 판매한 재판매인과 $100 이상의 비용이 드는 제품을 필터링합니다. 연산자( &&)는 조건의 두 부분이 모두 true여야 행이 필터링된 하위 집합에 속해야 했음을 나타내는 논리 AND 연산자입니다.

  • 수식의 세 번째 부분은 SUMX 함수에 합계해야 하는 값을 알려줍니다. 이 경우 판매 금액만 사용합니다.

    테이블을 반환하는 FILTER와 같은 함수는 테이블이나 행을 직접 반환하지 않지만 항상 다른 함수에 포함됩니다. 더 많은 예제를 포함하여 필터링에 사용되는 FILTER 및 기타 함수에 대한 자세한 내용은 DAX(필터 함수)를 참조하세요.

    참고: 필터 식은 사용되는 컨텍스트의 영향을 받습니다. 예를 들어 측정값에서 필터를 사용하고 측정값이 피벗 테이블 또는 피벗 차트에서 사용되는 경우 반환되는 데이터의 하위 집합은 사용자가 피벗 테이블에 적용한 추가 필터 또는 슬라이서의 영향을 받을 수 있습니다. 컨텍스트에 대한 자세한 내용은 DAX 수식의 컨텍스트를 참조하세요.

중복 항목을 제거하는 필터

특정 값에 대한 필터링 외에도 다른 테이블 또는 열에서 고유한 값 집합을 반환할 수 있습니다. 이는 열의 고유 값 수를 계산하거나 다른 작업에 고유한 값 목록을 사용하려는 경우에 유용할 수 있습니다. DAX는 고유 값을 반환하기 위한 두 가지 함수인 DISTINCT 함수VALUES 함수를 제공합니다.

  • DISTINCT 함수는 함수에 대한 인수로 지정한 단일 열을 검사하고 고유 값만 포함하는 새 열을 반환합니다.

  • VALUES 함수는 고유 값 목록도 반환하지만 알 수 없는 멤버도 반환합니다. 이는 관계에 의해 조인된 두 테이블의 값을 사용하고 값이 한 테이블에 누락되고 다른 테이블에 있는 경우에 유용합니다. 알 수 없는 멤버에 대한 자세한 내용은 DAX 수식의 컨텍스트를 참조하세요.

두 함수 모두 값의 전체 열을 반환합니다. 따라서 함수를 사용하여 다른 함수에 전달되는 값 목록을 가져옵니다. 예를 들어 다음 수식을 사용하여 고유한 제품 키를 사용하여 특정 재판매인에서 판매한 고유한 제품 목록을 가져와 COUNTROWS 함수를 사용하여 해당 목록의 제품을 계산할 수 있습니다.

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

맨 위로 이동

컨텍스트가 필터에 미치는 영향

DAX 수식을 피벗 테이블 또는 피벗 차트에 추가하면 수식의 결과가 컨텍스트의 영향을 받을 수 있습니다. 파워 피벗 테이블에서 작업하는 경우 컨텍스트는 현재 행과 해당 값입니다. 피벗 테이블 또는 피벗 차트에서 작업하는 경우 컨텍스트는 조각화 또는 필터링과 같은 작업에 의해 정의된 데이터의 집합 또는 하위 집합을 의미합니다. 피벗 테이블 또는 피벗 차트의 디자인은 자체 컨텍스트도 적용합니다. 예를 들어 지역 및 연도별로 판매를 그룹화하는 피벗 테이블을 만드는 경우 해당 지역 및 연도에 적용되는 데이터만 피벗 테이블에 표시됩니다. 따라서 피벗 테이블에 추가하는 모든 측정값은 열 및 행 머리글의 컨텍스트와 측정값 수식의 필터에서 계산됩니다.

자세한 내용은 DAX 수식의 컨텍스트를 참조하세요.

맨 위로 이동

필터 제거

복잡한 수식을 사용하는 경우 현재 필터가 무엇인지 정확히 알고 싶거나 수식의 필터 부분을 수정할 수 있습니다. DAX는 필터를 제거하고 현재 필터 컨텍스트의 일부로 보존되는 열을 제어할 수 있는 여러 함수를 제공합니다. 이 섹션에서는 이러한 함수가 수식의 결과에 미치는 영향에 대한 개요를 제공합니다.

ALL 함수를 사용하여 모든 필터 재정의

ALL 함수를 사용하여 이전에 적용된 필터를 재정의하고 테이블의 모든 행을 집계 또는 기타 작업을 수행하는 함수로 반환할 수 있습니다. 테이블 대신 하나 이상의 열을 ALL인수로 사용하는 경우 ALL 함수는 컨텍스트 필터를 무시하고 모든 행을 반환합니다.

참고: 관계형 데이터베이스 용어에 익숙한 경우 ALL 모든 테이블의 자연스러운 왼쪽 외부 조인을 생성하는 것으로 생각할 수 있습니다.

예를 들어 Sales 및 Products 테이블이 있고 현재 제품의 판매 합계를 모든 제품의 판매액으로 나눈 수식을 만들려는 경우를 가정해 보겠습니다. 수식이 측정값에 사용되는 경우 피벗 테이블의 사용자가 슬라이서를 사용하여 행의 제품 이름과 함께 특정 제품을 필터링할 수 있다는 사실을 고려해야 합니다. 따라서 필터 또는 슬라이서에 관계없이 분모의 실제 값을 얻으려면 ALL 함수를 추가하여 필터를 재정의해야 합니다. 다음 수식은 ALL을 사용하여 이전 필터의 효과를 재정의하는 방법의 한 예입니다.

=SUM(Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products))

  • 수식의 첫 번째 부분인 SUM(Sales[Amount])은 숫자자를 계산합니다.

  • 합계는 현재 컨텍스트를 고려합니다. 즉, 계산 열에 수식을 추가하면 행 컨텍스트가 적용되고 수식을 피벗 테이블에 측정값으로 추가하면 피벗 테이블(필터 컨텍스트)에 적용된 모든 필터가 적용됩니다.

  • 수식의 두 번째 부분은 분모를 계산합니다. ALL 함수는 Products 테이블에 적용할 수 있는 모든 필터를 재정의합니다.

자세한 예제를 포함한 자세한 내용은 ALL 함수를 참조하세요.

ALLEXCEPT 함수를 사용하여 특정 필터 재정의

ALLEXCEPT 함수는 기존 필터도 재정의하지만 기존 필터 중 일부를 유지되도록 지정할 수 있습니다. ALLEXCEPT 함수의 인수로 이름을 지정하는 열은 필터링을 계속할 열을 지정합니다. 모든 열이 아닌 대부분의 열에서 필터를 재정의하려는 경우 ALLEXCEPT는 ALL보다 더 편리합니다. ALLEXCEPT 함수는 다양한 열에서 필터링할 수 있는 피벗 테이블을 만들고 수식에 사용되는 값을 제어하려는 경우에 특히 유용합니다. 피벗 테이블에서 ALLEXCEPT를 사용하는 방법에 대한 자세한 예제를 포함하여 자세한 내용은 ALLEXCEPT 함수를 참조하세요.

맨 위로 이동

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.